Python运算符与流程控制:if条件判断

Python运算符与流程控制:if条件判断

上一篇我们学习了变量和数据类型,本篇将学习运算符和if条件判断,让程序具备「思考」和「决策」的能力。

一、Python运算符

1. 算术运算符

运算符 描述 示例 结果
+ 加法 5 + 3 8
- 减法 5 - 3 2
* 乘法 5 * 3 15
/ 除法(结果为float) 5 / 2 2.5
// 整除(向下取整) 5 // 2 2
% 取余 5 % 2 1
** 幂运算 2 ** 3 8
python 复制代码
print(10 / 3)   # 3.3333333333333335
print(10 // 3)  # 3
print(10 % 3)   # 1
print(2 ** 10)  # 1024

# 负数整除注意:向下取整,不是向零取整
print(-5 // 2)  # -3(不是-2)

2. 比较运算符

运算符 描述 示例 结果
== 等于 5 == 5 True
!= 不等于 5 != 3 True
大于 5 > 3 True
< 小于 5 < 3 False
>= 大于等于 5 >= 5 True
<= 小于等于 5 <= 3 False
python 复制代码
a, b = 10, 20
print(a == b)  # False
print(a != b)  # True
print(a > b)   # False

# 字符串也可以比较(按ASCII码)
print("abc" < "abd")  # True
print("A" < "a")      # True(大写字母ASCII码更小)

3. 逻辑运算符

运算符 描述 示例 结果
and 与(两边都为True才为True) True and False False
or 或(一边为True就为True) True or False True
not 非(取反) not True False
python 复制代码
age = 20
has_ticket = True

# 同时满足两个条件
if age >= 18 and has_ticket:
    print("可以入场")

# 满足任一条件
is_weekend = True
is_holiday = False
if is_weekend or is_holiday:
    print("今天休息")

# 取反
is_raining = False
if not is_raining:
    print("可以出门")

短路求值:

python 复制代码
# and:左边为False时,右边不执行
def func():
    print("函数被调用了")
    return True

result = False and func()  # func不会被调用
print(result)  # False

# or:左边为True时,右边不执行
result = True or func()  # func不会被调用
print(result)  # True

4. 赋值运算符

运算符 描述 示例 等价于
= 简单赋值 a = 5 -
+= 加后赋值 a += 3 a = a + 3
-= 减后赋值 a -= 3 a = a - 3
*= 乘后赋值 a *= 3 a = a * 3
/= 除后赋值 a /= 3 a = a / 3
//= 整除后赋值 a //= 3 a = a // 3
%= 取余后赋值 a %= 3 a = a % 3
**= 幂后赋值 a **= 3 a = a ** 3
python 复制代码
count = 0
count += 1  # 等价于 count = count + 1
count *= 2  # 等价于 count = count * 2
print(count)  # 2

5. 成员运算符与身份运算符

python 复制代码
# 成员运算符:in / not in
fruits = ["苹果", "香蕉", "橙子"]
print("苹果" in fruits)      # True
print("葡萄" not in fruits)  # True

# 身份运算符:is / is not(比较内存地址)
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is b)      # True(同一个对象)
print(a is c)      # False(值相同但不是同一个对象)
print(a == c)      # True(值相等)

⚠️ == 比较的是值是否相等,is 比较的是是否为同一个对象(内存地址相同)。

6. 运算符优先级

从高到低:

  1. **(幂运算)
  2. +x, -x, ~x(正负号、按位取反)
  3. *, /, //, %
  4. +, -
  5. 比较运算符 ==, !=, <, >, <=, >=
  6. not
  7. and
  8. or

建议:不确定优先级时用括号 () 明确表达,代码更清晰。

二、if条件判断

1. 基本if语句

python 复制代码
age = 18
if age >= 18:
    print("你已经成年了")

⚠️ Python用缩进(通常4个空格)表示代码块,不用大括号 {}

2. if-else语句

python 复制代码
age = 16
if age >= 18:
    print("你已经成年了")
else:
    print("你还未成年")

3. if-elif-else语句(多分支)

python 复制代码
score = 85

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "F"

print(f"你的等级是: {grade}")  # B

⚠️ elif是else if的缩写,条件从上到下判断,满足一个就不再判断后面的。

4. 嵌套if语句

python 复制代码
age = 20
has_id = True

if age >= 18:
    if has_id:
        print("可以进入网吧")
    else:
        print("请出示身份证")
else:
    print("未成年人禁止进入")

5. 三元表达式(简洁写法)

python 复制代码
# 普通写法
if age >= 18:
    status = "成年"
else:
    status = "未成年"

# 三元表达式
status = "成年" if age >= 18 else "未成年"
print(status)

三、实战:简易计算器

python 复制代码
print("=== 简易计算器 ===")
num1 = float(input("请输入第一个数: "))
op = input("请输入运算符(+ - * /): ")
num2 = float(input("请输入第二个数: "))

if op == "+":
    result = num1 + num2
elif op == "-":
    result = num1 - num2
elif op == "*":
    result = num1 * num2
elif op == "/":
    if num2 == 0:
        print("错误:除数不能为0")
        exit()
    result = num1 / num2
else:
    print("错误:不支持的运算符")
    exit()

print(f"结果: {num1} {op} {num2} = {result}")

运行示例:

makefile 复制代码
=== 简易计算器 ===
请输入第一个数: 10
请输入运算符(+ - * /): *
请输入第二个数: 5
结果: 10.0 * 5.0 = 50.0

四、常见坑点

  1. 缩进错误:Python严格依赖缩进,同一代码块缩进必须一致

  2. 混淆 ==== 是赋值,== 是比较

  3. if后忘记冒号if condition: 末尾必须有冒号

  4. 浮点数比较 :浮点数有精度问题,不要直接用 == 比较

    python 复制代码
    print(0.1 + 0.2 == 0.3)  # False!
    # 正确做法:比较差值是否足够小
    print(abs(0.1 + 0.2 - 0.3) < 1e-9)  # True
  5. 空值判断 :用 if x is None 而不是 if x == None

五、课后练习

  1. 编写程序,输入一个年份,判断是否为闰年(能被4整除但不能被100整除,或能被400整除)
  2. 编写程序,输入三个数,按从小到大的顺序输出
  3. 编写程序,输入一个月份,输出该月份有多少天(考虑闰年2月)

六、小结

本篇学习了Python的各类运算符(算术、比较、逻辑、赋值、成员、身份)和if条件判断的三种形式。运算符是程序的基础,if语句让程序具备了决策能力。下一篇我们将学习循环结构,让程序能重复执行。

📌 下一篇预告:《Python循环结构:for与while的用法及区别》


本专栏持续更新中,欢迎点赞、收藏、关注三连支持!🐍

相关推荐
H_Peak1 小时前
Python字符串操作:从基础到正则入门
后端
自进化Agent智能体1 小时前
Hermes 子代理委派 —— 并行工作的艺术
后端
步行cgn1 小时前
MyBatis 动态 SQL 中的 <foreach> 标签完全解析
后端
SomeB1oody2 小时前
【RustyML入门】5.0. 模型评估
开发语言·后端·机器学习·rust·教程
唐青枫3 小时前
别只把 enum 当常量列表:Zig 枚举、状态机与 Tagged Union 实战
后端
2601_963870213 小时前
【计算机毕业设计】基于Spring Boot的非遗文创产品交易平台的设计与实现
java·spring boot·后端
lv__pf3 小时前
Spring之AOP底层源码解析(下)【TL spring14】
java·后端·spring
苍何3 小时前
保姆级教程,Codex 接入 DeepSeek V4 Pro 和 Grok 4.6,6 种方法全整理
后端