决定用这篇帖子来作为Python基础用法的更新帖,遇到简单但是实用的Python相应特性就通过该篇帖子来更新
变量特点 a b的id是一样的 (其他种类的变量比如列表、字典都没有这种特性,都类似于c++里面的地址)
a=1
b=1
print id(a)
print id(b)
print "sssss",5
预算符 ** 平方
a=int(raw_input("input number"));
type(num)
num=111默认存储为int
num=11111L 强制转换为long
num=3.14j 虚部complex
str1='sssss'或者"sssss"
字符串:切片a[开始位置:结束位置:步长]
元组() 内容不可变 如果只有一个元素需要a=(2,)否则按照变量处理 可以通过下标获得元素,但是某个元素不能修改内容
列表[] 切片可以修改 只有一个元素不用像元组一样(2,)
函数操作:list1.append(***) 添加元素
list1.remove(***) 或 del(list1[2])删除元素
字典 无序的和C++中STL中的map应该是一样的 是哈希类型的
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
key + value 的形式!!!
操作:del dict['Name']; # 删除键是'Name'的条目
dict.clear(); # 清空词典所有条目
dict.get(5,"error") #获取5对应的值,如果没有返回“error”
dict.keys() #返回字典的key
dict.value #返回字典的value
dict.item #内容
del dict ; # 删除词典
del dict['***'] # 删除某个键值对
del.pop('***') #弹出某个键值对
dict[**]= #插入
遍历 for k in dict
print k #输出key 当然也可以输出对应的value
for k,v in dict.item():
***
类和对象
for x in range(开始,终止值(不包含),步长值)或者其他sequence 太占内存 可以用xrange
for ****
else #正常结束执行,否则不执行 比如针对break
while ***
else #和上面for一样
if ***
pass 占位 对比于break和continue exit()
#coding utf8
print "%s %s" % x , y
参数传值
fun(name="name",age=0)
调用 fun("zsw",22)
或者 fun(name='zsw',age=22)
或者调整顺序 fun(age=22,name="zsw")
或者元组 t=('zsw',22) fun(*t)
或者字典 dict1={'age':22,'name':'zsw'} fun(**dict1) key需要和形参一样否则报错
解决多余参数传值
fun(x,*args) 这里的args是元组 用来存放剩余的参数
fun(1,2,3,4,5)
或者
def fun(x,*args,**dict1):
print x
print args
print dict1
fun(1,2,3,4,5)
print "*"*10
fun(x=1,y=2,c=3)
fun(1,2,3,4,5,y=10,s="asdf")
lambda表达式 快速定义单行函数
样例1:
g = lambda x,y,x:z 冒号前是参数,后面师返回值
调用 g(1,2,3)
样例2:
def f(x,y):
return x*y
print reduce(f,[1,2,3,4,5]) #reduce 每次默认取两个值 实现阶乘
print reduce(lambda x,y:x*y,[1,2,3,4,5])
switch语句实现:用字典
from __future__ import division
def add(x,y):
return x+y
def sub(x,y):
return x-y
def multi(x,y):
return x*y
def devid(x,y):
return x/y
operator = {"+":add,"-":sub,"*":multi,"/":devid}
print operator["/"](2,3)
print operator.get("/")(2,3)
print devid(2,3)
常用 内置函数
print "$$$$$$$$"*5
print callable(min) #查看是否可以调用
print type(operator)
print isinstance(operator,dict)
print cmp("aaa","bbb")
print range(10)
print xrange(10)
string 常用函数:
filter() 过滤函数
zip() 将多个列表整合成元组,返回组合后的列表 每一个元素是元组
map() 和zip相似有点区别
reduce()
样例:
def f(x,y):
return x*y
print reduce(f,[1,2,3,4,5]) #reduce 每次默认取两个值 实现阶乘
模块:
代码封装,当一个.py文件导入其他文件时,就叫做模块
模块是一个可以导入的Python脚本文件
包是一堆按目录组织的模块和子包,目录下的__init__.py文件存放了包的信息
可以用import,import as ,form import等语句导入模块和包
如何为assert断言语句添加异常参数
assert的异常参数,其实就是在断言表达式后添加字符串信息,用来解释断言并更好的知道是哪里出了问题。格式如下:
assert expression [, arguments]
assert 表达式 [, 参数]
assert len(lists) >=5,'列表元素个数小于5'
assert 2==1,'2不等于1'