Python推导式是一种简洁的语法结构,用于快速生成列表、字典、集合或生成器。推导式通常比传统的循环更高效且更易读。常见的推导式包括列表推导式、字典推导式、集合推导式和生成器推导式。
语法:[expression for item in iterable if condition]
示例:
# 生成平方数列表
squares = [x**2 for x in range(10)]
print(squares) # 输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 带条件的列表推导式
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares) # 输出:[0, 4, 16, 36, 64]
语法:{key_expr: value_expr for item in iterable if condition}
示例:
# 生成数字到其平方的字典
square_dict = {x: x**2 for x in range(5)}
print(square_dict) # 输出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
# 带条件的字典推导式
even_square_dict = {x: x**2 for x in range(5) if x % 2 == 0}
print(even_square_dict) # 输出:{0: 0, 2: 4, 4: 16}
语法:{expression for item in iterable if condition}
示例:
# 生成唯一平方数的集合
unique_squares = {x**2 for x in [1, 2, 2, 3, 4, 4, 5]}
print(unique_squares) # 输出:{1, 4, 9, 16, 25}
# 带条件的集合推导式
even_unique_squares = {x**2 for x in range(10) if x % 2 == 0}
print(even_unique_squares) # 输出:{0, 64, 4, 36, 16}
语法:(expression for item in iterable if condition)
示例:
# 生成平方数的生成器
square_gen = (x**2 for x in range(5))
for num in square_gen:
print(num) # 输出:0, 1, 4, 9, 16
# 带条件的生成器推导式
even_square_gen = (x**2 for x in range(10) if x % 2 == 0)
for num in even_square_gen:
print(num) # 输出:0, 4, 16, 36, 64
Python中的条件语句用于根据条件执行不同的代码块,主要使用if
、elif
和else
关键字。
if condition1:
# 条件1成立时执行
elif condition2:
# 条件2成立时执行
else:
# 其他情况执行
示例
x = 10
if x > 0:
print("正数")
elif x < 0:
print("负数")
else:
print("零")
通过逻辑运算符(and
、or
、not
)组合多个条件。
示例
age = 25
if age >= 18 and age <= 60:
print("成年人")
条件语句可以嵌套使用,但需注意代码可读性。
示例
num = 15
if num % 2 == 0:
if num % 3 == 0:
print("能被2和3整除")
else:
print("能被2整除")
else:
print("不能被2整除")
简化简单的条件判断,格式为:
value_if_true if condition else value_if_false
正确的,则返回前面;错误则返回后面
示例: 5大于0是正确的,所以打印”大于0“
x = 5
result = "大于0" if x > 0 else "小于等于0"
print(result)
user_age = input("请输入年龄: ")
if user_age.isdigit():
age = int(user_age)
if age >= 18:
print("允许访问")
else:
print("禁止访问")
else:
print("输入无效")
for
循环for
循环用于遍历序列(如列表、元组、字符串)或其他可迭代对象
以下是 for
循环的基本语法:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
for
循环可以与 range()
函数结合使用:
for i in range(5):
print(i)
for
循环还支持 else
子句,在循环正常结束时执行:
for i in range(3):
print(i)
else:
print("循环结束")
while
循环while
循环用于在条件为真时重复执行代码块。
以下是 while
循环的基本语法:
count = 0
while count < 3:
print(count)
count += 1
#0,1,2
while
循环也可以与 else
子句结合使用,在循环条件变为假时执行:
count = 0
while count < 3:
print(count)
count += 1
else:
print("循环结束")
#0 1 2 循环结束
break用于退出整个循环
for i in range(10):
if i == 5:
break
print(i) # 0,1,2,3,4
continue
用于跳过当前迭代,进入下次循环
for i in range(5):
if i == 3:
continue
print(i) # 0,1,2,4
try:
result = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero")
finally:
print("Execution complete")
详细内置函数参考官方文档
→内置函数 — Python 3.12.10 文档←https://docs.python.org/zh-cn/3.12/library/functions.html
len()
:返回对象长度。range()
:生成整数序列。sorted()
:返回排序后的列表。filter(func, iterable)
:过滤满足条件的元素。map(func, iterable)
:对可迭代对象应用函数。int()
, float()
, str()
:类型转换。list()
, tuple()
, set()
:容器类型转换。abs()
sum()
max()
min()
round(number, ndigits)
:四舍五入。print()
:输出内容。input()
:获取用户输入。enumerate()
:返回索引和值的迭代器。enumerate(iterable, start=0)
iterable
:需要遍历的可迭代对象(如列表、字符串等)。
start
(可选):索引的起始值,默认为 0
。
示例:
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)
输出:
0 apple
1 banana
2 cherry
zip()
:将多个可迭代对象组合为元组迭代器。names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
zipped = zip(names, ages)
print(list(zipped)) # 输出:[('Alice', 25), ('Bob', 30), ('Charlie', 35)]