Python基础day-11[内置函数(未完),递归,匿名函数]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)))
以上是关于Python基础day-11[内置函数(未完),递归,匿名函数]的主要内容,如果未能解决你的问题,请参考以下文章