Python基础day-11递归,匿名函数
内置函数:
abs() : 返回数字的绝对值。参数可以是整数或浮点数,如果参数是复数,则返回复数的模。
print(abs(0.2)) print(abs(1)) print(abs(-4)) print(abs(-0.2)) print(abs(3+4j)) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py 0.2 1 4 0.2 5.0 Process finished with exit code 0
all():如果 iterable 的所有元素都为真(或者如果可迭代为空),则返回 True。
l = [1,2,3,4,5,6,7] print(all(l)) l = [] print(all(l)) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py True True Process finished with exit code 0
any():如果iterable的任何元素为真,则返回True。如果iterable为空,则返回False。
l = [1,2,3,4,5,6,7] print(any(l)) l = [] print(any(l)) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py True False Process finished with exit code 0
ascii():返回一个可打印的对象字符串方式表示,如果是非ascii字符就会输出\x,\u等字符来表示。
print(ascii('中文')) print(ascii(10), ascii(9000000), ascii('b\10'), ascii('0x\001')) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py '\u4e2d\u6587' 10 9000000 'b\x08' '0x\x01' Process finished with exit code 0
bin():将整数转换为二进制字符串。
print(bin(10)) print(bin(77)) print(bin(100)) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py 0b1010 0b1001101 0b1100100 Process finished with exit code 0
bool():返回布尔值,即True或False之一。
print(bool(0)) print(bool(None)) print(bool()) print(bool(1)) print(bool('abc')) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py False False False True True Process finished with exit code 0
chr():输入unicode代码,返回对应的字符。
print(chr(25991)) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py 文 Process finished with exit code 0
ord():输入一个字符,返回其unicode代码。
print(ord('中')) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py 20013 Process finished with exit code 0
dict():定义一个新的字典。
d = dict({'name':'abc','age':123})
print(d)
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
{'name': 'abc', 'age': 123}
Process finished with exit code 0
divmod():以两个(非复数)数字作为参数,并在使用整数除法时返回由商和余数组成的一对数字。
print(divmod(73,23)) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py (3, 4) Process finished with exit code 0
enumerate():给列表,元组等可索引类型加上序号。
l=['a','b','c'] for i in enumerate(l): print(i) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py (0, 'a') (1, 'b') (2, 'c') Process finished with exit code 0
eval():从文件中读取字符串转换成命令执行。
with open(r'E:\Python\Exercise\user.txt','r',encoding='utf-8') as f: for i in f: d = eval(i) print(d,type(d)) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py {'abc': '123', 'laochai': 'SB', 'xiaohe': 'bigSB'} <class 'dict'> Process finished with exit code 0
float():将一个整数或者字符串类型的数字,变成浮点数返回。
x = float(1) print(x,type(x)) i = float('123') print(i,type(i)) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py 1.0 <class 'float'> 123.0 <class 'float'> Process finished with exit code 0
format():格式化字符串
x = 'Name:{x},age:{y},sex:{z}' x = x.format(y=18,x='abc',z='male') print(x) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py Name:abc,age:18,sex:male Process finished with exit code 0
frozenset():不可变的集合,没有add,remove方法
s = frozenset({1,2,3,4,5,6})
print(s)
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
frozenset({1, 2, 3, 4, 5, 6})
Process finished with exit code 0
globals():返回当前全局作用域。
print(globals()) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x03889510>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'E:/Python/DAY-11/tmp.py', '__cached__': None} Process finished with exit code 0
hash():查看哈希值。
s1='hello123123' s2='hello123123' print(hash(s1)) print(hash(s2)) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py -1538468614 -1538468614 Process finished with exit code 0
hex():转换十进制为十六进制。
print(hex(15))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
0xf
Process finished with exit code 0
id():查看数据的唯一标识。
print(id('abc'))
print(id('def'))
print(id('abc'))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
50389024
50435488
50389024
Process finished with exit code 0
input():等待用户输入并赋值给变量名。
username = input('Enter your username:')
print('Your name:',username)
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
Enter your username:test
Your name: test
Process finished with exit code 0
int():转换一个数字或者字符串类型的数字为整数类型。
i = int('123')
print(i,type(i))
x = int(1)
print(x,type(x))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
123 <class 'int'>
1 <class 'int'>
Process finished with exit code 0
isinstance():判断一个对象是不是,列表、元组等类型。
l = [1,2,3,4,5]
print(isinstance(l,list))
print(isinstance(l,tuple))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
True
False
Process finished with exit code 0
iter():转换可迭代对象为迭代器。
l = [1,2,3,4,5]
print(iter(l))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
<list_iterator object at 0x035F9550>
Process finished with exit code 0
len():返回对象的长度。参数可以是字符串,列表,元组,字典,集合
l = [1,2,3,4,5]
print(len(l))
print(len('abc'))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
5
3
Process finished with exit code 0
list():新建一个新的列表。
l = list([1,2,3,4,5,6,7])
print(l,type(l))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
[1, 2, 3, 4, 5, 6, 7] <class 'list'>
Process finished with exit code 0
locals():查看局部作用域。在全局作用域中使用局部作用域显示的还是全局作用域。
print(locals())
print(globals() is locals())
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00C79510>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'E:/Python/DAY-11/tmp.py', '__cached__': None}
True
Process finished with exit code 0
map():传递一个function,和一个iterable,function必须处理iterable中的所有元素。
l=[1,2,3,4]
m=map(lambda x:x**2,l)
print(list(m))
names=['alex','wupeiqi','yuanhao']
print(list(map(lambda item:item+'_SB',names)))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
[1, 4, 9, 16]
['alex_SB', 'wupeiqi_SB', 'yuanhao_SB']
Process finished with exit code 0
max():两个值的最大值。
示例一:
salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000
}
print(max(salaries)) #默认只能读到字典的key,比较字符串是根绝a-z的顺序比较的,先比较第一位字母。注:z>a
print(max(salaries.values())) #比较value
res=zip(salaries.values(),salaries.keys())
print(max(res)[-1])
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
yuanhao
100000000
alex
Process finished with exit code 0
示例二:
salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000
}
def func(x):
return salaries[x]
print(max(salaries,key=lambda x:salaries[x]))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
alex
Process finished with exit code 0
min():同max一样用法,不过是返回时两者之间小的那个值。
next():从迭代器中读取一次值。
l = [1,2,3,4,5,6,7,8]
l = iter(l)
print(next(l))
print(next(l))
print(next(l))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
1
2
3
Process finished with exit code 0
oct():转换八进制。
print(oct(9))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
0o11
Process finished with exit code 0
open():打开一个文件进行文件操作的前提。注:open方式打开文件不会自动关闭,使用with open() as 可以自动关闭文件。
'r'
打开阅读(默认)
'w'
打开写入,首先截断文件
'x'
打开以供独占创建,如果文件已存在则失败
'a'
打开以写入,如果存在,则附加到文件的末尾
'b'
二进制模式
't'
文本模式(默认)
'+'
打开磁盘文件进行更新(读写)
'U'
universal newlines 模式(已弃用)
=====================================
f = open (r'E:\Python\Exercise\userinfo.txt','r',encoding='utf-8')
for i in f:
print(i)
f.close() #关闭文件
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
1,Alex Li,22,13651054608,IT,2013-04-01
2,Jack Wang,30,13304320533,HR,2015-05-03
3,Rain Liu,25,1383235322,Sales,2016-04-22
4,Mack Cao,40,1356145343,HR,2009-03-01
Process finished with exit code 0
pow(): 平方,取余。
print(pow(3,2)) #平方
print(pow(3,2,2)) #取余
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
9
1
Process finished with exit code 0
print():打印信息。
print('Hello Python!')
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
Hello Python!
Process finished with exit code 0
range():生成一个指定范围的数组。range特性顾头不顾尾
for i in range(1,5,2): #从1开始到4结束,步长为2
print(i)
print('----------------------')
for i in range(1, 5):
print(i)
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
1
3
----------------------
1
2
3
4
Process finished with exit code 0
repr():将一个对象转成字符串显示,注:只是显示用
l = [1,2,3,4,5,6]
l_t = repr(l)
print(l_t,type(l_t))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
[1, 2, 3, 4, 5, 6] <class 'str'>
Process finished with exit code 0
zip():创建一个迭代器,聚合来自每个迭代器的元素。返回元组的迭代器。
l1 = [1,2,3,4]
l2 = ['a','b','c','d']
l = zip(l1,l2)
print(l)
print(list(l))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
<zip object at 0x0358A080>
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
Process finished with exit code 0
round():保留多少位小数。
print(round(3.3456,3))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
3.346
Process finished with exit code 0
set():新建一个集合。
s = set({1,2,3,4,56})
print(type(s))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
<class 'set'>
Process finished with exit code 0
reversed():反转。
l = [1,2,3,4,5,6]
l1 = reversed(l)
print(l1)
for i in l1:
print(i)
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
<list_reverseiterator object at 0x00989550>
6
5
4
3
2
1
Process finished with exit code 0
str():新建一个字符串。
s = str('abc')
print(s,type(s))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
abc <class 'str'>
Process finished with exit code 0
sum():求和运算。
l = [1,2,3,4,5,6,7]
print(sum(l))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
28
Process finished with exit code 0
tuple():新建一个元组。
t = (1,2,3,4,5,6,7)
print(t,type(t))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
(1, 2, 3, 4, 5, 6, 7) <class 'tuple'>
Process finished with exit code 0
type():查看一个值得类型。
t = (1,2,3,4,5,6,7)
print(type(t))
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
<class 'tuple'>
Process finished with exit code 0
sorted():排序。
l=[1,2,4,9,-1]
print(sorted(l)) #从小到大
print(sorted(l,reverse=True)) #从大到小
执行结果:
D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py
[-1, 1, 2, 4, 9]
[9, 4, 2, 1, -1]
Process finished with exit code 0
递归调用:
在调用一个函数的过程中,直接或间接调用了该函数本身。
递归效率低下,需要在进入下一次递归时保留当前的状态。
Python没有尾递归,并且做了层级限制。
必须有一个明确的结束条件。
示例:
l = [1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]] def readdate(list_name): for i in list_name: if isinstance(i,list): readdate(i) else: print(i) readdate(l)
匿名函数:
自带return,无需函数名,一定有个返回值。匿名函数只能运行一次。
冒号左边是参数,右边是函数体。
使用lambda定义匿名函数:
lambda x:x**2
示例:
l=[1,2,3,4]
m=map(lambda x:x**2,l)
print(list(m))
names=['alex','wupeiqi','yuanhao']
print(list(map(lambda item:item+'_SB',names)))


浙公网安备 33010602011771号