1.使用a = raw_input('****:')时,raw_input()返回的值是字符串类型,如要接收一个数值类型的输入,需要加强制类型转换,如 a = int(raw_input('****:')),但如果int()识别括号中的内容为字符串,并不为合法数字时会报错,程序退出。
2.d1=['ss',88,20.3] //list类型,可修改,d[index],index为下标0,1,2...,删除时d.pop()
d2=('54',74,'my') //tuple类型,不可修改,d[index],index为下标0,1,2...
d3=('54',[85,'ss']) //组合类型,[]list中的可做修改和删除,d[index],或者d[index1][index2],index为下标0,1,2...
d4={'aa':87,'bb':42,0:60} //dic类型(map),键值对,d{key:value,...},d[key],d.get(key,-1)表示无匹配值则返回-1,key不可变,Hash算法,删除时d.pop(key)
d5=set([1,2,3]) //set类型,key的集合,不存在重复key,创建时参数必须为list类型,后期添加d.add(8)参数为数值型或字符串型,删除时d.remove(key),s1&s2两个结合的交,s1|s2两个集合的并
3.def函数返回多值其实是返回到一个tuple类型中,语法上tuple可以不带().调用函数时用一个tuple变量来接收。
4.在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。
如def func(a,b=0,*c,**d)//c是可变参数接收的是tuple类型(省略括号),d是关键参数接收的是dic类型。func(1,2,‘12’,14,‘ss’,value=78)输出为a=1,b=2,c=('12',14,'ss'),d={'value':78}.
5.L=[x*x for x in range(10)]为一个list,输出为[0,1,4,9,16,25,36,49,64,81],系统存储的是变量。
G=(x*x for x in range(10))是一个生成器Generator,存储算法,每次调用G.next()才会去计算下一个值。
函数中加了yield表示当前函数为生成器,执行时遇到到yield就中断一次,下次又继续执行。
6.数值类型和字符串类型转换:'%s'%x表示把数值型的x转换为字符串类型,同样%d整数%s字符串%f浮点数%x十六进制数,%02d中0表示不足2位补0,%.2f表示小数点后保留两位。
7.map(f,[x1,x2..]),f为带一个参数的函数名,f作用于[x1,x2...]每个元素输出;reduce(f,[x1,x2...]),f为函数名,f为带多个参数的函数名,如参数个数为2,表示为f(f(f(x1,x2),x3),x4)等。
8.filter的使用:属于过滤系列
>>>def is_add(n):return n%2==0 //表示n%2==0返回True,否则返回False
>>>filter(is_add,[1,2,3,4,5,6,7,8,9]) //输出[2,4,6,8]
>>>def not_empty(s):return s and s.strip() //表示去除空格
>>>filter(not_empty,['A',' ','B','C',' ']) //输出['A','B','C']
9.>>>def cout():
fs=[]
for i in range(1,4):
def f():
return i*i
fs.append(f)
return fs
>>>f1,f2,f3=count() //调用f1(),f2(),f3()输出9,9,9
注意到返回的函数在其定义内部引用了局部变量args,所以当一个函数返回了一个函数后,其内部的局部变量还被新函数引用。在上述例子中,每次都创建了一个新的函数,然后把创建的函数都返回了。但是返回的函数都引用了变量i,但它并非立刻执行,直到调用f1(),f2(),f3()才会去执行。等到三个函数都返回时,它们所引用的变量i已经都变成了3.因此,返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量。
若一定要引用循环变量,方法为再创建一个函数,用该函数的参数绑定循环变量的当前值,无论该循环变量后续如何更改,已绑定到函数参数的值不变:
>>>def count():
fs=[]
for i in range(1,4):
def f(j):
def g():
return j*j
return g
fs.append(f(i))
return fs
>>>f1,f2,f3=count() //调用f1(),f2(),f3()输出1,4,9
2.d1=['ss',88,20.3] //list类型,可修改,d[index],index为下标0,1,2...,删除时d.pop()
d2=('54',74,'my') //tuple类型,不可修改,d[index],index为下标0,1,2...
d3=('54',[85,'ss']) //组合类型,[]list中的可做修改和删除,d[index],或者d[index1][index2],index为下标0,1,2...
d4={'aa':87,'bb':42,0:60} //dic类型(map),键值对,d{key:value,...},d[key],d.get(key,-1)表示无匹配值则返回-1,key不可变,Hash算法,删除时d.pop(key)
d5=set([1,2,3]) //set类型,key的集合,不存在重复key,创建时参数必须为list类型,后期添加d.add(8)参数为数值型或字符串型,删除时d.remove(key),s1&s2两个结合的交,s1|s2两个集合的并
3.def函数返回多值其实是返回到一个tuple类型中,语法上tuple可以不带().调用函数时用一个tuple变量来接收。
4.在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。
如def func(a,b=0,*c,**d)//c是可变参数接收的是tuple类型(省略括号),d是关键参数接收的是dic类型。func(1,2,‘12’,14,‘ss’,value=78)输出为a=1,b=2,c=('12',14,'ss'),d={'value':78}.
5.L=[x*x for x in range(10)]为一个list,输出为[0,1,4,9,16,25,36,49,64,81],系统存储的是变量。
G=(x*x for x in range(10))是一个生成器Generator,存储算法,每次调用G.next()才会去计算下一个值。
函数中加了yield表示当前函数为生成器,执行时遇到到yield就中断一次,下次又继续执行。
6.数值类型和字符串类型转换:'%s'%x表示把数值型的x转换为字符串类型,同样%d整数%s字符串%f浮点数%x十六进制数,%02d中0表示不足2位补0,%.2f表示小数点后保留两位。
7.map(f,[x1,x2..]),f为带一个参数的函数名,f作用于[x1,x2...]每个元素输出;reduce(f,[x1,x2...]),f为函数名,f为带多个参数的函数名,如参数个数为2,表示为f(f(f(x1,x2),x3),x4)等。
8.filter的使用:属于过滤系列
>>>def is_add(n):return n%2==0 //表示n%2==0返回True,否则返回False
>>>filter(is_add,[1,2,3,4,5,6,7,8,9]) //输出[2,4,6,8]
>>>def not_empty(s):return s and s.strip() //表示去除空格
>>>filter(not_empty,['A',' ','B','C',' ']) //输出['A','B','C']
9.>>>def cout():
fs=[]
for i in range(1,4):
def f():
return i*i
fs.append(f)
return fs
>>>f1,f2,f3=count() //调用f1(),f2(),f3()输出9,9,9
注意到返回的函数在其定义内部引用了局部变量args,所以当一个函数返回了一个函数后,其内部的局部变量还被新函数引用。在上述例子中,每次都创建了一个新的函数,然后把创建的函数都返回了。但是返回的函数都引用了变量i,但它并非立刻执行,直到调用f1(),f2(),f3()才会去执行。等到三个函数都返回时,它们所引用的变量i已经都变成了3.因此,返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量。
若一定要引用循环变量,方法为再创建一个函数,用该函数的参数绑定循环变量的当前值,无论该循环变量后续如何更改,已绑定到函数参数的值不变:
>>>def count():
fs=[]
for i in range(1,4):
def f(j):
def g():
return j*j
return g
fs.append(f(i))
return fs
>>>f1,f2,f3=count() //调用f1(),f2(),f3()输出1,4,9