一、數據類型轉換
1.隱式類型轉換
在隱式類型轉換中,Python 會自動將一種數據類型轉換為另一種數據類型。
對兩種不同類型的數據進行運算,較低數據類型就會轉換為較高數據類型以避免數據丟失。
2.顯式類型轉換
在顯式類型轉換中,用戶將對象的數據類型轉換為所需的數據類型。 使用 int()、float()、str() 等預定義函數來執行顯式類型轉換。
1.int()?強制轉換為整型
x?=?int(1)???# x 輸出結果為 1
y?=?int(2.8)?# y 輸出結果為 2
z?=?int("3")?# z 輸出結果為 3
2.float()?強制轉換為浮點型
x?=?float(1)?? ??# x 輸出結果為 1.0
y?=?float(2.8)???# y 輸出結果為 2.8
z?=?float("3")???# z 輸出結果為 3.0
w?=?float("4.2")?# w 輸出結果為 4.2
3.str()?強制轉換為字符串類型
x?=?str("s1")?# x 輸出結果為 's1'
y?=?str(2)?? ?# y 輸出結果為 '2'
z?=?str(3.0)??# z 輸出結果為 '3.0'
二、推導式
1.列表推導式
[表達式 for 變量 in 列表]
[out_exp_res for out_exp in input_list]
或者
[表達式 for 變量 in 列表 if 條件]
[out_exp_res for out_exp in input_list if condition]
out_exp_res:列表生成元素表達式,可以是有返回值的函數。
for out_exp in input_list:迭代 input_list 將 out_exp 傳入到 out_exp_res 表達式中。
if condition:條件語句,可以過濾列表中不符合條件的值。
①過濾掉長度小于或等于3的字符串列表,并將剩下的轉換成大寫字母:
>>>?names?=?['Tom','Alice','Jerry','Wendy','Smith']
>>>?new_names?=?[name.upper()for?name?in?names?if?len(name)>3]
>>>?print(new_names)
輸出:
['ALICE',?'JERRY',?'WENDY',?'SMITH']
②計算 30 以內可以被 3 整除的整數:
>>>?multiples?=?[i?for?i?in?range(30)?if?i %?3?==?0]
>>>?print(multiples)
輸出:
[0,?3,?6,?9,?12,?15,?18,?21,?24,?27]
2.字典推導式
{ key_expr: value_expr for value in collection }
或
{ key_expr: value_expr for value in collection if condition }
使用字符串及其長度創建字典:
listdemo?=?['Google',?'Taobao']
# 將列表中各字符串值為鍵,各字符串的長度為值,組成鍵值對
>>>?newdict?=?{key:len(key)?for?key?in?listdemo}
>>>?newdict
輸出:
{'Google':?6,??'Taobao':?6}
3.集合推導式
{ expression for item in Sequence }
或
{ expression for item in Sequence if conditional }
①計算數字 1,2,3 的平方數:
>>>?setnew?=?{i**2?for?i?in?(1,2,3)}
>>>?setnew
輸出:
{1,?4,?9}
②判斷不是 abc 的字母并輸出:
>>>?a?=?{x?for?x?in?'abracadabra'?if?x?not?in?'abc'}
>>>?a
{'d',?'r'}
>>>?type(a)
<class?'set'>
4.元組推導式
元組推導式可以利用 range 區間、元組、列表、字典和集合等數據類型,快速生成一個滿足指定需求的元組。
(expression for item in Sequence )
或
(expression for item in Sequence if conditional )
元組推導式和列表推導式的用法也完全相同,只是元組推導式是用?()?圓括號將各部分括起來,而列表推導式用的是中括號?[],另外元組推導式返回的結果是一個生成器對象。
生成一個包含數字 1~9 的元組:
>>>?a?=?(x?for?x?in?range(1,10))
>>>?a
<generator?object?<genexpr>?at?0x7faf6ee20a50>??# 返回的是生成器對象
>>>?tuple(a)?? ? ??# 使用 tuple() 函數,可以直接將生成器對象轉換成元組
(1,?2,?3,?4,?5,?6,?7,?8,?9)
三、lambda(匿名函數)
lambda 函數是一種小型、匿名的、內聯函數,它可以具有任意數量的參數,但只能有一個表達式。且不需要使用?def?關鍵字定義完整函數。
lambda 函數通常用于編寫簡單的、單行的函數,通常在需要函數作為參數傳遞的情況下使用,例如在 map()、filter()、reduce() 等函數中。
1.語法格式
lambda arguments: expression
lambda是 Python 的關鍵字,用于定義 lambda 函數。
arguments?是參數列表,可以包含零個或多個參數,但必須在冒號(:)前指定。
expression?是一個表達式,用于計算并返回函數的結果。
2.示例
①沒有參數:
f = lambda: "Hello, world!"
print(f()) # 輸出: Hello, world!
輸出結果:
Hello, world!
②一個參數:
使用 lambda 創建匿名函數,設置一個函數參數 a,函數計算參數 a 加 10,并返回結果。
x = lambda a : a + 10
print(x(5))
輸出結果:
15
③多個參數:
設置多個參數時,參數使用逗號( , )隔開。
使用 lambda 創建匿名函數,函數參數 a 與 b 相乘,并返回結果。
x = lambda a, b : a * b
print(x(5, 6))
輸出結果:
30
四、end 關鍵字
關鍵字end可以用于將結果輸出到同一行,或者在輸出的末尾添加不同的字符。