标签:typeerror 内置函数 [] detail triangle 工作 job 数据类型 map
1、获取python IDLE当前工作目录:
1 import os 2 os.getcwd()
2、更改当前工作目录(目录前面需要加“r”,不然会报语法错误):
os.chdir(r"工作目录")
3、运行xxx.py内的某个函数:
1 from xxx import func_name #xxx不需要包含扩展名.py 2 func_name() #直接调用即可
4、空函数
def func_name(): pass #pass是占位符,便于处理未写好的函数
5、数据类型检查可以使用函数isinstance(),对参数类型做检查,只允许整数和浮点数类型的参数
def my_abs(x): if not isinstance(x, (int, float)): raise TypeError(‘bad operand type‘) if x >= 0: return x else: return -x
6、定义包含可变参数的函数:
1 def calc(*numbers): #在参数前加一个“*”,调用函数是可以直接输入calc(3,4,1,2) 2 sum = 0 3 for n in numbers: 4 sum = sum + n * n 5 return sum
7、关键字参数
可变参数允许传入0个或者任意一个参数,这些可变参数在函数调用时自动组装为一个tuple,而关键字参数允许传入0个或者任意个含参数名的参数,这些参数在函数内部自动组织为一个dict。
def person(name, age, **kw): print(‘name:‘, name, ‘age:‘, age, ‘other:‘, kw)
>>> person(‘Bob‘, 35, city=‘Beijing‘) name: Bob age: 35 other: {‘city‘: ‘Beijing‘}
>>> extra = {‘city‘: ‘Beijing‘, ‘job‘: ‘Engineer‘} #还可以这样调用
>>> person(‘Jack‘, 24, **extra)
name: Jack age: 24 other: {‘city‘: ‘Beijing‘, ‘job‘: ‘Engineer‘}
8、python定义函数时,可以将5中参数同时组合使用(参数组合),组合顺序必须为:必选参数、默认参数、可变参数、命名关键字参数、关键字参数。
9、改动下面的product函数,使之变成可接收一个或多个数并计算乘积:
1 def product(x,y): 2 return x*y 3 4 5 #改为 6 def product(*kw): 7 pro = 1 8 for i in kw: 9 pro = pro * i 10 return pro
要注意定义可变参数和关键字参数的语法:
*args
是可变参数,args接收的是一个tuple;
**kw
是关键字参数,kw接收的是一个dict。
以及调用函数时如何传入可变参数和关键字参数的语法:
可变参数既可以直接传入:func(1, 2, 3)
,又可以先组装list或tuple,再通过*args
传入:func(*(1, 2, 3))
;
关键字参数既可以直接传入:func(a=1, b=2)
,又可以先组装dict,再通过**kw
传入:func(**{‘a‘: 1, ‘b‘: 2})
。
10、递归函数
汉诺塔:
1 利用递归函数移动汉诺塔: 2 def move(n, a, b, c): 3 if n == 1: 4 print(‘move‘, a, ‘-->‘, c) 5 else: 6 move(n-1, a, c, b) 7 move(1, a, b, c) 8 move(n-1, b, a, c) 9 10 move(4, ‘A‘, ‘B‘, ‘C‘)
11、迭代dict:
1 d={"a":3,"b":2,"c":6} 2 for key in d: #迭代key值 3 print(key) 4 5 for value in d.values(): #迭代value值 6 print(value) 7 8 for k,d in d.items(): #同时迭代key、value值 9 print(k,d)
12、python内置函数enumerate可以将list、tuple变成索引-元素对,这样可以在for循环中同时迭代索引和元素本身:
1 d=[(2,3),(4,5),(1,2)] 2 for i,value in enumerate(d): 3 print(i,value)
13、列表生成式语句非常简洁,用一句话就可以生成一个list对象:
[x*x for x in range(1,11)]
14、杨辉三角生成器
1 def triangles(lines): 2 L=[] 3 if lines == 0: 4 yield L 5 else: 6 L=[1] 7 i=1 8 yield L 9 while i<lines: 10 L=[sum(i) for i in zip([0]+L,L+[0])] 11 i=i+1 12 yield L
参考了 https://blog.csdn.net/zmy_3/article/details/51173580 这篇用的zip函数,自己稍加修改了一下。
一开始不懂的地方是第10行代码,两个list相加,就是合并,理解了这一点,在参考链接的那段代码,就很容易理解了。
15、利用map()
函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。
1 def normalize(name): 2 return(name.capitalize()) 3 4 5 l1=["xiaoming","dagou","john"] 6 l2=list(map(normalize,l1))
[‘Xiaoming‘, ‘Dagou‘, ‘John‘]#输出结果
标签:typeerror 内置函数 [] detail triangle 工作 job 数据类型 map
原文地址:https://www.cnblogs.com/zmjbk/p/8973189.html