目录

Python基础语法(4)if条件语句

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这样简单的判断进行简单快速的表达。