Python 零基础教程

Python 常用内置函数

内置函数(Built-in functions)是 Python 中预先定义好的函数,你可以直接使用它们,而无需编写任何额外的 import 导入语句。

它们提供了一种便捷的方式来执行常见任务,极大地增强了代码的可读性并减少了开发时间。

本章将带你探索一些最常用的内置函数、它们的功能以及如何在实际中应用它们。

1. 基础函数

这些函数是最基础的,几乎在每一个 Python 程序中都会用到。

1.1 print():打印输出

print() 函数用于将输出内容显示到控制台。

# print() 函数示例
name = "Alice"
print("Hello,", name + "!") # 拼接字符串以打印问候语
age = 30
print("你今年", age, "岁。") # 混合打印字符串和整数
print(f"明年,你将 {age + 1} 岁。") # 使用 f-strings 进行格式化输出

print() 函数可以接收多个参数,默认情况下它们之间会用空格分隔。F-strings(格式化字符串字面量,带有前缀 f)提供了一种非常简洁的方式,将表达式直接嵌入到字符串中进行格式化。

1.2 len():获取长度

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

# len() 函数示例
my_string = "Python"
print(len(my_string))  # 输出: 6

my_list = [1, 2, 3, 4, 5]
print(len(my_list))    # 输出: 5

my_tuple = (10, 20, 30)
print(len(my_tuple))   # 输出: 3

len() 函数非常通用,适用于各种数据结构,是确定数据大小的快捷方式。

1.3 type():查看类型

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

# type() 函数示例
x = 10
print(type(x))  # 输出: <class 'int'>

y = 3.14
print(type(y))  # 输出: <class 'float'>

z = "Hello"
print(type(z))  # 输出: <class 'str'>

a = [1, 2, 3]
print(type(a))  # 输出: <class 'list'>

type() 函数在调试代码和了解当前正在处理的数据类型时非常有帮助。

1.4 input():获取用户输入

input() 函数用于从用户那里读取一行输入(标准输入)。

# input() 函数示例
name = input("请输入你的名字: ")
print("你好,", name + "!")

age = input("请输入你的年龄: ")
age = int(age)  # 将输入的字符串转换为整数
print("你今年", age, "岁。")
提示input() 函数始终返回一个字符串 (string)。如果用户输入的是数字,你需要使用 int()float() 等函数将其转换为相应的数值类型才能进行计算。

2. 类型转换函数

这些函数用于将值从一种数据类型转换为另一种数据类型。

2.1 int():转换为整数

# int() 函数示例
x = "10"
print(type(x)) # 输出: <class 'str'>

y = int(x)
print(type(y)) # 输出: <class 'int'>

print(int(3.14))  # 输出: 3 (截断小数部分)
print(int("1010", 2)) # 输出: 10 (将二进制字符串转换为十进制整数)

int() 会直接截断浮点数的小数部分(不会四舍五入)。它还可以将表示不同进制(如二进制、十六进制)数字的字符串转换为十进制整数。

2.2 float():转换为浮点数

# float() 函数示例
x = "3.14"
print(type(x)) # 输出: <class 'str'>

y = float(x)
print(type(y)) # 输出: <class 'float'>

print(float(10))   # 输出: 10.0

当你需要对小数进行精确的数学计算时,float() 函数是必不可少的。

2.3 str():转换为字符串

# str() 函数示例
x = 10
print(type(x)) # 输出: <class 'int'>

y = str(x)
print(type(y)) # 输出: <class 'str'>

print(str(3.14))  # 输出: "3.14"
print(str(True))  # 输出: "True"

当你需要将数字或其他数据类型与文本拼接,或者希望将非文本数据表示为文本时,str() 是关键。

2.4 bool():转换为布尔值

# bool() 函数示例
print(bool(0))      # 输出: False
print(bool(1))      # 输出: True
print(bool(""))     # 输出: False (空字符串)
print(bool("Hello"))  # 输出: True
print(bool([]))     # 输出: False (空列表)
print(bool([1, 2]))  # 输出: True

bool() 函数在条件语句和逻辑操作中经常用到。它的转换规则是:0、空字符串 "" 以及空的集合(如 [], {})计算结果为 False,而其他有内容的值都计算为 True

3. 数学运算函数

这些函数用于执行常见的数学运算。

3.1 abs():绝对值

print(abs(-10))   # 输出: 10
print(abs(5))     # 输出: 5
print(abs(-3.14)) # 输出: 3.14

当你需要确保一个值为正数,而忽略它原来的正负号时,abs() 非常有用。

3.2 pow():幂运算

print(pow(2, 3))   # 输出: 8 (2 的 3 次方)
print(pow(5, 2))   # 输出: 25 (5 的 2 次方)
print(pow(10, -1)) # 输出: 0.1 (10 的 -1 次方)

pow(x, y) 等同于 x ** y。此外,它还可以接受第三个参数来执行模幂运算(这在密码学中非常有用)。

3.3 round():四舍五入

print(round(3.14159, 2))  # 输出: 3.14 (保留 2 位小数)
print(round(3.14159))     # 输出: 3 (四舍五入到最接近的整数)
print(round(3.5))         # 输出: 4 (遇到 .5 时,向偶数舍入,即银行家舍入法)

round() 允许你将数字舍入到指定的小数位数。

3.4 max() 与 min():最大值与最小值

# max() 寻找最大值
print(max(1, 2, 3, 4, 5))  # 输出: 5
print(max([1, 2, 3, 4, 5])) # 输出: 5
print(max("a", "b", "c"))    # 输出: c (按字母顺序比较)

# min() 寻找最小值
print(min(1, 2, 3, 4, 5))  # 输出: 1
print(min([1, 2, 3, 4, 5])) # 输出: 1
print(min("a", "b", "c"))    # 输出: a

这两个函数是寻找集合中或一组值中的极值(最大/最小值)的利器。

4. 序列操作函数

这些函数主要对列表、元组和字符串等序列进行操作。

4.1 sum():求和

print(sum([1, 2, 3, 4, 5]))  # 输出: 15
print(sum((10, 20, 30)))    # 输出: 60
print(sum([1, 2, 3], 10))    # 输出: 16 (列表的和,再加上起始值 10)

sum() 返回可迭代对象中所有元素的总和。它可以接受一个可选的第二个参数,作为求和的初始累加值。

4.2 sorted():排序并返回新列表

numbers = [5, 2, 8, 1, 9]
print(sorted(numbers))               # 输出: [1, 2, 5, 8, 9]
print(numbers)                       # 输出: [5, 2, 8, 1, 9] (原列表保持不变)

letters = "Python"
print(sorted(letters))               # 输出: ['P', 'h', 'n', 'o', 't', 'y']
print(sorted(numbers, reverse=True)) # 输出: [9, 8, 5, 2, 1] (降序排列)

与列表自带的 .sort() 方法不同,sorted() 会返回一个新的已排序的列表,而不会改变原始序列。它还可以利用 reverse=True 进行降序排列。

4.3 reversed():反转序列

numbers = [1, 2, 3, 4, 5]
reversed_numbers = reversed(numbers)
print(list(reversed_numbers))  # 输出: [5, 4, 3, 2, 1]

letters = "Python"
reversed_letters = reversed(letters)
print("".join(reversed_letters)) # 输出: nohtyP

reversed() 会返回一个逆序迭代器(iterator)。为了查看结果,你通常需要使用 list() 将其转换为列表,或者用 join() 拼接回字符串。

4.4 enumerate():枚举序列

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(index, fruit)
    
# 输出:
# 0 apple
# 1 banana
# 2 cherry

enumerate() 在遍历序列时非常有用,它会同时返回元素的索引 (index)值 (value),免去了你手动维护一个计数器的麻烦。

5. 实用工具函数

这些函数为不同的杂项任务提供了有用的支持。

5.1 help():获取帮助文档

# help(print)  # 在控制台显示关于 print() 函数的官方帮助文档
# help(len)    # 显示关于 len() 函数的文档

当你对某个函数或模块的用法感到困惑时,help() 是无价之宝。

5.2 isinstance():类型检查

x = 10
print(isinstance(x, int))    # 输出: True
print(isinstance(x, float))  # 输出: False

y = [1, 2, 3]
print(isinstance(y, list))   # 输出: True
print(isinstance(y, tuple))  # 输出: False

isinstance() 用于检查一个对象是否属于某个特定的类或类型。在动态类型的 Python 中,这非常适合用于数据验证。

6. 实际案例与演示

下面结合实际应用场景,展示如何综合使用这些内置函数。

6.1 案例 1:计算平均值

结合使用 sum()len()

numbers = [10, 20, 30, 40, 50]
total = sum(numbers)
count = len(numbers)
average = total / count
print("平均值是:", average) # 输出: 平均值是: 30.0

6.2 案例 2:用户输入与数学计算

结合使用 input(), float()pow()

radius_str = input("请输入圆的半径: ")
radius = float(radius_str) # 将字符串转换为浮点数
area = 3.14159 * pow(radius, 2) # 计算圆的面积
print("圆的面积是:", area)

6.3 案例 3:寻找数据集的极值

结合使用 max()min()

numbers = [45, 12, 78, 3, 56]
largest = max(numbers)
smallest = min(numbers)
print("最大数是:", largest)   # 输出: 最大数是: 78
print("最小数是:", smallest)  # 输出: 最小数是: 3