Python之条件语句

引言

在Python语言中,条件语句是一种选择语句,因为是通过if关键字来实现的,所以也称为if语句。if语句根据条件表达式的判断结果为真(包括非零、非空)还是为假(包括零、空),选择运行程序的其中一个分支。Python语言中if语句有单分支if语句、双分支if/else语句和多分支if/elif/else语句。


下面用一张流程图来帮助我们理解if语句的工作原理。
当条件表达式为True,执行语句体1;当条件表达式为False,执行语句体2。
Python之条件语句_第1张图片

单分支if语句

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('你输入的不符合规则!请检查!')

你可能感兴趣的:(Python基础语法,python,编程语言)