Python3 条件控制
Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:
代码执行过程:
if 语句
Python中if语句的一般形式如下所示:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
- 如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句
- 如果 "condition_1" 为False,将判断 "condition_2"
- 如果"condition_2" 为 True 将执行 "statement_block_2" 块语句
- 如果 "condition_2" 为False,将执行"statement_block_3"块语句
Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。
注意:
- 1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
- 3、在Python中没有switch – case语句。
Gif 演示:
实例
以下是一个简单的 if 实例:
实例
#!/usr/bin/python3
var1 = 100
if var1:
print ("1 - if 表达式条件为 true")
print (var1)
var2 = 0
if var2:
print ("2 - if 表达式条件为 true")
print (var2)
print ("Good bye!")
执行以上代码,输出结果为:
1 - if 表达式条件为 true 100 Good bye!
从结果可以看到由于变量 var2 为 0,所以对应的 if 内的语句没有执行。
以下实例演示了狗的年龄计算判断:
实例
#!/usr/bin/python3
age = int(input("请输入你家狗狗的年龄: "))
print("")
if age <= 0:
print("你是在逗我吧!")
elif age == 1:
print("相当于 14 岁的人。")
elif age == 2:
print("相当于 22 岁的人。")
elif age > 2:
human = 22 + (age -2)*5
print("对应人类年龄: ", human)
### 退出提示
input("点击 enter 键退出")
将以上脚本保存在dog.py文件中,并执行该脚本:
$ python3 dog.py 请输入你家狗狗的年龄: 1 相当于 14 岁的人。 点击 enter 键退出
以下为if中常用的操作运算符:
操作符 | 描述 |
---|---|
< |
小于 |
<= |
小于或等于 |
> |
大于 |
>= |
大于或等于 |
== |
等于,比较两个值是否相等 |
!= |
不等于 |
实例
#!/usr/bin/python3
# 程序演示了 == 操作符
# 使用数字
print(5 == 6)
# 使用变量
x = 5
y = 8
print(x == y)
以上实例输出结果:
False False
high_low.py文件演示了数字的比较运算:
实例
#!/usr/bin/python3
# 该实例演示了数字猜谜游戏
number = 7
guess = -1
print("数字猜谜游戏!")
while guess != number:
guess = int(input("请输入你猜的数字:"))
if guess == number:
print("恭喜,你猜对了!")
elif guess < number:
print("猜的数字小了...")
elif guess > number:
print("猜的数字大了...")
执行以上脚本,实例输出结果如下:
$ python3 high_low.py 数字猜谜游戏! 请输入你猜的数字:1 猜的数字小了... 请输入你猜的数字:9 猜的数字大了... 请输入你猜的数字:7 恭喜,你猜对了!
if 嵌套
在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if...elif...else 结构中。
if 表达式1: 语句 if 表达式2: 语句 elif 表达式3: 语句 else: 语句 elif 表达式4: 语句 else: 语句
实例
# !/usr/bin/python3
num=int(input("输入一个数字:"))
if num%2==0:
if num%3==0:
print ("你输入的数字可以整除 2 和 3")
else:
print ("你输入的数字可以整除 2,但不能整除 3")
else:
if num%3==0:
print ("你输入的数字可以整除 3,但不能整除 2")
else:
print ("你输入的数字不能整除 2 和 3")
将以上程序保存到 test_if.py 文件中,执行后输出结果为:
$ python3 test.py 输入一个数字:6 你输入的数字可以整除 2 和 3
小奈
734***009@qq.com
以下实例 x 为 0-99 取一个数,y 为 0-199 取一个数,如果 x>y 则输出 x,如果 x 等于 y 则输出 x+y,否则输出y。
小奈
734***009@qq.com
kein
201***63.com
kein
201***63.com
阿科
121***125@qq.com
数字猜谜游戏优化
阿科
121***125@qq.com
小叶
shi***0415@163.com
小叶
shi***0415@163.com
米老鼠
468***534@qq.com
条件为假:0, false, '', None, 例子如下:
条件为真:不为 0, True, 'None', 字符串不为空串
米老鼠
468***534@qq.com
JIECAO
shi***lingmail@vip.qq.com
使用判断语句来实现 BMI 的计算。
BMI 指数(即身体质量指数,简称体质指数又称体重,英文为 Body Mass Index,简称BMI),是用体重公斤数除以身高米数平方得出的数字
JIECAO
shi***lingmail@vip.qq.com
babeimi
xia***i3941@hotmail.com
参考地址
下表列出了不同数值类型的 true 和 false 情况:
babeimi
xia***i3941@hotmail.com
参考地址
Yuanlgone
183***68730@163.com
if 的两种格式:
可以括号限定代码域,加强代码可读性。
Yuanlgone
183***68730@163.com
存在时间
tsj***o@qq.com
取随机数扩展。取随机数直到两数相等,显示取数次数。
存在时间
tsj***o@qq.com
川河岳
cit***ai@qq.com
存在时间 楼上的太复杂了,而且 elif 还不会执行到,优化如下:
川河岳
cit***ai@qq.com
葫芦又
111***0177@qq.com
如果 if 语句中的条件过长,可以用接续符 \ 来换行。
例如:
注意: \ 后的一行要缩进没有要求,可无序缩进,但我们保持代码的可读性一般设置同样的缩进格式。
葫芦又
111***0177@qq.com
秋 | 先生
mas***lipeng@163.com
实例:
秋 | 先生
mas***lipeng@163.com
My_Skity
719***459@qq.com
在 if...elif...else 的多个语句块中只会执行一个语句块,例如:
因此,在写 elif 条件时一定要做到互不重复。
My_Skity
719***459@qq.com