python第四章,if语句(条件测试,if-elif-else代码块,使用if语句处理列表)

# if语句
# 一个简单的示例,演示一下如何使用if语句来正确的处理特殊情形,对于大多数汽车都以首字母大写的方式打印其汽车名
# 而对于汽车名:bmw  应以全大写的方式打印他,下面的代码遍历一个列表,并以首字母大写的方式打印其中的汽车名,bmw全部大写
cars = ['bmw','audi','subaru','toyota']
for car in cars:
    if car == 'bmw':
        print(car.upper())
    else:
        print(car.title())
# 这个示例中的循环首先检查当前汽车名是否是bwm,如果是,就以全大写的方式打印他,否则就以首字母的方式打印他

# 条件测试
# 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试,python根据条件测试的值为true还是false
# 来决定是否执行if语句中的代码,如果条件测试的值为true,python就执行紧跟在if语句后面的代码,如果为false,python就忽略这些代码

# 检查是否相等
car = 'bmw'
if car == 'bmw':
    print(True)
else:
    print(False)
# 定义一个变量名为car值为bmw,接下来使用两个等于号(==)检查car的值是否为'bmw',如果相等打印出True,否则打印False
# 检查是否相等时不考虑大小写,如果大小写无关紧要,而是想检查变量的值,可将变量的值转换为小写,在进行比较
# 举个例子
aa = 'adc'
if aa.upper() == 'ADC':
    print(True)
else:
    peint(False)

# 检查是否不相等
# 要判断两个值是否不等,可结合使用感叹号和等于号(!=),其中感叹号表示不等于,在很多编程语言中都是如此
# 下面举个例子,我们把要求的披萨配料储存在一个变量中,在打印一条消息,指出顾客要求的配料是否是意式小银鱼(anchovies)
requested_topping = 'mushrooms'
if requested_topping != 'anchovies':
    print("Hold the anchovies!")
# 由于requested_topping的值不是’anchovies’,因此执行语句 Hold the anchovies
# 你编写的大多数表达式都检查两个值是否相等,但有时候检查两个值是否不等的效率更高

# 比较数字
# 检查数值非常简单,例如,下面的代码检查一个人是否是18岁,是的话打印 此人已经满18岁,不是的话打印未满18岁
age = 19
if age >= 18:
    print('此人已满18岁')
else:
    print('此人未满18岁')
# 条件语句中可包含各种数字比较,如小于,小于等于,大于,大于等于

# 检查多个条件
# 你可能想同时检查多个条件,例如有时候你需要在两个条件都为True时才执行相应操作
# 有时候你只要求一个条件为True时就执行相应的操作,在这些情况下,关键字and和or可助你一臂之力
# 1: 使用and检查多个条件
# 要检查是否两个条件都为true,可使用关键字and将两个条件测试合而为之,如果每个测试都通过了,整个表达式就为True:
# 如果至少有一个测试没有通过整个表达式就为False
# 例如 要检查是否两个人都不小于21岁可使用下面的测试:
age_1 = 30
age_2 = 70
if (age_1 <= 21) and (age_2 <= 21):
    print('这两个人都没满21岁')
else:
    print('这两个人其中有一个,或者两个都满21岁')
# 为了改善可读性,可将每个测试部分放在一对括号内,但并非必须这样做,如果你使用括号,测试将类似于下面这样:
# (age_1 <= 21) and (age_2 <= 21)

# 使用or检查多个条件
# 关键字  or  也能让你检查多个条件,但只要至少有一个条件满足,就能通过测试,仅当两个测试都没有通过时,使用or表达式才为False

# 检查特定值是否包含在列表中
# 要判断特定的值是否已包含在列表中,可使用关键字in。来看你可能为披萨店编写的一些代码,这些代码首先创建一个列表
# 其中包含用户点的披萨,然后检查特定的配料是否包含在该列表中
requested_toppings = ['mushrooms','onions','pineapple']
if 'mushrooms' in requested_toppings:
        print(True)
else:
    print(False)
if 'pepperoni' in requested_toppings:
    print(True)
else:
    print(False)

# 检查特定值是否不包含在列表中
# 有些时候,确定特定的值未包含在列表中很重要,在这种情况下,可使用关键字 not in
# 例如;制作一个发言黑名单列表,如果这个人不在黑名单列表中,将执行它所发表的评论,看示例
The_blacklist = ['zhangsan','lisi','wanger']
blacklist = 'mazi'
if blacklist not in The_blacklist:
    print(blacklist.title()+',you can post a response if you wish.')
# 如果blacklist的值未包含在The_blacklist中,python将返回True,进而执行缩进的代码行

# 布尔表达式
# 布尔表达式的结果要么为True,要么为False
# 布尔值通常用于记录条件,如游戏是否正在运行,或用户是否可以编辑网站的特定内容:
game_active = True
can_edit = False

# if 语句
# 简单的if语句只有一个测试和一个操作:
# 假设有一个表示某人的年龄,而你想知道这个人是否够投票年龄,可使用如下代码:
age = 19
if age >= 18:
    print('You are old enough to voter!')
# 在上述代码中只要ade的值大于或者等于18 python都可以打印出 You are old enough to voter!,如果age小于18 python将不会打印任何东西
# 在if语句中,缩进的作用与for循环相同,如果测试通过了,将执行if语句后面所有缩进的代码行,否则将忽略他们
# 在紧跟if语句后面的代码块中,可根据需要包含任意数量的代码行,下面在一个人够投票年龄是在打印一条,问他是否登记了
    print("Have you registered to cote yet?")
# 条件测试通过了,而两条print语句都缩进了,因此他们都将执行
# 如果age的值小于18 ,这个程序将不会有任何输出

# if-else语句
# 经常需要在条件测试通过了时执行一个操作,并在没有通过时执行另一个操作,在这种情况下,可使用python提供的if-else 语句
# if-else语句块类似于简单的if语句,但其中的else语句让你能够指定条件测试未通过时要执行的操作
# 下面的代码在一个人能够投票的年龄时显示与前面相同的消息,同时在这个人不够投票的年龄时也显示一条消息:
age = 17
if age >= 18:
    print('You are old enough to votel!')
    print('Have you registered to cote yet?')
else:
    print('Sorry,you are too young to vote,')
    print("Please register to vote as you turn 18!")
# 代码解释,如果年龄大于18就执行,否则(未满18)执行你未满18岁代码

# if-elif-else 结构
# 经常需要检查超过两个的情形,为此可使用python提供的if-elif-else结构,python只执行if-elif-else结构中的一个代码块,
# 它依次检查每个条件测试,直到遇到通过了的条件测试,测试通过后,python将执行紧跟在它后面的代码,并跳过余下测试
# 下面举个列子,写出游乐场收费标准:4岁以下免费,4-18岁收费50元,18岁以上收费100元
age = 99
if age <= 4:
    print("你的年龄在4岁以下,因此你可以免费进入游乐场")
elif age <= 18:
    print("你的年龄在4到18岁之间,因此你需要花费50元来购置门票")
elif age <= 65:
    print("你的年龄在18到65岁之间,所以你需要花费100元购买门票")
else:
    print("你的年龄在65岁以上,所以你只需花费50元来购买门票")

# 使用多个elif代码块:
# 可根据需要使用任意数量的elif代码块,例如,假设前述游乐场要给老人打折,可再添加一个条件测试,判断顾客是否符合打折条件
# 假设对于65岁(含)以上的老人,可以半价即50元购买门票

# 省略else代码块
# python并不要求if-elif结构后面必须有else代码块,在有些情况下,else代码块很有用
# 而在其他一些情况下,使用一条elif语句来处理特定的情形更清晰:
# 你可以将上述else代码换成 elif age >= 65 然后print一条你的年龄在65岁以上,你只需要花费50元来购买门票

# 测试多个条件:
# if-elif-else结构功能强大,但仅适用于只有一个条件满足的情况:遇到通过了的测试后python就跳过余下的测试
# 这种行为很好,效率很高,让你能够测试一个特定的条件。
# 然而,有时候必须检查你关心的所有条件,在这种情况下,应使用一系列不包含elif和else代码块的简单if语句
# 在可能有多个条件我True,且你需要在每个条件为True时都采取相应措施是,适合适用这种方法。
# 下面举一个麻辣烫示例,如果顾客点了三种配料,就需要确保在麻辣烫里面包含这些配料:
peiliao = ['麻','辣','烫','醋','蒜']
if '麻' in peiliao:
    print('麻')
if '辣' in peiliao:
    print('辣')
if '醋' in peiliao:
    print('醋')
print('以上是顾客要求在麻辣烫里面添加的配料')
# 总结。如果你只想执行一个代码块,就使用if-elif-else结构,如果要运行多个代码块,就使用一系列独立的if语句

# 使用if语句处理列表
# 检查特殊元素
# 举例,创建一个销售汽车的列表
cars = ['bmw','benchi','lafa','jili']
for car in cars:
    if car == 'bmw':
        print('抱歉本店的bmw车型已售罄!请谅解!')
    else:
        print('已售出'+car+'车型!')
print('上面是今天售出的车型')
# 输出很简单,因为上述代码是一个简单的for循环
# 然而汽车店里的bmw车型已售罄,该如何处理呢,为妥善的处理这种情况,可在for循环中包含一条if语句

# 确定列表不是空的
# 举一个购物车列表,如果购物车里面有物品,则打印出物品,并且输入一条消息,上面是您需要付款的物品。
# 如果购物车是空的则打印出一条消息,无法完成付款因为购物车是空的
sopping_cars = []
if sopping_cars:
    for sopping_car in sopping_cars:
        print(sopping_car)
        print('上面是您待付款的物品')
else:
        print('无法完成付款因为购物车是空的!')
# 如果购物车不为空,将显示待付款的物品

# 使用多个列表:
# 创建一个披萨添加配料的列表,然后在创建一个顾客要求在披萨里面添加的配料,如果顾客要求披萨添加的配料的薯条不存在
# 则打印一条消息告诉顾客,披萨里面不能添加薯条
available_toppings = ['mushrooms','olives','green peppers','pepperoni','pineapple','extra cheese']
requested_toppings = ['mushrooms','french feies','extra cheese']
for requested_topping in requested_toppings:
    if requested_topping in available_toppings:
        print("adding"+requested_topping+".")
    else:
        print("sorry,we don't have"+requested_topping+".")
print('\nFinished making your pizza')

你可能感兴趣的:(python第四章,if语句(条件测试,if-elif-else代码块,使用if语句处理列表))