偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

1. print()

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

name = "Alice"
age = 30
print("Hello, world!")                   # 輸出字符串
print("Name:", name, "Age:", age)        # 輸出多個(gè)對象,默認(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)輸入(通常是鍵盤)讀取一行文本,并將其作為字符串返回(末尾的換行符會被剝離)。

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

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

3. len()

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

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

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

4. type()

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

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

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

5. int()

將一個(gè)數(shù)字或字符串轉(zhuǎn)換為整數(shù)。如果字符串不能表示一個(gè)有效的整數(shù),會引發(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ù)字,會引發(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ì)算的場景,同樣常用于轉(zhuǎn)換輸入數(shù)據(jù)。

7. str()

將對象轉(zhuǎn)換為其字符串表示形式。幾乎所有 Python 對象都可以被 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è)可迭代對象(如字符串、元組、集合、字典的鍵/值/項(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)建新列表或從其他可迭代類型復(fù)制/轉(zhuǎn)換元素到列表的常用方法。列表是可變的,因此轉(zhuǎn)換后可以修改。

9. tuple()

將一個(gè)可迭代對象轉(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() 用于需要不可變序列的場景,或者希望將可迭代對象轉(zhuǎn)換為元組形式。

10. dict()

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

# 創(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'}

# 從鍵值對列表創(chuàng)建
pairs = [('a', 1), ('b', 2), ('c', 3)]
pairs_dict = dict(pairs)
print(f"鍵值對列表創(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è)新的集合。集合是無序的、不包含重復(fù)元素的集合。可以從可迭代對象創(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ù)字的絕對值(其大小,不考慮符號)。

positive_num = 10
negative_num = -5.5
zero = 0

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

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

13. max()

返回可迭代對象中最大的項(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"按長度比較的最大單詞: {max(words, key=len)}") # 輸出: 'pyth?n' (長度為6)

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

14. min()

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

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"按長度比較的最小單詞: {min(words, key=len)}") # 輸出: 'go' (或 'is', 長度為2)

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

15. sum()

對可迭代對象(通常是數(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

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

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

16. range()

返回一個(gè)表示算術(shù)級數(shù)序列的對象。常用于 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("以步長 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 對象轉(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)方式,它比手動創(chuàng)建數(shù)字列表更高效(尤其是對于大范圍)。

17. enumerate()

返回一個(gè)枚舉對象。它接收一個(gè)可迭代對象作為參數(shù),并生成一系列包含索引和對應(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 開始
    print(f"編號 {i}: {fruit}")
    # 輸出:
    # 編號 1: apple
    # 編號 2: banana
    # 編號 3: cherry

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

18. zip()

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

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 對象類型: {type(zipped_data)}") # 輸出: <class 'zip'>

# 迭代 zip 對象
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 對象是一次性的迭代器,迭代過后就空了
# print(list(zipped_data)) # 會輸出 []

# 如果長度不同
ids = [101, 102]
items = ["Laptop", "Mouse", "Keyboard"]
print("\n組合不同長度的列表:")
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í)迭代鍵和值,或合并來自不同來源的相關(guān)數(shù)據(jù)。

19. sorted()

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

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]

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

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

# 對字典按值排序 (得到鍵的列表)
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() 是通用的排序工具,適用于任何可迭代對象,并返回一個(gè)新的排序后的列表。key 參數(shù)和 reverse 參數(shù)提供了強(qiáng)大的自定義排序能力。它與列表的 .sort() 方法不同,后者是原地修改列表且只適用于列表。

20. open()

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

file_path = 'example.txt'

# --- 寫入文件 ('w' 模式會覆蓋舊內(nèi)容) ---
try:
    # 使用 'with' 語句確保文件無論如何都會被關(guān)閉
    with open(file_path, 'w', encoding='utf-8') as writer:
        writer.write("這是第一行內(nèi)容。\n")
        writer.write(f"Python 版本: 3.x\n") # 可以寫入變量
        print(f"成功寫入到文件 '{file_path}'")
except IOError as e:
    print(f"寫入文件時(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}' 的全部內(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'寫, 'a'追加, 'b'二進(jìn)制模式等)。encoding='utf-8' 對于處理文本文件至關(guān)重要。強(qiáng)烈推薦使用 with open(...) 語法,它能自動管理文件的關(guān)閉,即使發(fā)生錯(cuò)誤也能保證關(guān)閉,防止資源泄漏。

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

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

2024-07-03 08:13:56

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

2023-11-23 13:50:00

Python代碼

2025-05-29 08:35:39

Python代碼開發(fā)

2023-07-10 09:39:02

lambdaPython語言

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異步代碼

2020-09-25 16:20:21

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

2024-05-24 10:51:51

框架Java

2019-09-29 16:17:25

Java代碼性能編程語言

2024-02-26 16:40:58

2024-08-21 08:43:53

Python技巧鍵值

2025-04-30 05:58:20

2025-02-17 08:50:00

CSS代碼JavaScript

2024-08-20 14:25:20

2024-07-25 14:36:10

2022-09-19 15:02:24

C語言

2024-02-23 08:57:42

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

2024-07-30 14:09:19

裝飾器Python代碼
點(diǎn)贊
收藏

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