17.推導式: 推導式:將for迴圈多行變成一行 1. list推導式:[] 2. 生成器表達器:() 3. 字典/集合推導式:{} list: [變數(加工後的變數) for 迴圈] [變數(加工後的變數) for 迴圈 加工條件] 生成器推導式: (變數(加工後的變數 ) for 迴圈) (變數 ...
17.推導式:
推導式:將for迴圈多行變成一行
- list推導式:[]
#普通模式
print([i for i in range(20)])
#迴圈模式
#[變數 for i in range(20)]
print([i+1 for i in range(10)])
#篩選模式
#[變數(加工後) for i in range(20)]
print([i for i in range(20) if i % 2 == 1])
- 生成器表達器:()
#普通模式
print((i for i in range(20)))
#結果:是記憶體地址 <generator object <genexpr> at 0x0000023EBFA0F048>
g = (i for i in range(20))
print(next(g))
print(next(g))
#篩選模式
g = (i for i in range(50) if i %2 ==1)
for i in g:
print(i)
- 字典/集合推導式:{}
#{}
print({for i in range(10)})#集合
print({i:i+1 for i in range(10)})#字典,鍵值對
#篩選模式
print({for i in range(10) if i % 2 == 0})
print({i:i+1 for i in range(10) if i % 2 == 0})
list:
[變數(加工後的變數) for 迴圈]
[變數(加工後的變數) for 迴圈 加工條件]
生成器推導式:
(變數(加工後的變數 ) for 迴圈)
(變數(加工後的變數) for 迴圈 加工條件)
字典推導式:
{鍵:值 for迴圈 加工條件}
集合推導式:
{變數 for 迴圈 加工條件}
18.內置函數一(瞭解):
- eval():將字元串中的數按運算符運算
s = '3+5'
print(eval(s))
s = '3*5'
print(eval(s))
def func():
print(1)
return
func()
- exec():
s1 = """
def func():
print(123)
func
"""
print(exec(s))#牛逼,工作中不能使用
- hash():獲取哈希值
print(hash("lajdsf"))
- help():列印源碼
print(help(list))
help(list)
- callable():判斷是否可調用,返回bool
def func():
pass
print(callable(func))
- complex():複數
print(complex(-1))
- oct(): 十進位轉八進位
- hex():十進位轉十六進位
print(oct(15))
print(hex(15))
- divmod(): 列印商和餘數
print(divmod(5,2))
- round(): 四捨五入,分奇數偶數,可指定保留小數位
print(2.5)#偶數0~0.5舍,0.51~0.99入
print(5.5)#奇數0~0.49舍,0.5~0.99入
print(5.231,2)#指定保留兩位小數。指定保留小數後都是4舍5入
- pow():求冪
print(pow(2,3))
print(pow(2,4,3))#先求冪,在除第三個數取餘
- bytes():
s = 'alex'
print(bytes(s,encoding = 'utf-8'))
- ord():
- chr()
print(ord("A"))#字母和數字轉aci碼
print(ord('你'))#漢字是當前使用的編碼
print(chr(20320))
- repr():-->r防轉義#\u 3000代表一個空格
- all():判斷元素是否都為真
- any():判斷元素是否有真
lst = [1,2,6,0,2]
print(all(lst))#False
print(any(lst))#true
- globals():查看全局空間存在的變數
- locals():查看當前空間存在的變數
name = 1
def func():
a = 123
print(locals())
return
print(globals)