Python if语句中or的使用陷阱与正确写法
本文解析Python中if语句使用or时的常见误区,指出`if i == 1 or 5`并非判断i是否等于1或5,而是判断表达式真假。详细讲解了正确的多重条件判断写法,包括使用in关键字或重复比较,并补充了if、if-else、if-elif-else、嵌套if及三目运算符的基础用法。
在Python的if判断语句中,若直接包含or运算符,初学者常易产生误解。
i= 0
if i == 1 or 5:
print(i)这种写法实际上并非判断变量i是否等于1或者5,其逻辑等价于 `(if i == 1) or (5)`。
因此,该判断语句前半部分 `i==1` 若为false,程序会继续评估后半部分;由于后半部分是数字5,而在Python中非零整数被视为True,所以整体判断结果恒为true,导致代码块始终执行并输出i的值。
若要正确判断i是否等于1或者5,应采用以下写法之一:
if i == (1 or 5):
print(i)第一种方式是使用括号明确优先级:
if i == 1 or i ==5:
print(i)第二种方式是分别对i进行两次比较:
if i in (1, 5):
print(i)关于Python中if相关语句的完整用法说明如下。
1.基础if语句
语法结构为:if 条件 : 后续代码块
代码块1
代码块2
......
当条件成立时,执行后续缩进的代码(代码1、代码2等);若条件不成立,则跳过这些代码不执行。
具体代码示例:


运行输出结果:


需要注意的是,只有经过缩进的print语句才属于if语句的一部分,仅在条件成立时执行;而未缩进的print语句无论条件是否成立都会执行。
2.if-else语句
语法结构为:if 条件: 代码块1
当条件成立时执行的代码1
else: 代码块2
当条件不成立时执行的代码2
3.if-elif-else(多重条件判断)语句
语法结构为:if 条件1: 代码块1
当条件1成立时执行的代码1
elif 条件2: 代码块2
当条件2成立时执行的代码2
......
else: 代码块3
当以上所有条件均不成立时执行的代码
4.if嵌套语句
语法结构为:if 条件1: 代码块1
当条件1成立时执行的代码1
if 条件2: 代码块2
当条件2成立时执行的代码2
内部的第二个if语句仅当外层条件1和内层条件2同时成立时,其代码才会被执行(务必注意缩进层级)。
5.猜拳小游戏示例
import random
player = int(input('请出拳(1-石头,2-剪刀,3-布):'))
computer = random.randint(1, 3)
print(f'电脑出拳为:{computer}')
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
print('玩家获胜')
elif player == computer:
print('平局')
else:
print('电脑获胜')import random
random.randint()这两行代码用于生成随机数,初学者可暂不深入理解其内部机制。
6.三目运算符
三目运算符也被称为三元运算符或三元表达式。
其主要优点包括:
能够简化代码结构,提高可读性。
基本语法格式为:
条件成立执行的代码 if 条件 else 条件不成立执行的代码
应用场景示例:
# 找出较大的值
a = 1
b = 2
max_number = a if a > b else b
print(f'较大值为{max_number}')
# 找出较大值与较小值的差
c, d = 3, 4
difference = c-d if c > d else d-c
print(f'大值减小值为{difference}')以上为个人经验分享,希望能给大家一个参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













