Python基础语法(4)if条件语句
学习目标
- if条件语句的作用和语法
- if…else语句的作用和语法
- elif多重判断
- if的嵌套
- 大案例
- 三目运算符(三元表达式)
if条件语句的作用和语法
条件语法关键字在于if,英语是如果的意思,在代码书写过程中注意缩进:
1
2
3
4
|
if 条件表达式 :
条件表达式成立时的代码动作1
条件表达式成立时的代码动作2
...
|
简单案例:
1
2
3
4
|
if True:
print("这是条件成立时执行的操作1")
print("这是条件成立时执行的操作2")
print("这是不缩进导致的忽略条件表达式时执行的操作")
|
案例
需求:如果年龄大于等于18岁,成年,输出已经成年,可以上网。
1
2
3
4
|
age = 21
if age >= 18:
print("可以来网吧上网。")
print("程序关闭")
|
进阶需求:用户可以输入自己的年龄,并可以输出自己输入的年龄,大于18岁提示可以上网。
1
2
3
4
|
age = input("请输入您的年龄:")
if int(age) >= 18 :
print(f"您的年龄为{age},已经成年,可以上网")
print("程序关闭")
|
if…else语句的作用和语法
条件分支,可以对满足条件以外的情况作出相应的代码动作
1
2
3
4
5
6
7
8
|
if 条件:
条件成立时执行的代码1
条件成立时执行的代码2
...
else:
条件不成立时执行的代码1
条件不成立时执行的代码2
...
|
对上面案例进行扩充:
1
2
3
4
5
6
|
age = input("请输入您的年龄:")
if int(age) >= 18 :
print(f"您的年龄为{age},已经成年,可以上网")
else:
print(f"您的年龄为{age},未成年,无法上网")
print("程序关闭")
|
多重判断
多重判断用elif,念else if,对两个以上条件情况进行扩充的表达:
1
2
3
4
5
6
7
8
9
10
11
|
if 条件1:
条件1成立的代码1
条件2成立的代码2
...
elif 条件2:
条件2成立的代码1
条件2成立的代码2
...
...
else:
以上条件都不成立执行的代码
|
案例
需求:如果年龄小于18,则为童工;年龄在18-60岁之间,为合法工作年龄;年龄大于60岁为退休年龄。
1
2
3
4
5
6
7
8
|
age = int(input("请输入您的年龄:"))
if age < 18:
print(f"您的年龄过小,为{age}岁,无法进行劳动,童工")
elif (age>=18) and (age<=60):
print(f"您的年龄合适,为{age}岁,可以进行劳动")
else:
print(f"您的年龄过大,为{age}岁,无法进行劳动,应退休")
print("程序关闭")
|
if执行流程一般会跟着满足条件的那一段代码块走,其余的代码会忽略。
(age>=18) and (age<=60) 可以化简为 18 <= age <= 60
if的嵌套
一个大的if里可以包含小的if,是对大条件的进一步分支,其语法如下,注意缩进:
1
2
3
4
5
6
7
|
if 条件1:
条件1成立的代码1
条件1成立的代码2
...
if 满足条件1下的条件1.1:
条件1.1成立的代码1
条件1.1成立的代码2
|
案例
需求:坐公交,有钱可以上车,没钱不能上车;上车后如果有空座,则可以坐下,否则就要站着。
1
2
3
4
5
6
7
8
9
10
11
|
# 准备数据:钱和座位
money = 1
seat = 1
if money == 1:
print("您有钱可以上车")
if seat == 1:
print("有座位您可以坐")
else:
print("没有座位您可以站着")
else:
print("您没有钱无法上车")
|
大案例
需求:猜拳游戏;参与游戏的角色有玩家手动出拳,电脑固定出拳,判断输赢。
1
2
3
4
5
6
7
8
9
|
player = int(input("请出拳:0为剪刀,1为石头,2为布"))
computer = 1
if (player == 0 and computer == 2)or(player == 1 and computer == 0)or(player == 2 and computer == 1):
print("恭喜你获胜了!")
elif player == computer:
print("平局再来一次!")
else:
print("电脑获胜!")
|
需求:电脑随机出拳
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import random
# 导入随机数模块
# 使用random模块中的随机数功能 random.randint()
player = int(input("请出拳:0为剪刀,1为石头,2为布"))
computer = random.randint(0, 2)
print(computer)
if (player == 0 and computer == 2)or(player == 1 and computer == 0)or(player == 2 and computer == 1):
print("恭喜你获胜了!")
elif player == computer:
print("平局再来一次!")
else:
print("电脑获胜!")
|
三目运算符
三目运算符用来化简代码量,但不利于程序的解读,也叫三元运算符或者是三元表达式,语法如下:
1
|
条件成立时执行的表达式 if 条件 else 条件不成立时执行的表达式
|
小案例如下:
1
2
3
4
|
a = 1
b = 2
c = a if a>b else b
print(c) # 此时输出c的值为b赋值给c的,即为2
|
总结
- if条件判断的执行流程,无论是条件多少,满足条件下的语句才会被执行,其余均不执行。
- if条件x介于a和b两个数字之间可以写为 a < x < b ,也可以写x>a and x<b。
- 三目运算符可以对if…else这样简单的判断进行简单快速的表达。