Python 的运算符和语句(条件、循环、异常)基本使用指南
运算符的分类
- 算数运算符
- 赋值运算符
- 复合赋值运算符
- 比较运算符
- 逻辑运算符
算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 输出结果为 2 |
- | 减 | 1 - 1 输出结果为 0 |
* | 乘 | 2 * 2 输出结果为 4 |
/ | 除 | 10 / 2 输出结果为 5 |
// | 整除 | 9 // 4 输出结果为 2 |
% | 取余 | 9 % 4 输出结果为 1 |
** | 指数 | 2 ** 4 输出结果为 16,2 * 2 * 2 * 2
|
() | 小括号 | 小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9 |
注:
-
混合运算优先级顺序: () ⾼于 ** ⾼于 * / // % ⾼于 + -
-
由于算术运算符是 双目运算符 ,即有两个操作数参加运算,当参加运算的两个操作数的类型不一致时,首先转换成同一类型,然后进行运算,否则会提示错误。
转换的基本规则是:
- 如果参加算术运算的两个操作数中有一个是 复数 ,则把另一个也转换为复数;
- 如果两个操作数中有一个是 浮点数 ,则把另一个也换成浮点数;
- 如果两个操作数中有一个是 长整数 ,则把另一个也转换成长整数。
转换时不同类型之间的转换必须遵守一定转换方向,例如不可以把一个浮点数转换为一个整数,也不能把一个复数转换为其它数值类型。
赋值运算符
-
单个变量赋值(简单赋值)
num = 1 print ( num )
-
多个变量赋值(序列赋值)
在序列赋值语句中,等号左侧是元组或列表表示的多个变量,等号右侧是元组、列表或字符串等序列表示的数据。Python 按先后顺序依次将数据赋值给变量。
num1, float1, str1 = 10, 0.5, 'hello world' print(num1) print(float1) print(str1)
注:
-
等号右侧为字符串时,Python 会将字符串分解为单个字符,依次赋值给各个变量,此时,变量个数和字符个数必须相等,否则会出错;
a, b, c, d, f = 'hello' print(a) print(b) print(c) print(d) print(f)
-
序列赋值时,可以在变量名之前使用 *,不带星号的变量仅匹配一个值,剩余的值作为列表赋值给带星号的变量。
a, b, *c = 'hello' print(a) print(b) print(c)
-
-
多变量赋相同值(多目标赋值)
a = b = 10 print(a) print(b)
复合赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | c += a 等价于 c == c + a |
-= | 减法赋值运算符 | c -= a 等价于 c == c - a |
*= | 乘法赋值运算符 | c *= a 等价于 c == c * a |
/= | 除法赋值运算符 | c /= a 等价于 c == c / a |
//= | 整除法赋值运算符 | c //= a 等价于 c == c // a |
%= | 取余法赋值运算符 | c % = a 等价于 c == c % a |
**= | 幂赋值运算符 |
c **= a 等价于 c = c ** a
|
比较运算符
运算符 | 描述 |
---|---|
== | 判断相等。如果两个操作数的结果相等,则条件结果为真(True),否则为假(False) |
!= | 不等于。如果两个操作数的结果不相等,则条件结果为真(True),否则为假(False) |
> | 运算符左侧操作数结果是否大于右侧操作数结果,如果大于,则条件为真,否则为假 |
< | 运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假 |
>= |
运算符左侧操作数结果是否大于等于右侧操作数结果,如果大于等于,则条件为真,否则为假 |
<= | 运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于等于,则条件为真,否则为假 |
逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与":x 和 y 均为 True,则 x and y 为 True,否则为 False | True and False,返回 False |
or | x or y | 布尔"或":x 和 y 均为 False,则 x and y 为 False,否则为 True | True or False,返回 True |
not | not x | 布尔"非":如果 x 为 True,返回 False。如果 x 为 False,返回 True | not True,返回 False |
三元运算符
在 Python 中,三元运算符(也称为条件运算符)是一种简洁的方式来编写条件表达式
-
语法结构如下:
value_if_true if condition else value_if_false # 示例 x = 10 y = 20 max_value = x if x > y else y # 输出:20
条件语句(if-elif-else)
-
if 语句
if 条件: 条件成⽴执⾏的代码1 条件成⽴执⾏的代码2 ......
-
if…else…
if 条件: 条件成⽴执⾏的代码 ...... else: 条件不成⽴执⾏的代码 ......
-
多重判断
if 条件1: 条件1成⽴执⾏的代码 ...... elif 条件2: 条件2成⽴执⾏的代码 ...... ...... else: 以上条件都不成⽴执⾏执⾏的代码
-
if 嵌套
if 条件1: 条件1成⽴执⾏的代码 ...... if 条件2: 条件2成⽴执⾏的代码 ......
循环语句(for、while)
-
for 循环
for 循环是 Python 中最常用的循环语句之一,可以遍历任何序列,如一个列表或者一个字符串。
基本语法为:
for variable in sequence: # 循环体 [else] # 循环体
- variable :表示变量名
- sequence :表示要遍历的序列
示例:
# 遍历列表或元组 for number in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: print(number**2) # 遍历字符串 for char in "hello world": print(char.upper()) # 遍历字典 d = {'apple': 2, 'banana': 3, 'orange': 4} for key, value in d.items(): print(key, value) # 遍历文件内容 with open('file.txt', 'r') as f: for line in f: print(line.strip())
-
while 循环
基本语法:
while 条件: # 循环体 [else] # 循环体
示例:
fruits = ['apple', 'banana', 'orange', 'grape'] i = 0 while i < len(fruits): print(fruits[i]) i += 1
-
break 语句可以跳出 for 和 while 的循环体,如果从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
-
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
-
pass 语句是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句
异常的捕获和处理(try-except-finally)
-
try 语句和 except 语句:用于捕获和处理异常
-
try 语句:包含可能会引发异常的代码块。如果在
try
代码块中发生异常,程序将立即跳转到except
代码块,以执行异常处理操作。 -
except 语句:在
except
语句中,异常对象被赋值给变量e
,可以使用它来获取有关异常的信息。 -
else 语句:可以使用
else
语句来指定当没有异常发生时要执行的代码块
-
try 语句:包含可能会引发异常的代码块。如果在
-
finally 语句:指定无论是否发生异常都必须执行的代码块
-
自定义异常:可以创建自定义异常类,以便根据应用程序需求引发和捕获异常。
-
代码示例:
# 自定义异常类 class MyCustomError(Exception): pass try: # 可能会引发异常的代码块 if some_condition: raise MyCustomError("This is a custom error") # 抛出自定义异常 result = 10 / 0 # 除以零会引发一个异常 except MyCustomError as e: # 处理自定义异常 print(f"Custom error occurred: {e}") except ZeroDivisionError as e: print(f"Division by zero error: {e}") except Exception as e: print(f"An error occurred: {e}") else: # 当没有异常发生时要执行的代码块 print(f"Result is {result}") finally: # 无论是否发生异常都必须执行的代码块 print("This code always runs")