python学习or复习——【掌握程序逻辑:从运算符到条件判断实战】
·

程序逻辑——让计算机学会判断
学习目标
- 运算符
- 条件语句
- 运算符和条件语句综合应用案例
- 程序错误分类及如何DEBUG调试
运算符
运算符和操作对象
运算符:+、-、*、/、//、%等特殊符号集合;操作对象:运算符连接的数据。
Python支持8类运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
1.1 算术运算符
设定变量 a=10,b=5
| 运算符 | 描述 | 实例 |
|---|---|---|
+ | 相加 | a + b → 15 |
- | 相减/取负数 | a - b → 5 |
* | 相乘/字符串重复 | a * b → 50 |
/ | 除法(浮点结果) | a / b → 2.0 |
% | 取模(求余数) | b % a → 0 |
** | 幂运算 | a**b → 10^5 = 100000 |
// | 地板除(取商整数部分) | 9//2 →4;9.0//2.0→4.0 |

幂运算符两种用法
方法1:** 内置运算符
# 2的3次方
result = 2**3
print(result) # 输出8
# 小数、负数幂
print(4**0.5) # 2.0 平方根
print(2**-2) # 0.25 负次方
方法2:pow() 函数
print(pow(2, 3)) # 输出8
练习:计算圆面积
需求:输入半径,输出面积并保留2位小数
1.2 比较运算符
设定变量 a=10,b=20
| 运算符 | 描述 | 实例 |
|---|---|---|
== | 等于 | a == b → False |
!= | 不等于 | a != b → True |
> | 大于 | a > b → False |
< | 小于 | a < b → True |
>= | 大于等于 | a >= b → False |
<= | 小于等于 | a <= b → True |
1.3 逻辑运算符
设定变量 a=10,b=20
| 运算符 | 表达式 | 规则描述 | 实例 |
|---|---|---|---|
and | x and y | x为False则返回x,否则返回y | a and b →20 |
or | x or y | x非0返回x,否则返回y | a or b →10 |
not | not x | 取反,True变False,False变True | not(a and b) →False |
1.4 赋值运算符
基础: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 |
1.5 成员运算符
用于判断值是否存在于字符串、列表、元组等序列
| 运算符 | 描述 |
|---|---|
in | 序列包含值返回True,否则False |
not in | 序列不包含值返回True,否则False |

配套补充:列表
- 有序可变序列,格式
[],逗号分隔元素 - 列表元素可混合整数、浮点数、字符串、嵌套列表等
# 列表示例
[10, 20, 30, 40]
['spam', 2.0, 5, [10, 20]]
创建与访问列表
list1 = ['Google', 'Baidu', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7]
# 下标访问
print(list1[0])
# 切片截取
print(list2[1:5])
in 运算符实战案例
# 字符串判断
text = "Hello, world!"
print("world" in text) # True
print("Python" not in text) # True
print("hello" in text) # False(区分大小写)
# 列表/元组判断
fruits = ["apple","banana","cherry"]
numbers = (10,20,30)
print("banana" in fruits) # True
print(15 not in numbers) # True
课堂练习
现有用户列表 ["lili","lucy","tom"],输入姓名,查询用户是否存在
1.6 身份运算符
比较两个对象内存地址(id())
| 运算符 | 描述 |
|---|---|
is | id(x) == id(y) 返回True |
is not | id(x) != id(y) 返回True |

1.7 运算符优先级(从高到低)
**指数~ + -按位翻转、一元正负号* / % //乘除取模地板除+ -加减>> <<移位&位与^ |位异或、位或<= < > >=比较运算符== !=相等判断= %= /= //= -= += *= **=赋值is is not身份运算符in not in成员运算符not or and逻辑运算符

条件语句
条件语句改变程序执行分支,根据判断选择执行代码块
2.1 if 单分支
语法
if 表达式:
语句序列
逻辑
条件为真,执行内部代码;条件为假,直接跳过。
2.2 if-else 双分支
语法
if 表达式:
语句序列1
else:
语句序列2
逻辑
条件成立执行1,不成立执行2
age = 18
if age >= 18:
print("成年人")
else:
print("未成年人")
2.3 if…elif…else 多分支
多条件依次判断,匹配第一个成立分支
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "D"
print(f"成绩等级:{grade}")
2.4 if 嵌套
if内部再写if语句,多层条件判断
语法
if 表达式1:
if 表达式2:
语句1
elif 表达式3:
语句2
else:
语句3
elif 表达式n:
...
else:
...

综合案例:猜拳游戏
规则:石头=1,剪刀=2,布=3;电脑随机出拳,判断胜负
computer = random.randint(1, 3)
print(computer)
# 2. 用户出拳
user = int(input("请用户出拳(石头-1 剪刀-2 布-3)"))
if user < 1 or user > 3:
print("输入不合法")
else:
# 3. 对比PK出结果(平局,电脑赢了,用户赢了)
if computer == user:
print("平局")
elif (user == 1 and computer == 2) \
or (user == 2 and computer == 3) \
or (user == 3 and computer == 1):
print("用户赢了")
else:
print("电脑赢了")

运算符和条件语句综合应用案例
需求:判断是否开展户外活动
判定规则:
- 晴天 + 温度18~30℃ → 户外活动
- 多云 + 温度15~25℃ + 湿度<80% → 户外活动
- 雨天 → 不活动
- 其余所有情况 → 不活动
示例函数(修正原文残缺代码)
# 案例——天气
w = input("请输入天气:")
t = int(input("请输入温度:"))
h = int(input("请输入湿度: "))
if w == "晴天":
if t >= 18 and t <= 30:
print("可户外运动")
else:
print("不可户外运动")
elif w == "多云":
if (t >= 15 and t < 25):
if h <= 80:
print("可户外运动")
else:
print("不可户外运动")
else:
print("不可户外运动")
elif w == "雨天":
print("不可户外运动")
else:
print("不可户外运动")

程序错误分类及如何DEBUG调试
程序错误分为3大类:语法错误、运行时错误、逻辑错误
4.1 语法错误(Syntax Errors)
代码不符合Python语法规则,程序直接无法运行
常见原因:
- 缺失标点:括号、引号、冒号
- 关键字拼写错误(if写成fi)
- Python缩进错误
- 语句残缺,少
:、=等符号
4.2 运行时错误(Runtime Errors / 异常Exception)
代码语法没问题,运行中途触发异常崩溃
常见类型:
| 错误类型 | 场景 |
|---|---|
| ZeroDivisionError | 除数为0 |
| TypeError | 不同类型数据运算(数字+字符串) |
| NameError | 使用未定义变量/函数 |
| IndexError | 列表索引越界 |
| FileNotFoundError | 打开不存在文件 |
错误示例与优化
# 原始易报错代码
str_input = input('请输入两数(空格隔开):')
a,b = str_input.split()
print(a / b) # 类型错误、分割数量不足、除零错误
# try-except捕获异常优化
str_input = input('请输入两数(空格隔开):')
a,b = str_input.split()
a = int(a)
b = int(b)
try:
print(a / b)
except ZeroDivisionError:
print('除数不能为0')
4.3 逻辑错误(Logical Errors)
程序正常运行无报错,但输出结果不符合预期
示例
# 需求:计算1~n累加和
def sum_numbers(n):
total = 0
for i in range(n): # range(n) 只取0~n-1,漏掉n
total += i
return total
result = sum_numbers(5)
# 预期1+2+3+4+5=15,实际输出10
print(f"1到5的和是:{result}")
更多推荐


所有评论(0)