自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

告別冗余代碼!這 20 個(gè) Python 內(nèi)置函數(shù)讓你的編程更優(yōu)雅高效

開(kāi)發(fā)
掌握常用內(nèi)置函數(shù)是精通 Python 的基礎(chǔ)。本文將詳細(xì)介紹 20 個(gè)在日常編程中極為常用的 Python 內(nèi)置函數(shù)。

Python自帶許多內(nèi)置函數(shù),這些函數(shù)無(wú)需導(dǎo)入任何模塊即可直接使用,極大地提高了開(kāi)發(fā)效率。掌握這些常用內(nèi)置函數(shù)是精通 Python 的基礎(chǔ)。本文將詳細(xì)介紹 20 個(gè)在日常編程中極為常用的 Python 內(nèi)置函數(shù)。

1. print()

將指定對(duì)象輸出到標(biāo)準(zhǔn)輸出設(shè)備(通常是控制臺(tái))。這是調(diào)試和顯示信息最常用的函數(shù)。

name = "Alice"
age = 30
print("Hello, world!")                   # 輸出字符串
print("Name:", name, "Age:", age)        # 輸出多個(gè)對(duì)象,默認(rèn)以空格分隔
print(f"User {name} is {age} years old.") # 使用 f-string 格式化輸出
print("第一行", end=" | ")               # 自定義行尾結(jié)束符
print("第二行")                           # 默認(rèn) end='\n' (換行)

print() 可以接受一個(gè)或多個(gè)參數(shù),并將它們轉(zhuǎn)換成字符串后輸出。sep 參數(shù)控制分隔符(默認(rèn)空格),end 參數(shù)控制行尾符(默認(rèn)換行)。

2. input()

從標(biāo)準(zhǔn)輸入(通常是鍵盤(pán))讀取一行文本,并將其作為字符串返回(末尾的換行符會(huì)被剝離)。

user_name = input("請(qǐng)輸入您的名字: ")
user_age_str = input("請(qǐng)輸入您的年齡: ")
print(f"您好, {user_name}! 您輸入的年齡是: {user_age_str}")
print(f"名字的數(shù)據(jù)類(lèi)型: {type(user_name)}")   # 輸出: <class 'str'>
print(f"年齡的數(shù)據(jù)類(lèi)型: {type(user_age_str)}") # 輸出: <class 'str'>

input() 會(huì)暫停程序執(zhí)行,等待用戶輸入。無(wú)論用戶輸入什么,input() 總是返回一個(gè)字符串。如果需要數(shù)字,需要后續(xù)使用 int() 或 float() 進(jìn)行轉(zhuǎn)換。

3. len()

返回對(duì)象的“長(zhǎng)度”(其中包含的項(xiàng)數(shù))。適用于序列(如字符串、列表、元組)和集合(如字典、集合)。

my_string = "Python"
my_list = [1, 2, 3, 4, 5]
my_dict = {'a': 1, 'b': 2}
print(f"字符串 '{my_string}' 的長(zhǎng)度: {len(my_string)}") # 輸出: 6
print(f"列表 my_list 的長(zhǎng)度: {len(my_list)}")       # 輸出: 5
print(f"字典 my_dict 的鍵值對(duì)數(shù)量: {len(my_dict)}") # 輸出: 2

len() 是獲取容器或序列大小的基本方法。

4. type()

返回對(duì)象的類(lèi)型(類(lèi))。對(duì)于調(diào)試和理解代碼中變量的性質(zhì)非常有用。

x = 10
y = 3.14
z = "hello"
l = [1, 2]
print(f"變量 x 的類(lèi)型是: {type(x)}") # 輸出: <class 'int'>
print(f"變量 y 的類(lèi)型是: {type(y)}") # 輸出: <class 'float'>
print(f"變量 z 的類(lèi)型是: {type(z)}") # 輸出: <class 'str'>
print(f"變量 l 的類(lèi)型是: {type(l)}") # 輸出: <class 'list'>

type() 返回對(duì)象的類(lèi)對(duì)象,可以據(jù)此判斷變量屬于哪種數(shù)據(jù)類(lèi)型。

5. int()

將一個(gè)數(shù)字或字符串轉(zhuǎn)換為整數(shù)。如果字符串不能表示一個(gè)有效的整數(shù),會(huì)引發(fā) ValueError。

float_num = 9.8
str_num = "123"
str_invalid = "abc"

print(f"{float_num} 轉(zhuǎn)換為整數(shù): {int(float_num)}") # 輸出: 9 (向零取整)
print(f"字符串 '{str_num}' 轉(zhuǎn)換為整數(shù): {int(str_num)}") # 輸出: 123

try:
    int(str_invalid)
except ValueError as e:
    print(f"轉(zhuǎn)換 '{str_invalid}' 失敗: {e}") # 輸出: invalid literal for int() with base 10: 'abc'

# 也可以指定基數(shù)進(jìn)行轉(zhuǎn)換 (例如二進(jìn)制)
binary_str = "1011"
print(f"二進(jìn)制字符串 '{binary_str}' 轉(zhuǎn)換為十進(jìn)制整數(shù): {int(binary_str, 2)}") # 輸出: 11

int() 常用于處理用戶輸入或文件讀取的字符串?dāng)?shù)據(jù),將其轉(zhuǎn)換為可進(jìn)行數(shù)學(xué)運(yùn)算的整數(shù)。

6. float()

將一個(gè)數(shù)字或字符串轉(zhuǎn)換為浮點(diǎn)數(shù)。如果字符串不能表示一個(gè)有效的數(shù)字,會(huì)引發(fā) ValueError。

int_num = 100
str_num = "3.14159"
str_int = "42"
str_invalid = "pi"

print(f"{int_num} 轉(zhuǎn)換為浮點(diǎn)數(shù): {float(int_num)}")         # 輸出: 100.0
print(f"字符串 '{str_num}' 轉(zhuǎn)換為浮點(diǎn)數(shù): {float(str_num)}") # 輸出: 3.14159
print(f"字符串 '{str_int}' 轉(zhuǎn)換為浮點(diǎn)數(shù): {float(str_int)}") # 輸出: 42.0

try:
    float(str_invalid)
except ValueError as e:
    print(f"轉(zhuǎn)換 '{str_invalid}' 失敗: {e}") # 輸出: could not convert string to float: 'pi'

float() 用于需要小數(shù)精度計(jì)算的場(chǎng)景,同樣常用于轉(zhuǎn)換輸入數(shù)據(jù)。

7. str()

將對(duì)象轉(zhuǎn)換為其字符串表示形式。幾乎所有 Python 對(duì)象都可以被 str() 轉(zhuǎn)換。

number = 42
pi = 3.14
my_list = [1, 'a', True]
is_valid = False

print(f"整數(shù) {number} 轉(zhuǎn)為字符串: '{str(number)}'")     # 輸出: '42'
print(f"浮點(diǎn)數(shù) {pi} 轉(zhuǎn)為字符串: '{str(pi)}'")         # 輸出: '3.14'
print(f"列表 {my_list} 轉(zhuǎn)為字符串: '{str(my_list)}'")   # 輸出: '[1, 'a', True]'
print(f"布爾值 {is_valid} 轉(zhuǎn)為字符串: '{str(is_valid)}'") # 輸出: 'False'

str() 在需要將非字符串?dāng)?shù)據(jù)(如數(shù)字、列表)嵌入到字符串中(尤其是在舊式 % 格式化或 + 拼接時(shí))或?qū)懭胛募r(shí)非常有用。

8. list()

將一個(gè)可迭代對(duì)象(如字符串、元組、集合、字典的鍵/值/項(xiàng))轉(zhuǎn)換為列表。也可以創(chuàng)建一個(gè)空列表。

my_string = "abc"
my_tuple = (10, 20, 30)
my_set = {1, 2, 3}
my_dict = {'x': 1, 'y': 2}

print(f"字符串 '{my_string}' 轉(zhuǎn)為列表: {list(my_string)}") # 輸出: ['a', 'b', 'c']
print(f"元組 {my_tuple} 轉(zhuǎn)為列表: {list(my_tuple)}")    # 輸出: [10, 20, 30]
print(f"集合 {my_set} 轉(zhuǎn)為列表: {list(my_set)}")        # 輸出: [1, 2, 3] (順序可能變化)
print(f"字典的鍵轉(zhuǎn)為列表: {list(my_dict)}")            # 輸出: ['x', 'y'] (Python 3.7+ 保證順序)
print(f"字典的值轉(zhuǎn)為列表: {list(my_dict.values())}")    # 輸出: [1, 2]
print(f"字典的項(xiàng)轉(zhuǎn)為列表: {list(my_dict.items())}")     # 輸出: [('x', 1), ('y', 2)]
print(f"創(chuàng)建一個(gè)空列表: {list()}")                  # 輸出: []

list() 是創(chuàng)建新列表或從其他可迭代類(lèi)型復(fù)制/轉(zhuǎn)換元素到列表的常用方法。列表是可變的,因此轉(zhuǎn)換后可以修改。

9. tuple()

將一個(gè)可迭代對(duì)象轉(zhuǎn)換為元組。元組是不可變的序列。

my_string = "xyz"
my_list = [4, 5, 6]

print(f"字符串 '{my_string}' 轉(zhuǎn)為元組: {tuple(my_string)}") # 輸出: ('x', 'y', 'z')
print(f"列表 {my_list} 轉(zhuǎn)為元組: {tuple(my_list)}")      # 輸出: (4, 5, 6)
print(f"創(chuàng)建一個(gè)空元組: {tuple()}")                    # 輸出: ()

tuple() 用于需要不可變序列的場(chǎng)景,或者希望將可迭代對(duì)象轉(zhuǎn)換為元組形式。

10. dict()

創(chuàng)建 一個(gè)新的字典??梢酝ㄟ^(guò)關(guān)鍵字參數(shù)、映射對(duì)象或鍵值對(duì)的可迭代對(duì)象來(lái)初始化。

# 創(chuàng)建空字典
empty_dict = dict()
print(f"空字典: {empty_dict}") # 輸出: {}

# 使用關(guān)鍵字參數(shù)創(chuàng)建
kw_dict = dict(name="Bob", age=25, city="Paris")
print(f"關(guān)鍵字參數(shù)創(chuàng)建: {kw_dict}") # 輸出: {'name': 'Bob', 'age': 25, 'city': 'Paris'}

# 從鍵值對(duì)列表創(chuàng)建
pairs = [('a', 1), ('b', 2), ('c', 3)]
pairs_dict = dict(pairs)
print(f"鍵值對(duì)列表創(chuàng)建: {pairs_dict}") # 輸出: {'a': 1, 'b': 2, 'c': 3}

# 從另一個(gè)字典創(chuàng)建 (淺拷貝)
copy_dict = dict(kw_dict)
print(f"從字典拷貝創(chuàng)建: {copy_dict}")

dict() 是創(chuàng)建和初始化字典的靈活方式,比 {} 字面量提供了更多選項(xiàng)。

11. set()

創(chuàng)建一個(gè)新的集合。集合是無(wú)序的、不包含重復(fù)元素的集合。可以從可迭代對(duì)象創(chuàng)建。

my_string = "programming"
my_list = [1, 2, 2, 3, 1, 4]

print(f"從字符串創(chuàng)建集合: {set(my_string)}") # 輸出: {'r', 'o', 'g', 'a', 'm', 'i', 'n', 'p'} (順序不定)
print(f"從列表創(chuàng)建集合: {set(my_list)}")      # 輸出: {1, 2, 3, 4} (去重)
print(f"創(chuàng)建空集合: {set()}")                # 輸出: set()

set() 主要用于去重和執(zhí)行數(shù)學(xué)上的集合運(yùn)算(如并集、交集、差集)。

12. abs()

返回?cái)?shù)字的絕對(duì)值(其大小,不考慮符號(hào))。

positive_num = 10
negative_num = -5.5
zero = 0

print(f"{positive_num} 的絕對(duì)值: {abs(positive_num)}") # 輸出: 10
print(f"{negative_num} 的絕對(duì)值: {abs(negative_num)}") # 輸出: 5.5
print(f"{zero} 的絕對(duì)值: {abs(zero)}")           # 輸出: 0

abs() 在數(shù)學(xué)計(jì)算和需要忽略數(shù)值符號(hào)的場(chǎng)景中使用。

13. max()

返回可迭代對(duì)象中最大的項(xiàng),或者返回兩個(gè)或多個(gè)參數(shù)中最大的一個(gè)。

numbers = [3, 1, 4, 1, 5, 9, 2]
strings = ["apple", "banana", "cherry"]

print(f"列表 {numbers} 中的最大值: {max(numbers)}")       # 輸出: 9
print(f"字符串列表 {strings} 中的最大值 (字典序): {max(strings)}") # 輸出: 'cherry'
print(f"參數(shù) 10, 25, 18 中的最大值: {max(10, 25, 18)}")  # 輸出: 25

# 可以提供 key 函數(shù)進(jìn)行自定義比較
words = ["go", "pyth?n", "is", "fun"]
print(f"按長(zhǎng)度比較的最大單詞: {max(words, key=len)}") # 輸出: 'pyth?n' (長(zhǎng)度為6)

max() 對(duì)于尋找序列極值非常方便。key 參數(shù)允許基于元素的某個(gè)屬性或計(jì)算結(jié)果來(lái)比較。

14. min()

返回可迭代對(duì)象中最小的項(xiàng),或者返回兩個(gè)或多個(gè)參數(shù)中最小的一個(gè)。用法與 max() 類(lèi)似。

numbers = [3, 1, 4, 1, 5, 9, 2]
strings = ["apple", "banana", "cherry"]

print(f"列表 {numbers} 中的最小值: {min(numbers)}")       # 輸出: 1
print(f"字符串列表 {strings} 中的最小值 (字典序): {min(strings)}") # 輸出: 'apple'
print(f"參數(shù) 10, 25, 18 中的最小值: {min(10, 25, 18)}")  # 輸出: 10

# 使用 key 函數(shù)
words = ["go", "pyth?n", "is", "fun"]
print(f"按長(zhǎng)度比較的最小單詞: {min(words, key=len)}") # 輸出: 'go' (或 'is', 長(zhǎng)度為2)

min() 用于尋找序列的最小值,同樣支持 key 參數(shù)進(jìn)行自定義比較。

15. sum()

對(duì)可迭代對(duì)象(通常是數(shù)字列表、元組)中的所有項(xiàng)求和??梢蕴峁┮粋€(gè)可選的 start 參數(shù)作為初始值。

numbers = [1, 2, 3, 4, 5]
print(f"列表 {numbers} 的和: {sum(numbers)}")     # 輸出: 15

# 添加起始值
print(f"列表 {numbers} 的和加上起始值 10: {sum(numbers, 10)}") # 輸出: 25

# 對(duì)空列表求和 (默認(rèn) start=0)
print(f"空列表的和: {sum([])}")                  # 輸出: 0

sum() 是對(duì)數(shù)字序列進(jìn)行求和的快捷方式。注意它不能直接用于對(duì)非數(shù)字(如字符串)列表求和。

16. range()

返回一個(gè)表示算術(shù)級(jí)數(shù)序列的對(duì)象。常用于 for 循環(huán)中迭代指定的次數(shù)。它本身不創(chuàng)建列表,而是一個(gè)惰性序列。

print("迭代 0 到 4:")
for i in range(5):      # range(stop) - 從 0 到 stop-1
    print(i, end=" ")   # 輸出: 0 1 2 3 4
print("\n")

print("迭代 2 到 5:")
for i in range(2, 6):   # range(start, stop) - 從 start 到 stop-1
    print(i, end=" ")   # 輸出: 2 3 4 5
print("\n")

print("以步長(zhǎng) 2 迭代 1 到 9:")
for i in range(1, 10, 2): # range(start, stop, step)
    print(i, end=" ")   # 輸出: 1 3 5 7 9
print("\n")

# 將 range 對(duì)象轉(zhuǎn)換為列表 (以便查看)
range_list = list(range(3))
print(f"range(3) 轉(zhuǎn)為列表: {range_list}") # 輸出: [0, 1, 2]

range() 是控制循環(huán)次數(shù)的標(biāo)準(zhǔn)方式,它比手動(dòng)創(chuàng)建數(shù)字列表更高效(尤其是對(duì)于大范圍)。

17. enumerate()

返回一個(gè)枚舉對(duì)象。它接收一個(gè)可迭代對(duì)象作為參數(shù),并生成一系列包含索引和對(duì)應(yīng)值的元組。

fruits = ["apple", "banana", "cherry"]
print("使用 enumerate 迭代列表:")
for index, fruit in enumerate(fruits):
    print(f"索引 {index}: {fruit}")
    # 輸出:
    # 索引 0: apple
    # 索引 1: banana
    # 索引 2: cherry

print("\n使用 enumerate 并指定起始索引:")
for i, fruit in enumerate(fruits, start=1): # 從索引 1 開(kāi)始
    print(f"編號(hào) {i}: {fruit}")
    # 輸出:
    # 編號(hào) 1: apple
    # 編號(hào) 2: banana
    # 編號(hào) 3: cherry

當(dāng)循環(huán)中既需要元素的值也需要其索引時(shí),enumerate() 是最 Pythonic(符合 Python 風(fēng)格)且最高效的方式,避免了手動(dòng)維護(hù)計(jì)數(shù)器。

18. zip()

接收任意多個(gè)可迭代對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的迭代器。如果可迭代對(duì)象的長(zhǎng)度不同,zip 會(huì)在最短的對(duì)象耗盡后停止。

names = ["Alice", "Bob", "Charlie"]
ages = [30, 25, 35]
cities = ["New York", "Paris", "London"]

print("使用 zip 組合三個(gè)列表:")
zipped_data = zip(names, ages, cities)
print(f"zip 對(duì)象類(lèi)型: {type(zipped_data)}") # 輸出: <class 'zip'>

# 迭代 zip 對(duì)象
for name, age, city in zipped_data:
    print(f"{name} is {age} years old and lives in {city}.")
    # 輸出:
    # Alice is 30 years old and lives in New York.
    # Bob is 25 years old and lives in Paris.
    # Charlie is 35 years old and lives in London.

# 注意: zip 對(duì)象是一次性的迭代器,迭代過(guò)后就空了
# print(list(zipped_data)) # 會(huì)輸出 []

# 如果長(zhǎng)度不同
ids = [101, 102]
items = ["Laptop", "Mouse", "Keyboard"]
print("\n組合不同長(zhǎng)度的列表:")
for id_val, item_val in zip(ids, items):
    print(f"ID: {id_val}, Item: {item_val}")
    # 輸出: (只到最短的 ids 結(jié)束)
    # ID: 101, Item: Laptop
    # ID: 102, Item: Mouse

zip() 非常適合并行處理多個(gè)序列,例如同時(shí)迭代鍵和值,或合并來(lái)自不同來(lái)源的相關(guān)數(shù)據(jù)。

19. sorted()

返回一個(gè)新的、根據(jù)可迭代對(duì)象中的項(xiàng)排序后的列表。原始的可迭代對(duì)象保持不變。

numbers = [3, 1, 4, 1, 5, 9, 2]
print(f"原始列表: {numbers}")
sorted_numbers = sorted(numbers)
print(f"排序后列表 (升序): {sorted_numbers}") # 輸出: [1, 1, 2, 3, 4, 5, 9]
print(f"原始列表仍未改變: {numbers}")

# 降序排序
desc_sorted_numbers = sorted(numbers, reverse=True)
print(f"降序排序后列表: {desc_sorted_numbers}") # 輸出: [9, 5, 4, 3, 2, 1, 1]

# 對(duì)字符串列表排序 (字典序)
words = ["banana", "Apple", "cherry"] # 注意大小寫(xiě)影響排序
sorted_words = sorted(words)
print(f"字符串列表排序: {sorted_words}") # 輸出: ['Apple', 'banana', 'cherry']

# 使用 key 函數(shù)自定義排序規(guī)則 (例如按長(zhǎng)度)
sorted_words_by_length = sorted(words, key=len)
print(f"按長(zhǎng)度排序: {sorted_words_by_length}") # 輸出: ['Apple', 'banana', 'cherry'] (長(zhǎng)度相同則保持原相對(duì)順序)

# 對(duì)字典按值排序 (得到鍵的列表)
my_dict = {'a': 3, 'c': 1, 'b': 2}
sorted_keys_by_value = sorted(my_dict, key=my_dict.get)
print(f"字典按值排序 (得到鍵): {sorted_keys_by_value}") # 輸出: ['c', 'b', 'a']

sorted() 是通用的排序工具,適用于任何可迭代對(duì)象,并返回一個(gè)新的排序后的列表。key 參數(shù)和 reverse 參數(shù)提供了強(qiáng)大的自定義排序能力。它與列表的 .sort() 方法不同,后者是原地修改列表且只適用于列表。

20. open()

打開(kāi)一個(gè)文件,并返回一個(gè)文件對(duì)象(也稱為文件句柄)。這是進(jìn)行文件讀取、寫(xiě)入等操作的基礎(chǔ)。

file_path = 'example.txt'

# --- 寫(xiě)入文件 ('w' 模式會(huì)覆蓋舊內(nèi)容) ---
try:
    # 使用 'with' 語(yǔ)句確保文件無(wú)論如何都會(huì)被關(guān)閉
    with open(file_path, 'w', encoding='utf-8') as writer:
        writer.write("這是第一行內(nèi)容。\n")
        writer.write(f"Python 版本: 3.x\n") # 可以寫(xiě)入變量
        print(f"成功寫(xiě)入到文件 '{file_path}'")
except IOError as e:
    print(f"寫(xiě)入文件時(shí)發(fā)生錯(cuò)誤: {e}")

# --- 讀取文件 ('r' 模式) ---
try:
    with open(file_path, 'r', encoding='utf-8') as reader:
        # 讀取整個(gè)文件內(nèi)容
        # content = reader.read()
        # print(f"\n文件 '{file_path}' 的全部?jī)?nèi)容:\n{content}")

        # 或者逐行讀取
        print(f"\n逐行讀取文件 '{file_path}':")
        for line in reader:
            print(line.strip()) # strip() 去除行尾換行符

except FileNotFoundError:
    print(f"錯(cuò)誤: 文件 '{file_path}' 未找到。")
except IOError as e:
    print(f"讀取文件時(shí)發(fā)生錯(cuò)誤: {e}")

# --- 追加內(nèi)容到文件 ('a' 模式) ---
try:
    with open(file_path, 'a', encoding='utf-8') as appender:
        appender.write("這是追加的一行。\n")
        print(f"\n成功追加內(nèi)容到文件 '{file_path}'")
except IOError as e:
    print(f"追加文件時(shí)發(fā)生錯(cuò)誤: {e}")

open() 函數(shù)是文件操作的入口。第一個(gè)參數(shù)是文件路徑,第二個(gè)參數(shù)是模式('r'讀, 'w'寫(xiě), 'a'追加, 'b'二進(jìn)制模式等)。encoding='utf-8' 對(duì)于處理文本文件至關(guān)重要。強(qiáng)烈推薦使用 with open(...) 語(yǔ)法,它能自動(dòng)管理文件的關(guān)閉,即使發(fā)生錯(cuò)誤也能保證關(guān)閉,防止資源泄漏。

Python 的內(nèi)置函數(shù)遠(yuǎn)不止這些,大家可以進(jìn)一步探索Python官方文檔,了解更多內(nèi)置函數(shù)和標(biāo)準(zhǔn)庫(kù)模塊。

責(zé)任編輯:趙寧寧 來(lái)源: Python數(shù)智工坊
相關(guān)推薦

2024-07-03 08:13:56

規(guī)則執(zhí)行器代碼

2023-11-23 13:50:00

Python代碼

2023-07-10 09:39:02

lambdaPython語(yǔ)言

2020-04-03 14:55:39

Python 代碼編程

2022-03-08 06:41:35

css代碼

2022-12-26 07:47:37

JDK8函數(shù)式接口

2022-04-10 10:41:17

ESLint異步代碼

2019-09-29 16:17:25

Java代碼性能編程語(yǔ)言

2024-05-24 10:51:51

框架Java

2020-09-25 16:20:21

Python內(nèi)置函數(shù)字符串

2024-08-21 08:43:53

Python技巧鍵值

2024-02-26 16:40:58

2025-02-17 08:50:00

CSS代碼JavaScript

2025-04-30 05:58:20

2024-07-25 14:36:10

2024-08-20 14:25:20

2022-09-19 15:02:24

C語(yǔ)言

2024-02-23 08:57:42

Python設(shè)計(jì)模式編程語(yǔ)言

2024-07-30 14:09:19

裝飾器Python代碼

2024-11-04 19:46:38

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)