掘金 人工智能 05月03日 01:24
Python 内置函数的全面解析与实战应用(34)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入解析了Python的内置函数,涵盖数据类型转换、数学运算、序列操作、字符串处理以及文件操作等多个方面。通过丰富的代码示例,详细阐述了每个内置函数的功能、用法及应用场景,帮助读者全面掌握Python编程的核心技能,并能在实际开发中灵活运用这些函数解决问题。

🔢 数据类型转换是Python编程的基础,例如`int()`、`float()`、`str()`、`bool()`、`list()`、`tuple()`、`set()`和`dict()`等函数,它们分别用于将对象转换为整数、浮点数、字符串、布尔值、列表、元组、集合和字典。例如,`int('123')`将字符串'123'转换为整数123,`list((1, 2, 3))`将元组(1, 2, 3)转换为列表[1, 2, 3]。

➕ 数学运算函数提供了基本的数学计算功能,`abs()`用于获取绝对值,`round()`用于四舍五入,`pow()`用于计算幂次方,`divmod()`用于同时得到商和余数。例如,`abs(-5)`返回5,`round(3.14159, 2)`返回3.14,`pow(2, 3)`返回8,`divmod(10, 3)`返回(3, 1)。

序列相关函数,如`len()`、`enumerate()`、`zip()`、`sorted()`和`reversed()`,用于处理序列数据。`len()`返回序列长度,`enumerate()`同时获取索引和值,`zip()`将多个序列打包成元组,`sorted()`对序列排序,`reversed()`反转序列。例如,`len([1, 2, 3])`返回3,`list(zip([1, 2], ['a', 'b']))`返回[(1, 'a'), (2, 'b')]。

字符串处理函数包括`format()`、`f-string`、`find()`、`replace()`、`upper()`、`lower()`和`title()`等。`format()`和`f-string`用于格式化字符串,`find()`查找子字符串,`replace()`替换子字符串,`upper()`、`lower()`和`title()`分别进行大小写转换。例如,`'Hello, {}'.format('World')`返回'Hello, World','hello'.upper()返回'HELLO'。

📁 文件操作的核心是`open()`函数,它用于打开文件,并返回一个文件对象。通过文件对象的`read()`、`readline()`和`write()`方法,可以读取、逐行读取和写入文件内容。例如,`open('test.txt', 'r')`以只读模式打开文件,`file.read()`读取文件全部内容,`file.write('hello')`向文件写入内容。

Python 内置函数的全面解析与实战应用

一、引言

Python 作为一门功能强大且易于学习的编程语言,拥有丰富的内置函数。这些内置函数是 Python 语言的核心组成部分,无需额外导入模块即可直接使用,为开发者提供了便捷、高效的编程工具。无论是进行数据处理、数学计算、字符串操作,还是实现文件读写等操作,内置函数都能发挥重要作用。本文将深入探讨 Python 内置函数的基本使用,通过详细的源码示例和注释,帮助读者全面掌握这些内置函数的原理和应用场景。

二、数据类型相关内置函数

2.1 类型转换函数

2.1.1 int() 函数

int() 函数用于将一个对象转换为整数类型。它可以接受多种类型的参数,如字符串、浮点数等。

# 将字符串转换为整数num_str = "123"num_int = int(num_str)  # 将字符串 "123" 转换为整数 123print(num_int)  # 输出: 123# 将浮点数转换为整数,会直接截断小数部分num_float = 3.14num_int_from_float = int(num_float)  # 将浮点数 3.14 转换为整数 3print(num_int_from_float)  # 输出: 3
2.1.2 float() 函数

float() 函数用于将一个对象转换为浮点数类型。

# 将字符串转换为浮点数float_str = "3.14"float_num = float(float_str)  # 将字符串 "3.14" 转换为浮点数 3.14print(float_num)  # 输出: 3.14# 将整数转换为浮点数int_num = 5float_from_int = float(int_num)  # 将整数 5 转换为浮点数 5.0print(float_from_int)  # 输出: 5.0
2.1.3 str() 函数

str() 函数用于将一个对象转换为字符串类型。

# 将整数转换为字符串int_num = 10str_num = str(int_num)  # 将整数 10 转换为字符串 "10"print(str_num)  # 输出: 10# 将列表转换为字符串my_list = [1, 2, 3]str_list = str(my_list)  # 将列表 [1, 2, 3] 转换为字符串 "[1, 2, 3]"print(str_list)  # 输出: [1, 2, 3]
2.1.4 bool() 函数

bool() 函数用于将一个对象转换为布尔类型。在 Python 中,以下值被视为 FalseFalse00.0''[]{}()None 等,其他值通常被视为 True

# 将整数 0 转换为布尔值bool_zero = bool(0)  # 0 被视为 Falseprint(bool_zero)  # 输出: False# 将非零整数转换为布尔值bool_non_zero = bool(5)  # 非零整数被视为 Trueprint(bool_non_zero)  # 输出: True# 将空列表转换为布尔值empty_list = []bool_empty_list = bool(empty_list)  # 空列表被视为 Falseprint(bool_empty_list)  # 输出: False# 将非空列表转换为布尔值non_empty_list = [1]bool_non_empty_list = bool(non_empty_list)  # 非空列表被视为 Trueprint(bool_non_empty_list)  # 输出: True
2.1.5 list() 函数

list() 函数用于将一个可迭代对象转换为列表类型。

# 将元组转换为列表my_tuple = (1, 2, 3)list_from_tuple = list(my_tuple)  # 将元组 (1, 2, 3) 转换为列表 [1, 2, 3]print(list_from_tuple)  # 输出: [1, 2, 3]# 将字符串转换为列表,每个字符作为列表的一个元素my_str = "hello"list_from_str = list(my_str)  # 将字符串 "hello" 转换为列表 ['h', 'e', 'l', 'l', 'o']print(list_from_str)  # 输出: ['h', 'e', 'l', 'l', 'o']
2.1.6 tuple() 函数

tuple() 函数用于将一个可迭代对象转换为元组类型。

# 将列表转换为元组my_list = [1, 2, 3]tuple_from_list = tuple(my_list)  # 将列表 [1, 2, 3] 转换为元组 (1, 2, 3)print(tuple_from_list)  # 输出: (1, 2, 3)# 将字符串转换为元组,每个字符作为元组的一个元素my_str = "world"tuple_from_str = tuple(my_str)  # 将字符串 "world" 转换为元组 ('w', 'o', 'r', 'l', 'd')print(tuple_from_str)  # 输出: ('w', 'o', 'r', 'l', 'd')
2.1.7 set() 函数

set() 函数用于将一个可迭代对象转换为集合类型。集合是无序且元素唯一的。

# 将列表转换为集合,会自动去重my_list = [1, 2, 2, 3]set_from_list = set(my_list)  # 将列表 [1, 2, 2, 3] 转换为集合 {1, 2, 3}print(set_from_list)  # 输出: {1, 2, 3}# 将字符串转换为集合,每个字符作为集合的一个元素my_str = "hello"set_from_str = set(my_str)  # 将字符串 "hello" 转换为集合 {'h', 'e', 'l', 'o'}print(set_from_str)  # 输出: {'h', 'e', 'l', 'o'}
2.1.8 dict() 函数

dict() 函数用于创建一个字典。可以通过多种方式创建字典。

# 通过关键字参数创建字典dict_from_kwargs = dict(name="Alice", age=25)  # 创建字典 {'name': 'Alice', 'age': 25}print(dict_from_kwargs)  # 输出: {'name': 'Alice', 'age': 25}# 通过可迭代对象创建字典,可迭代对象中的每个元素是一个包含两个元素的元组my_list = [('name', 'Bob'), ('age', 30)]dict_from_list = dict(my_list)  # 创建字典 {'name': 'Bob', 'age': 30}print(dict_from_list)  # 输出: {'name': 'Bob', 'age': 30}

2.2 类型检查函数

2.2.1 type() 函数

type() 函数用于返回一个对象的类型。

# 检查整数的类型num = 10num_type = type(num)  # 返回整数类型 <class 'int'>print(num_type)  # 输出: <class 'int'># 检查列表的类型my_list = [1, 2, 3]list_type = type(my_list)  # 返回列表类型 <class 'list'>print(list_type)  # 输出: <class 'list'>
2.2.2 isinstance() 函数

isinstance() 函数用于检查一个对象是否是指定类型的实例。可以接受一个对象和一个类型或类型元组作为参数。

# 检查整数是否是 int 类型的实例num = 10is_int = isinstance(num, int)  # 10 是 int 类型的实例,返回 Trueprint(is_int)  # 输出: True# 检查列表是否是 list 或 tuple 类型的实例my_list = [1, 2, 3]is_list_or_tuple = isinstance(my_list, (list, tuple))  # 列表是 list 类型的实例,返回 Trueprint(is_list_or_tuple)  # 输出: True

三、数学相关内置函数

3.1 基本数学运算函数

3.1.1 abs() 函数

abs() 函数用于返回一个数的绝对值。

# 计算整数的绝对值num = -5abs_num = abs(num)  # 返回 -5 的绝对值 5print(abs_num)  # 输出: 5# 计算浮点数的绝对值float_num = -3.14abs_float_num = abs(float_num)  # 返回 -3.14 的绝对值 3.14print(abs_float_num)  # 输出: 3.14
3.1.2 round() 函数

round() 函数用于对一个数进行四舍五入。可以指定保留的小数位数。

# 对浮点数进行四舍五入,默认保留 0 位小数float_num = 3.14159rounded_num = round(float_num)  # 四舍五入到整数,返回 3print(rounded_num)  # 输出: 3# 指定保留 2 位小数rounded_num_2 = round(float_num, 2)  # 四舍五入保留 2 位小数,返回 3.14print(rounded_num_2)  # 输出: 3.14
3.1.3 pow() 函数

pow() 函数用于计算一个数的幂次方。可以接受两个或三个参数。

# 计算 2 的 3 次方result = pow(2, 3)  # 2 的 3 次方等于 8print(result)  # 输出: 8# 计算 2 的 3 次方并对 5 取模result_mod = pow(2, 3, 5)  # 2 的 3 次方是 8,8 对 5 取模等于 3print(result_mod)  # 输出: 3
3.1.4 divmod() 函数

divmod() 函数用于同时返回两个数的商和余数。

# 计算 10 除以 3 的商和余数quotient, remainder = divmod(10, 3)  # 商是 3,余数是 1print(quotient)  # 输出: 3print(remainder)  # 输出: 1

3.2 数值统计函数

3.2.1 max() 函数

max() 函数用于返回可迭代对象中的最大值,也可以接受多个参数进行比较。

# 找出列表中的最大值my_list = [1, 5, 3, 9, 2]max_num = max(my_list)  # 列表中的最大值是 9print(max_num)  # 输出: 9# 比较多个参数的大小,找出最大值max_value = max(10, 20, 15)  # 最大值是 20print(max_value)  # 输出: 20
3.2.2 min() 函数

min() 函数用于返回可迭代对象中的最小值,也可以接受多个参数进行比较。

# 找出列表中的最小值my_list = [1, 5, 3, 9, 2]min_num = min(my_list)  # 列表中的最小值是 1print(min_num)  # 输出: 1# 比较多个参数的大小,找出最小值min_value = min(10, 20, 15)  # 最小值是 10print(min_value)  # 输出: 10
3.2.3 sum() 函数

sum() 函数用于计算可迭代对象中所有元素的总和。

# 计算列表中所有元素的总和my_list = [1, 2, 3, 4, 5]total = sum(my_list)  # 列表元素总和是 15print(total)  # 输出: 15# 可以指定初始值,初始值会加到总和中total_with_start = sum(my_list, 10)  # 初始值为 10,总和是 25print(total_with_start)  # 输出: 25

四、序列相关内置函数

4.1 序列长度和索引函数

4.1.1 len() 函数

len() 函数用于返回序列(如列表、元组、字符串等)的长度。

# 计算列表的长度my_list = [1, 2, 3, 4, 5]list_length = len(my_list)  # 列表长度是 5print(list_length)  # 输出: 5# 计算字符串的长度my_str = "hello"str_length = len(my_str)  # 字符串长度是 5print(str_length)  # 输出: 5
4.1.2 enumerate() 函数

enumerate() 函数用于将一个可迭代对象组合为一个索引序列,同时返回元素的索引和值。

# 遍历列表,同时获取索引和元素值my_list = ['apple', 'banana', 'cherry']for index, value in enumerate(my_list):    print(f"索引 {index} 的元素是 {value}")# 输出:# 索引 0 的元素是 apple# 索引 1 的元素是 banana# 索引 2 的元素是 cherry# 可以指定起始索引for index, value in enumerate(my_list, start=1):    print(f"从 1 开始的索引 {index} 的元素是 {value}")# 输出:# 从 1 开始的索引 1 的元素是 apple# 从 1 开始的索引 2 的元素是 banana# 从 1 开始的索引 3 的元素是 cherry
4.1.3 zip() 函数

zip() 函数用于将多个可迭代对象的元素打包成一个个元组,然后返回由这些元组组成的可迭代对象。

# 打包两个列表list1 = [1, 2, 3]list2 = ['a', 'b', 'c']zipped = zip(list1, list2)  # 返回一个可迭代对象zipped_list = list(zipped)  # 将可迭代对象转换为列表print(zipped_list)  # 输出: [(1, 'a'), (2, 'b'), (3, 'c')]# 如果可迭代对象长度不一致,以最短的为准list3 = [1, 2]zipped_short = zip(list1, list3)zipped_short_list = list(zipped_short)print(zipped_short_list)  # 输出: [(1, 1), (2, 2)]

4.2 序列排序和反转函数

4.2.1 sorted() 函数

sorted() 函数用于对可迭代对象进行排序,返回一个新的已排序列表,原对象不会被修改。

# 对列表进行排序my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]sorted_list = sorted(my_list)  # 返回排序后的列表print(sorted_list)  # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]# 可以指定排序规则,如降序排序sorted_desc = sorted(my_list, reverse=True)  # 降序排序print(sorted_desc)  # 输出: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
4.2.2 reversed() 函数

reversed() 函数用于返回一个反向迭代器,可用于反转序列。

# 反转列表my_list = [1, 2, 3, 4, 5]reversed_list = list(reversed(my_list))  # 将反向迭代器转换为列表print(reversed_list)  # 输出: [5, 4, 3, 2, 1]# 反转字符串my_str = "hello"reversed_str = ''.join(reversed(my_str))  # 将反向迭代器转换为字符串print(reversed_str)  # 输出: olleh

五、字符串相关内置函数

5.1 字符串格式化函数

5.1.1 format() 函数

format() 函数用于格式化字符串。可以通过位置参数、关键字参数或索引来指定要插入的值。

# 使用位置参数格式化字符串message = "Hello, {}! Your age is {}.".format("Alice", 25)print(message)  # 输出: Hello, Alice! Your age is 25.# 使用关键字参数格式化字符串message_keyword = "Hello, {name}! Your age is {age}.".format(name="Bob", age=30)print(message_keyword)  # 输出: Hello, Bob! Your age is 30.# 使用索引格式化字符串message_index = "Hello, {1}! Your age is {0}.".format(22, "Charlie")print(message_index)  # 输出: Hello, Charlie! Your age is 22.
5.1.2 f-string 格式化

Python 3.6 及以上版本支持 f-string 格式化,它是一种更简洁的字符串格式化方式。

name = "David"age = 28message_f = f"Hello, {name}! Your age is {age}."print(message_f)  # 输出: Hello, David! Your age is 28.

5.2 字符串查找和替换函数

5.2.1 find() 函数

find() 函数用于在字符串中查找子字符串的第一个出现位置,如果找不到则返回 -1。

my_str = "hello world"index = my_str.find("world")  # 查找 "world" 的位置print(index)  # 输出: 6# 如果找不到子字符串not_found_index = my_str.find("python")print(not_found_index)  # 输出: -1
5.2.2 replace() 函数

replace() 函数用于将字符串中的指定子字符串替换为另一个子字符串。

my_str = "hello world"new_str = my_str.replace("world", "python")  # 将 "world" 替换为 "python"print(new_str)  # 输出: hello python

5.3 字符串大小写转换函数

5.3.1 upper() 函数

upper() 函数用于将字符串中的所有小写字母转换为大写字母。

my_str = "hello world"upper_str = my_str.upper()  # 将字符串转换为大写print(upper_str)  # 输出: HELLO WORLD
5.3.2 lower() 函数

lower() 函数用于将字符串中的所有大写字母转换为小写字母。

my_str = "HELLO WORLD"lower_str = my_str.lower()  # 将字符串转换为小写print(lower_str)  # 输出: hello world
5.3.3 title() 函数

title() 函数用于将字符串中每个单词的首字母转换为大写,其余字母转换为小写。

my_str = "hello world"title_str = my_str.title()  # 将字符串转换为标题格式print(title_str)  # 输出: Hello World

六、文件操作相关内置函数

6.1 open() 函数

open() 函数用于打开一个文件,并返回一个文件对象。可以指定文件的打开模式,如只读('r')、写入('w')、追加('a')等。

# 以只读模式打开文件try:    file = open('test.txt', 'r')  # 打开名为 test.txt 的文件    content = file.read()  # 读取文件内容    print(content)  # 打印文件内容    file.close()  # 关闭文件except FileNotFoundError:    print("文件未找到。")# 以写入模式打开文件,如果文件不存在则创建,如果存在则清空内容with open('test_write.txt', 'w') as file:    file.write("Hello, world!")  # 向文件中写入内容# 以追加模式打开文件,在文件末尾添加内容with open('test_write.txt', 'a') as file:    file.write("\nThis is an additional line.")  # 追加一行内容

6.2 文件对象的方法

6.2.1 read() 方法

read() 方法用于读取文件的全部内容或指定数量的字符。

with open('test.txt', 'r') as file:    content = file.read()  # 读取文件全部内容    print(content)    # 读取指定数量的字符    file.seek(0)  # 将文件指针移动到文件开头    partial_content = file.read(5)  # 读取前 5 个字符    print(partial_content)
6.2.2 readline() 方法

readline() 方法用于读取文件的一行内容。

with open('test.txt', 'r') as file:    line = file.readline()  # 读取第一行    while line:        print(line.strip())  # 打印该行内容并去除首尾空格        line = file.readline()  # 读取下一行
6.2.3 write() 方法

write() 方法用于向文件中写入内容。

with open('test_write.txt', 'w') as file:    file.write("This is a new line.\n")  # 写入一行内容
6.2.4 close() 方法

close() 方法用于关闭文件对象。使用 with 语句可以自动关闭文件,避免手动调用 close() 方法。

file = open('test.txt', 'r')# 操作文件file.close()  # 手动关闭文件# 使用 with 语句自动关闭文件with open('test.txt', 'r') as file:    # 操作文件    pass

七、其他内置函数

7.1 print() 函数

print() 函数用于将对象打印到标准输出。可以接受多个参数,参数之间用逗号分隔。

# 打印单个对象print("Hello, world!")  # 输出: Hello, world!# 打印多个对象name = "Alice"age = 25print("Name:", name, "Age:", age)  # 输出: Name: Alice Age: 25# 指定分隔符和结束符print("apple", "banana", "cherry", sep=" - ", end="!\n")  # 输出: apple - banana - cherry!

7.2 input() 函数

input() 函数用于从标准输入读取用户输入的内容,并返回一个字符串。

# 提示用户输入姓名name = input("请输入你的姓名: ")print(f"你输入的姓名是: {name}")

7.3 eval() 函数

eval() 函数用于执行一个字符串表达式,并返回表达式的结果。

expression = "2 + 3 * 4"result = eval(expression)  # 计算表达式 2 + 3 * 4 的结果print(result)  # 输出: 14

7.4 exec() 函数

exec() 函数用于执行一个字符串语句或代码对象。

code = "print('Hello from exec!')"exec(code)  # 执行字符串语句,输出: Hello from exec!

7.5 globals()locals() 函数

globals() 函数返回一个包含全局符号表的字典,locals() 函数返回一个包含当前局部符号表的字典。

# 打印全局符号表print(globals())# 定义一个局部变量def test_function():    local_var = 10    # 打印局部符号表    print(locals())test_function()

八、总结与展望

8.1 总结

Python 的内置函数是 Python 语言的重要组成部分,它们提供了丰富的功能,涵盖了数据类型转换、数学计算、序列操作、字符串处理、文件操作等多个方面。通过使用这些内置函数,开发者可以更加高效地编写代码,减少重复劳动。同时,内置函数的使用也使得代码更加简洁、易读和可维护。例如,在数据处理中,max()min()sum() 函数可以方便地进行数值统计;在文件操作中,open() 函数和文件对象的方法可以实现文件的读写操作。

8.2 展望

随着 Python 语言的不断发展,内置函数也可能会不断完善和扩展。未来可能会增加更多实用的内置函数,以满足不同领域的开发需求。例如,在人工智能和机器学习领域,可能会出现一些用于数据预处理和模型评估的内置函数。对于开发者来说,深入理解和熟练掌握 Python 内置函数的使用是非常重要的,这将有助于提高编程效率和代码质量。同时,开发者也可以根据自己的需求,结合内置函数和自定义函数,开发出更加复杂和强大的 Python 程序。在实际应用中,还可以将内置函数与 Python 的其他特性,如类、模块等结合使用,以实现更加灵活和高效的编程。总之,Python 内置函数将在 Python 编程中继续发挥重要作用,为开发者提供强大的支持。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Python 内置函数 数据类型 字符串 文件操作
相关文章