Python基础语法|Python之条件语句

引言 在Python语言中,条件语句是一种选择语句,因为是通过if关键字来实现的,所以也称为if语句。if语句根据条件表达式的判断结果为真(包括非零、非空)还是为假(包括零、空),选择运行程序的其中一个分支。Python语言中if语句有单分支if语句、双分支if/else语句和多分支if/elif/else语句。
下面用一张流程图来帮助我们理解if语句的工作原理。
当条件表达式为True,执行语句体1;当条件表达式为False,执行语句体2。
Python基础语法|Python之条件语句
文章图片

单分支if语句 【Python基础语法|Python之条件语句】if语句由四部分组成:关键字if、条件表达式、冒号、表达式结果为真(包括非零、非空)时要执行的语句体。其语法格式如下:

if条件表达式: 语句体

如果条件表达式的结果为真,执行语句体中的操作;如果条件表达式的值为假(包括零、空),则不执行语句体中的操作。

案例
1、假设有一个表示某人年龄的变量,而你想知道这个人是否够投票的年龄。
age = 20 if age >= 18: print('You are old enough to vote!')

2、输入圆的半径,如果半径大于等于0,则计算并输出圆的面积1和周长。
import math r = float(input('请输入圆的半径:')) s = math.pi*r**2# 圆的面积 l = 2*math.pi*r# 圆的周长 if r >=0: print('圆的面积:%s,圆的周长:%s'%(s,l))



双分支if/else语句 在前面介绍的if语句中,并不能对条件不符合的内容进行处理,所以Python引进了另外一种条件语句——if/else,其基本语法格式如下:
if 条件表达式: 语句体1 else: 语句体2

if/else语句是一种双分支结构。先判断条件表达式值的真假。如果条件表达式的结果为真(包括非零、非空),则执行语句体1中的操作;如果条件表达式为假(包括零、空),则执行语句体1中的操作。语句体1和语句体2既可以包含多条语句,也可以只由一条语句组成。

案例
3、一个人够投票的年龄时显示与前面第一题相同的信息,同时在这个人不够投票的年龄时也显示一条信息。
age = 20 if age >= 18: print('You are old enough to vote!') print('Have you registered to vote yet?') else: print('Sorry,you are too young to vote.') print('Please register to vote as soon as you turn 18.')

4、输入年份t,如果年份t能被400整除,或者能被4整除但不能被100整除,则输出“t年是闰年”,否则输出“t年不是闰年”。
t = int(input('请输入年份:')) if (t % 400 == 0) or (t % 4 == 0 and t % 100 != 0): print(t,'年是闰年!') else: print(t,'年不是闰年!')



多分支if/elif/else语句 在Python语言中,if语句实际上是一种强大的条件语句,它可以对多种情况进行判断。可以判断多条件的语句是if/elif/else语句,其语法格式如下:
if 条件表达式1: 语句体1 elif 条件表达式2: 语句体2 elif 条件表达式3: 语句体3 ...... else: 语句体n

如果条件表达式1的结果为真(包括非零、非空),则执行语句体1中的操作;如果条件表达式1的结果为假(包括零、空),则继续判断条件表达式的真假;如果条件表达式2的结果为真(包括非零、非空),则执行语句体2中的操作;如果条件表达式2的结果为假(包括零、空),则继续判断表达式3的真假…
从上到下依次判断条件表达式,找到第一个为真的条件表达式,就执行该条件表达式下的语句体,不再判断剩余的条件表达式。如果所有条件表达式均为假,则执行else后面的语句体。

案例
5、从键盘输入整数的一百分制成绩(1~100),要求输出其对应的成绩等级A-E。其中,90分(包含)以上为A,80-89(均包含)分为B,70-79(均包含)分为C,60-69(均包含)分为D,60分以下为E。
score = int(input('请输入你的成绩(0-100分):')) if score > 100: grade = '输入错误!!' elif score >=90: grade = 'A' elif 89 >= score >= 80: grade = 'B' elif 79 >= score >= 70: grade = 'C' elif 69 >= score >= 60: grade = 'D' elif score >= 0: grade = 'E' else: grade = '输入错误!!' print('你的成绩等级:',grade)

6、从键盘输入标准价格和订货量,根据订货量、价格给以不同的折扣,计算应付货款(应付货款=订货量×标准价格×(1-折扣率))。订货量300以下,没有折扣;订货量300及以上,500以下,折扣率为3%;订货量500及以上,1000以下,折扣率为5%;订货量1000及以上,2000以下,折扣率为8%;订货量2000及以上,折扣率为10%。
price = float(input('请输入标准价格:')) quantity = int(input('请输入订货量:')) if 0 <= quantity < 300: x = 0 elif 300 <= quantity < 500: x = 0.03 elif 500 <= quantity < 1000: x = 0.05 elif 1000 <= quantity < 2000: x = 0.08 else: x = 0.1 # 注意考虑订货量和标准价格小于0的情况 if quantity >= 0 and price >= 0: cost = price*quantity*(1-x) print('应付货款:',cost) else: print('你输入的不符合规则!请检查!')



if语句的嵌套 在某个分支的语句体中,又嵌套新的分支结构,这种情况称为嵌套。选择结构的嵌套形式因问题不同而千差万别,因此分析透彻每一个分支的逻辑情况是编写程序的基础。
案例(升级版)
7、输入客户类型、标准价格和订货量。根据客户类型(<5为新客户,≥5为老客户)和订货量给予不同的折扣,计算应付货款(应付货款=订货量×标准价格×(1-折扣率))。
如果是新客户:订货量800以下,没有折扣;否则折扣率为2%
如果是老客户:订货量500以下,折扣率为3%;订货量500及以上,1000以下,折扣率为5%;订货量1000及以上,2000以下,折扣率为8%;订货量2000及以上,折扣率为10%。
cus_type = int(input('请输入客户类型:')) quantity = int(input('请输入订货量:')) price = float(input('请输入标准价格:'))if cus_type > 0 and price > 0 and quantity > 0: if cus_type < 5: if quantity < 800: x = 0 else: x = 0.02 if cus_type >=5: if quantity < 500: x = 0.03 elif 500 <= quantity <1000: x = 0.05 elif 1000 <= quantity < 2000: x = 0.08 else: x = 0.1 cost = quantity*price*(1-x) print('应付货款:',cost) else: print('你输入的不符合规则!请检查!')

    推荐阅读