Python 常用内置函数
文章目录
常用内置函数
内置函数整理
函数名 | 描述 |
---|---|
类型转换操作 | |
int() |
将对象转换为整数类型 |
float() |
将对象转换为浮动小数类型 |
bool() |
将对象转换为布尔值,True 或 False |
str() |
将对象转换为字符串类型 |
complex() |
将对象转换为复数,返回实部和虚部的复数形式 |
bytearray() |
创建一个可变的字节数组 |
bytes() |
创建一个不可变的字节数组 |
list() |
将可迭代对象转换为列表 |
dict() |
创建一个字典,或将可迭代对象转换为字典 |
set() |
创建一个集合,去除重复元素 |
tuple() |
创建一个不可变的元组 |
frozenset() |
创建一个不可变的集合 |
序列和迭代器操作 | |
len() |
返回对象(如字符串、列表、元组、字典等)的长度或元素个数 |
sorted() |
返回排序后的可迭代对象的新列表(不修改原始对象) |
reversed() |
返回一个反向的迭代器,迭代时按相反顺序遍历元素 |
range() |
返回一个可迭代的整数序列,常用于循环控制 |
zip() |
将多个可迭代对象的元素打包成元组,常用于并行迭代 |
enumerate() |
返回一个包含元素及其索引的迭代器,常用于同时获取元素及其索引 |
map() |
将指定函数应用到可迭代对象的每个元素,并返回一个新的迭代器 |
filter() |
使用指定的条件函数过滤可迭代对象,返回符合条件的元素 |
sum() |
返回可迭代对象中所有元素的和 |
max() |
返回可迭代对象中的最大值 |
min() |
返回可迭代对象中的最小值 |
iter() |
返回一个迭代器对象,用于遍历可迭代对象 |
next() |
返回迭代器的下一个元素,如果没有则抛出StopIteration |
slice() |
返回一个切片对象,用于获取序列的子集(指定起始、结束及步长) |
对象和属性操作 | |
id() |
返回对象的唯一标识符,通常是对象在内存中的地址。 |
type() |
返回对象的类型,通常是该对象所属的类。 |
repr() |
返回对象的字符串表示,通常是一个有效的 Python 表达式,能够重新构造该对象。 |
getattr() |
获取对象的指定属性值,如果属性不存在,则可以指定一个默认值。 |
setattr() |
设置对象的指定属性值,如果该属性不存在,则会创建该属性。 |
delattr() |
删除对象的指定属性,若该属性不存在,则会抛出异常。 |
hasattr() |
检查对象是否有指定的属性,返回布尔值 True 或 False 。 |
object() |
返回一个新的空对象,通常用于类继承体系中的基类实例化。 |
hash() |
返回对象的哈希值,适用于可哈希的对象(如不可变类型)。 |
vars() |
返回对象的 __dict__ 属性,包含对象的可变属性(即实例变量)。 |
dir() |
返回对象的属性和方法列表(包括实例方法和类方法)。 |
super() |
返回父类的对象,通常在子类中用于调用父类的方法。 |
locals() |
返回当前局部符号表(一个字典),包含局部变量的名称和值。 |
globals() |
返回当前全局符号表(一个字典),包含全局变量的名称和值。 |
逻辑判断操作 | |
all() |
判断可迭代对象中的所有元素是否都为真值(即是否都为非零、非空或非 False ) |
any() |
判断可迭代对象中是否至少有一个元素为真值 |
isinstance() |
判断对象是否是指定类或其子类的实例 |
issubclass() |
判断一个类是否是另一个类的子类(包括间接子类关系) |
callable() |
判断对象是否可调用(即是否是函数、方法或实现了 __call__ 的对象) |
数值运算操作 | |
abs() |
返回数字的绝对值。 |
divmod() |
返回两个数相除的商和余数,结果以元组形式返回。 |
pow() |
返回 x 的 y 次方;如果提供第三个参数 z,返回 x^y % z。 |
round() |
四舍五入,返回四舍五入后的数值。 |
hex() |
将整数转换为十六进制字符串,前缀为 0x 。 |
bin() |
将整数转换为二进制字符串,前缀为 0b 。 |
oct() |
将整数转换为八进制字符串,前缀为 0o 。 |
字符串与字符操作 | |
chr() | 将整数转换为对应的字符 |
ord() | 将字符转换为对应的整数 |
ascii() | 返回对象的 ASCII 字符串表示 |
format() | 格式化字符串,支持复杂的格式化操作 |
函数、类与方法相关操作 | |
staticmethod() | 定义静态方法,类中不需要访问实例属性或方法 |
classmethod() | 定义类方法,类方法第一个参数是类本身 cls |
property() | 创建属性,使方法可以像属性一样访问 |
输入、输出、文件操作 | |
input() | 接收用户输入的字符串 |
print() | 打印对象到标准输出 |
open() | 打开文件并返回文件对象 |
eval() | 执行一个字符串表达式,并返回表达式的结果 |
exec() | 执行一个字符串形式的代码块 |
调试与错误处理 | |
compile() | 编译字符串形式的代码为字节码对象,可以在以后通过 exec() 或 eval() 执行。 |
breakpoint() | 在代码中插入断点,暂停程序执行并进入交互式调试模式(通常需要调试器支持)。 |
help() | 返回一个对象的帮助信息,或者在交互模式下显示指定模块、类、函数的文档。 |
– int()
将一个对象转换为整数类型。
示例:
# 将字符串转换为整数
x = int("123")
print(x) # 输出: 123
# 将浮动小数转换为整数(会截断小数部分)
y = int(12.56)
print(y) # 输出: 12
# 传递一个二进制字符串
z = int("1010", 2) # 2表示将字符串视为二进制
print(z) # 输出: 10
– float()
将一个对象转换为浮动小数类型。
示例:
# 将字符串转换为浮动小数
x = float("12.34")
print(x) # 输出: 12.34
# 将整数转换为浮动小数
y = float(42)
print(y) # 输出: 42.0
# 处理包含科学计数法的字符串
z = float("1e3")
print(z) # 输出: 1000.0
– bool()
将对象转换为布尔值,False 表示假值,True 表示真值。空字符串、0、None、空列表等都被视为 False,其他则为 True。
示例:
# 空字符串转换为布尔值
x = bool("")
print(x) # 输出: False
# 非空字符串转换为布尔值
y = bool("hello")
print(y) # 输出: True
# 数字0和非0值的转换
z = bool(0)
print(z) # 输出: False
w = bool(5)
print(w) # 输出: True
– str()
将对象转换为字符串类型。
示例:
# 将整数转换为字符串
x = str(123)
print(x) # 输出: '123'
# 将浮动小数转换为字符串
y = str(12.34)
print(y) # 输出: '12.34'
# 将列表转换为字符串
z = str([1, 2, 3])
print(z) # 输出: '[1, 2, 3]'
– complex()
将一个对象转换为复数类型,或者创建一个指定实部和虚部的复数。
示例:
# 创建复数,传入实部和虚部
x = complex(2, 3)
print(x) # 输出: (2+3j)
# 从字符串创建复数
y = complex("4+5j")
print(y) # 输出: (4+5j)
# 仅传入一个数字作为实部,虚部默认为0
z = complex(7)
print(z) # 输出: (7+0j)
– bytearray()
创建一个可变的字节数组。
示例:
# 创建一个空的字节数组
x = bytearray()
print(x) # 输出: bytearray(b'')
# 创建一个字节数组,传入一个字符串
y = bytearray("hello", "utf-8")
print(y) # 输出: bytearray(b'hello')
# 修改字节数组的内容
y[0] = 72 # 修改第一个字节(对应ASCII值为72的字母H)
print(y) # 输出: bytearray(b'Hello')
– bytes()
创建一个不可变的字节数组。
示例:
# 创建一个空的字节对象
x = bytes()
print(x) # 输出: b''
# 创建一个字节对象,传入字符串并指定编码
y = bytes("hello", "utf-8")
print(y) # 输出: b'hello'
# 通过传入整数生成指定长度的字节对象
z = bytes([65, 66, 67]) # 65, 66, 67对应ASCII的 'A', 'B', 'C'
print(z) # 输出: b'ABC'
– list()
将可迭代对象(如字符串、元组等)转换为列表。
示例:
# 将字符串转换为列表
x = list("hello")
print(x) # 输出: ['h', 'e', 'l', 'l', 'o']
# 将元组转换为列表
y = list((1, 2, 3))
print(y) # 输出: [1, 2, 3]
# 将集合转换为列表
z = list({1, 2, 3})
print(z) # 输出: [1, 2, 3] (顺序不确定)
– dict()
创建一个空字典,或者将可迭代对象转换为字典。
示例:
# 创建一个空字典
x = dict()
print(x) # 输出: {}
# 从元组列表创建字典
y = dict([('a', 1), ('b', 2)])
print(y) # 输出: {'a': 1, 'b': 2}
# 使用关键字参数创建字典
z = dict(a=1, b=2)
print(z) # 输出: {'a': 1, 'b': 2}
– set()
创建一个集合,集合中不允许有重复元素。
示例:
# 从列表创建集合(会去重)
x = set([1, 2, 2, 3, 3])
print(x) # 输出: {1, 2, 3}
# 从字符串创建集合(去掉重复的字符)
y = set("hello")
print(y) # 输出: {'h', 'e', 'l', 'o'}
# 创建空集合
z = set()
print(z) # 输出: set()
– tuple()
创建一个不可变的元组。
示例:
# 从列表创建元组
x = tuple([1, 2, 3])
print(x) # 输出: (1, 2, 3)
# 从字符串创建元组
y = tuple("hello")
print(y) # 输出: ('h', 'e', 'l', 'l', 'o')
# 创建空元组
z = tuple()
print(z) # 输出: ()
– frozenset()
创建一个不可变的集合。
示例:
# 创建不可变集合
x = frozenset([1, 2, 3, 3, 2])
print(x) # 输出: frozenset({1, 2, 3})
# frozenset本身是不可变的,无法修改
try:
x.add(4)
except AttributeError as e:
print(e) # 输出: 'frozenset' object has no attribute 'add'
– len()
返回对象的长度或元素个数。
示例:
# 对于字符串
s = "Hello, World!"
print(len(s)) # 输出: 13
# 对于列表
lst = [1, 2, 3, 4, 5]
print(len(lst)) # 输出: 5
– sorted()
返回排序后的可迭代对象的新列表,原对象不变。
示例:
lst = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_lst = sorted(lst)
print(sorted_lst) # 输出: [1, 1, 2, 3, 4, 5, 6, 9]
print(lst) # 输出: [3, 1, 4, 1, 5, 9, 2, 6],原列表未改变
– reversed()
返回一个反向的迭代器,遍历时按相反顺序返回元素。
示例:
lst = [1, 2, 3, 4]
reversed_lst = reversed(lst)
print(list(reversed_lst)) # 输出: [4, 3, 2, 1]
– range()
返回一个可迭代的整数序列,常用于 for 循环。
示例:
for i in range(5):
print(i)
# 输出:
# 0
# 1
# 2
# 3
# 4
– zip()
将多个可迭代对象的元素打包成元组,返回一个新的迭代器。
示例:
names = ['Alice', 'Bob', 'Charlie']
ages = [24, 30, 22]
zipped = zip(names, ages)
print(list(zipped)) # 输出: [('Alice', 24), ('Bob', 30), ('Charlie', 22)]
– enumerate()
返回一个带有索引的迭代器,常用于同时获取元素及其索引。
示例:
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(f"Index: {index}, Fruit: {fruit}")
# 输出:
# Index: 0, Fruit: apple
# Index: 1, Fruit: banana
# Index: 2, Fruit: cherry
– map()
将指定函数应用到可迭代对象的每个元素,返回新的迭代器。
示例:
def square(x):
return x * x
numbers = [1, 2, 3, 4]
squared = map(square, numbers)
print(list(squared)) # 输出: [1, 4, 9, 16]
– filter()
使用指定的函数过滤可迭代对象,返回符合条件的元素。
示例:
def is_even(x):
return x % 2 == 0
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(is_even, numbers)
print(list(even_numbers)) # 输出: [2, 4, 6]
– sum()
返回可迭代对象中所有元素的和。
示例:
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total) # 输出: 15
– max()
返回可迭代对象中的最大值。
示例:
numbers = [1, 2, 3, 4, 5]
maximum = max(numbers)
print(maximum) # 输出: 5
– min()
返回可迭代对象中的最小值。
示例:
numbers = [1, 2, 3, 4, 5]
minimum = min(numbers)
print(minimum) # 输出: 1
– iter()
返回一个迭代器对象,支持遍历可迭代对象。
示例:
lst = [1, 2, 3, 4]
iterator = iter(lst)
print(next(iterator)) # 输出: 1
print(next(iterator)) # 输出: 2
– next()
返回迭代器的下一个元素,如果没有元素,则抛出 StopIteration 异常。
示例:
lst = [10, 20, 30]
iterator = iter(lst)
print(next(iterator)) # 输出: 10
print(next(iterator)) # 输出: 20
print(next(iterator)) # 输出: 30
print(next(iterator)) # 触发 StopIteration 异常
– slice()
返回一个切片对象,用于指定序列的子集(指定起始、结束及步长)。
示例:
lst = [10, 20, 30, 40, 50]
sliced = slice(1, 4) # 获取索引从 1 到 3 的元素
print(lst[sliced]) # 输出: [20, 30, 40]
– id()
返回对象的唯一标识符,通常是对象在内存中的地址。
示例:
a = 42
b = a
print(id(a)) # 返回 a 对象的唯一标识符
print(id(b)) # 返回 b 对象的唯一标识符,与 a 相同
– type()
返回对象的类型。
示例:
a = 42
print(type(a)) # <class 'int'>
– repr()
返回对象的字符串表示,通常是一个合法的 Python 表达式。
示例:
a = [1, 2, 3]
print(repr(a)) # 输出 '[1, 2, 3]'
– getattr()
获取对象的指定属性值。如果属性不存在,可以指定默认值。
示例:
class Person:
def __init__(self, name):
self.name = name
p = Person("Alice")
print(getattr(p, 'name')) # Alice
print(getattr(p, 'age', 30)) # 30,默认值
– setattr()
设置对象的指定属性值。如果属性不存在,会自动创建。
示例:
class Person:
def __init__(self, name):
self.name = name
p = Person("Alice")
setattr(p, 'age', 25)
print(p.age) # 25
– delattr()
删除对象的指定属性,如果属性不存在,抛出异常。
示例:
class Person:
def __init__(self, name):
self.name = name
p = Person("Alice")
delattr(p, 'name')
# print(p.name) # 这里会抛出 AttributeError,因为 'name' 属性已被删除
– hasattr()
检查对象是否有指定的属性,返回布尔值。
示例:
class Person:
def __init__(self, name):
self.name = name
p = Person("Alice")
print(hasattr(p, 'name')) # True
print(hasattr(p, 'age')) # False
– object()
返回一个新的空对象,通常用于基类实例化。
示例:
o = object()
print(o) # <object object at 0x00000000>
– hash()
返回对象的哈希值。哈希值通常用于集合或字典的键。
示例:
a = (1, 2, 3)
print(hash(a)) # 哈希值
– vars()
返回对象的 dict 属性,包含对象的可变属性(即实例变量)。
示例:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 25)
print(vars(p)) # {'name': 'Alice', 'age': 25}
– dir()
返回对象的属性和方法列表。
示例:
a = [1, 2, 3]
print(dir(a)) # 列出列表对象的所有方法和属性
– super()
返回父类的对象,通常在子类中用于调用父类的方法。
示例:
class Animal:
def speak(self):
print("Animal speaks")
class Dog(Animal):
def speak(self):
super().speak() # 调用父类的方法
print("Dog barks")
d = Dog()
d.speak()
– locals()
返回当前局部符号表(一个字典)。
示例:
def func():
x = 10
print(locals()) # 返回局部符号表 {'x': 10}
func()
– globals()
返回当前全局符号表(一个字典)。
示例:
x = 10
def func():
print(globals()) # 返回全局符号表,包含变量 x
func()
– all()
判断可迭代对象中的所有元素是否都为真值(即是否都为非零、非空或非 False)。如果可迭代对象为空,all() 返回 True。
示例:
# 示例 1: 所有元素为真
numbers = [1, 2, 3]
print(all(numbers)) # 输出: True,因为所有元素都为非零
# 示例 2: 包含假值
values = [0, 1, 2]
print(all(values)) # 输出: False,因为 0 是假值
# 示例 3: 空列表
empty = []
print(all(empty)) # 输出: True,因为没有元素违反条件
– any()
判断可迭代对象中是否至少有一个元素为真值。如果可迭代对象为空,any() 返回 False。
示例:
# 示例 1: 至少有一个元素为真
numbers = [0, 1, 2]
print(any(numbers)) # 输出: True,因为 1 和 2 为真值
# 示例 2: 全部为假
values = [0, False, None]
print(any(values)) # 输出: False,因为没有任何元素为真值
# 示例 3: 空列表
empty = []
print(any(empty)) # 输出: False,因为没有元素
– isinstance()
判断对象是否是指定类或其子类的实例。
示例:
# 示例 1: 对象是指定类的实例
class Animal:
pass
class Dog(Animal):
pass
d = Dog()
print(isinstance(d, Dog)) # 输出: True,因为 d 是 Dog 的实例
print(isinstance(d, Animal)) # 输出: True,因为 Dog 是 Animal 的子类
# 示例 2: 对象不是指定类的实例
a = Animal()
print(isinstance(a, Dog)) # 输出: False,因为 a 不是 Dog 的实例
– issubclass()
判断一个类是否是另一个类的子类(包括间接子类关系)。
示例:
# 示例 1: 类是子类
class Animal:
pass
class Dog(Animal):
pass
print(issubclass(Dog, Animal)) # 输出: True,因为 Dog 是 Animal 的子类
print(issubclass(Dog, object)) # 输出: True,因为所有类都是 object 的子类
# 示例 2: 类不是子类
class Cat:
pass
print(issubclass(Cat, Dog)) # 输出: False,因为 Cat 不是 Dog 的子类
– callable()
判断对象是否可调用(即是否是函数、方法或实现了 _call_ 方法的对象)。
示例:
# 示例 1: 可调用对象
def greet():
return "Hello"
class Person:
def __call__(self):
return "I am callable"
print(callable(greet)) # 输出: True,因为 greet 是一个函数
print(callable(Person)) # 输出: True,因为 Person 是一个类,可以实例化
print(callable(Person())) # 输出: True,因为 Person 的实例实现了 __call__()
# 示例 2: 不可调用对象
x = 42
print(callable(x)) # 输出: False,因为 x 不是函数或类实例化对象
– abs()
返回数字的绝对值
示例:
# 示例 1: 正数的绝对值
num1 = 5
print(abs(num1)) # 输出: 5,因为绝对值就是数字本身
# 示例 2: 负数的绝对值
num2 = -7
print(abs(num2)) # 输出: 7,因为负数的绝对值是正数
# 示例 3: 浮动数的绝对值
num3 = -3.14
print(abs(num3)) # 输出: 3.14,浮动数也可以取绝对值
– divmod()
返回商和余数的元组 (商, 余数)。
示例:
# 示例 1: 正整数的商和余数
quotient, remainder = divmod(17, 5)
print(quotient) # 输出: 3,17 除以 5 商是 3
print(remainder) # 输出: 2,17 除以 5 余数是 2
# 示例 2: 负数的商和余数
quotient, remainder = divmod(-17, 5)
print(quotient) # 输出: -4,因为商会向负方向取整
print(remainder) # 输出: 3,余数调整为非负数
– pow()
返回 x 的 y 次方,或计算 x^y % z。
示例:
# 示例 1: x 的 y 次方
result = pow(2, 3)
print(result) # 输出: 8,因为 2^3 = 8
# 示例 2: x 的 y 次方并取模 z
result = pow(2, 3, 5)
print(result) # 输出: 3,因为 2^3 = 8,8 % 5 = 3
– round()
返回四舍五入后的数值。
示例:
# 示例 1: 四舍五入到整数
num1 = 4.6
print(round(num1)) # 输出: 5,因为 4.6 四舍五入到 5
# 示例 2: 四舍五入到指定的小数位数
num2 = 3.14159
print(round(num2, 2)) # 输出: 3.14,保留两位小数
# 示例 3: 四舍五入到整数
num3 = 2.5
print(round(num3)) # 输出: 2,Python 默认四舍五入时是向最近的偶数舍入
– hex()
将整数转换为十六进制字符串,前缀为 0x。
示例:
# 示例 1: 正整数转换为十六进制
num1 = 255
print(hex(num1)) # 输出: '0xff'
# 示例 2: 负整数转换为十六进制
num2 = -255
print(hex(num2)) # 输出: '-0xff'
– bin()
将整数转换为二进制字符串,前缀为 0b。
示例:
# 示例 1: 正整数转换为二进制
num1 = 5
print(bin(num1)) # 输出: '0b101'
# 示例 2: 负整数转换为二进制
num2 = -5
print(bin(num2)) # 输出: '-0b101'
– oct()
将整数转换为八进制字符串,前缀为 0o。
示例:
# 示例 1: 正整数转换为八进制
num1 = 8
print(oct(num1)) # 输出: '0o10'
# 示例 2: 负整数转换为八进制
num2 = -8
print(oct(num2)) # 输出: '-0o10'
– chr()
接受一个整数参数,返回与该整数对应的 Unicode 字符。整数值必须在 0 到 1114111 之间。
示例:
print(chr(65)) # 输出: 'A'(65 对应字符 'A')
print(chr(97)) # 输出: 'a'(97 对应字符 'a')
– ord()
接受一个字符,返回其对应的 Unicode 码点(整数值)。字符应该是一个长度为 1 的字符串。
示例:
print(ord('A')) # 输出: 65(字符 'A' 对应的 Unicode 码点是 65)
print(ord('a')) # 输出: 97(字符 'a' 对应的 Unicode 码点是 97)
– ascii()
返回对象的 ASCII 字符串表示。如果对象包含非 ASCII 字符(即码点大于 127),这些字符会被转义为 \u 表示。例如,字符 ‘é’ 会被表示为 \u00e9。
示例:
print(ascii('abc')) # 输出: 'abc'
print(ascii('éclair')) # 输出: '\xe9clair'
– format()
用于格式化字符串,可以通过占位符和格式规范来插入变量。支持多种复杂的格式化操作,如指定浮点数精度、日期格式、对齐方式等。
示例:
name = "Alice"
age = 30
print("Name: {}, Age: {}".format(name, age)) # 输出: Name: Alice, Age: 30
# 使用位置参数
print("{0} is {1} years old.".format(name, age)) # 输出: Alice is 30 years old.
# 使用关键字参数
print("{name} is {age} years old.".format(name="Bob", age=25)) # 输出: Bob is 25 years old.
# 格式化数字
pi = 3.14159
print("Pi to two decimal places: {:.2f}".format(pi)) # 输出: Pi to two decimal places: 3.14
– staticmethod()
用于定义静态方法,它不需要访问类的实例属性或方法,也不需要访问类本身。
静态方法通常用于执行一些独立于类和实例的操作,属于类的一部分但不与实例或类的状态相关。
示例:
class MyClass:
@staticmethod
def greet(name):
print(f"Hello, {name}!")
MyClass.greet("Alice") # 输出: Hello, Alice!
– classmethod()
用于定义类方法。类方法的第一个参数是类本身,通常命名为 cls。
它可以访问类的属性和方法,但不能访问实例的属性。类方法常用于操作类的状态或创建类的实例(例如,使用 cls 作为工厂方法)。
示例:
class MyClass:
class_name = "MyClass"
@classmethod
def print_class_name(cls):
print(f"Class name is {cls.class_name}")
MyClass.print_class_name() # 输出: Class name is MyClass
– property()
用于将方法转换为属性,使得该方法可以像访问普通属性一样被访问。
通过 @property 装饰器,方法可以作为属性被获取、设置或删除,允许对属性的访问进行更精细的控制。可以定义 getter、setter 和 deleter 方法。
示例:
class MyClass:
def __init__(self, value):
self._value = value
@property
def value(self):
return self._value
@value.setter
def value(self, new_value):
if new_value < 0:
raise ValueError("Value cannot be negative.")
self._value = new_value
obj = MyClass(10)
print(obj.value) # 输出: 10
obj.value = 20 # 设置新值
print(obj.value) # 输出: 20
# obj.value = -5 # 这将引发 ValueError: Value cannot be negative.
– input()
从用户输入中读取一行数据,返回输入内容作为字符串。
通常用于获取用户的输入。
示例:
name = input("Enter your name: ")
print(f"Hello, {name}!")
– print()
将一个或多个对象打印到标准输出(通常是终端或控制台)。
可以打印字符串、数字、列表等,也支持自动添加换行符和定制分隔符。
示例:
print("Hello, world!")
print("The answer is", 42)
– open()
用于打开文件,返回一个文件对象。可以指定文件的打开模式(如读取模式 ‘r’、写入模式 ‘w’ 等)。
文件对象提供了对文件内容的读写操作。
示例:
with open('example.txt', 'r') as file:
content = file.read()
print(content)
– eval()
接收一个字符串形式的Python表达式并执行该表达式,返回表达式的结果。
适用于计算简单的表达式,例如数学计算。
示例:
result = eval("3 + 5")
print(result) # 输出: 8
– exec()
执行字符串形式的Python代码块。
与 eval() 类似,但 exec() 可以执行多行代码和更复杂的结构(如函数定义、类定义等),不返回结果。
示例:
code = """
def greet(name):
return f"Hello, {name}"
print(greet("Alice"))
"""
exec(code) # 输出: Hello, Alice
– compile()
将字符串形式的代码编译为字节码对象,可以在稍后的时间通过 exec() 或 eval() 执行。
compile() 允许动态地创建和执行代码,适用于需要在运行时动态构建和执行代码的场景。
示例:
code = "a = 5 + 3"
compiled_code = compile(code, "<string>", "exec")
exec(compiled_code) # 执行编译后的代码,a = 5 + 3
print(a) # 输出: 8
– breakpoint()
用于在代码中插入一个断点,暂停程序的执行并启动调试器,进入交互式调试状态。
通常结合调试工具(如 pdb)使用,用于在调试期间检查变量值、执行跟踪等操作。默认情况下,breakpoint() 会调用 Python 的内置调试器 pdb。
示例:
def calculate_sum(a, b):
breakpoint() # 在这里暂停执行,进入调试模式
return a + b
calculate_sum(2, 3)
– help()
返回一个对象的帮助信息,或者在交互模式下显示模块、类、函数等的文档说明。
可以用于探索模块或类的使用方法,通常在交互式环境中使用。
示例:
help(str) # 获取关于字符串类型的帮助信息
help(print) # 获取关于 print 函数的帮助信息
作者:骑个小蜗牛