if 语句
下面就是if结构了
其实最简单的if语句就是一个测试和一个操作组成的。
if conditional_test:
do something
if的结果为ture那么就会执行这个代码,否则python将会忽略这些代码。
如果有一个人想知道他的年龄是否足够可以使用以下代码。
age=19
if age >=18:
print("you age is enough")
在if语句中缩进是一个必要的存在,和for一样if之后的条件语句需要进行缩进,if会管理已经缩进的语句而不会去管没有缩进的语句。
像刚才一样,想要问一个人的年龄是否足够了,我使用代码来表示他。
age=19
if age >=18:
print("you age is enough")
print("you is a adult")
you age is enough
you is a adult
if条件的测试通过了,而且两个print都做了缩进,所以说两个print都执行了,同样的如果这个age<18那将不会有任何输出,
if-else语句
我们经常需要条件测试的时候一个条件没有通过而去执行另一个条件,这就用到了我们python提供的if-else语句,if-else类似于简单if语句,但是在if语句条件不通过的时候将会执行else的语句。
例如
age=17
if age>=18:
print("you age is enough")
else:
print("sorry,you are too young to vote")
sorry,you are too young to vote
如果if第一个条件通过了将会执行第一组缩进的函数使用print(),但是这就的结果为false,那么就是下面的else来执行print()进行输出了。
if-else在只有两个条件的时候非常好用,但是如果条件变的多了,变为了三个条件下面的语句会更适合进行判断。
if-elif-else结构
当我们考虑的情况超过了两个我们就可以使用if-elif-else结构。
例如
按年龄收费的游乐场:
4岁以下免费
4-18岁收25美元
18岁以上收费40美元
age=12
if age<4:
print("you admission cost is $0.")
elif age<18:
print("you admission cost is $25.")
else:
print("you damission cost is $25.")
当if检测到age不满4时将执行第一条print()输出,当age大于4时将会执行下一条语句,如果if和elif都没有通过那python就会直接执行else的语句并且进行输出。
age=12
if age<4:
price=0
elif age<18:
price=25
else:
price=40
print(f"you admission cost is ${price}.")
我们可以将价格直接进行转换为变量
这样的代码将会更加简洁。
上次学到了if-elif-else结构,我们可以设置三个条件来进行条件的测试,其实elif可以使用多个,可以 根据要求使用任意数量的elif。
例如
age=12
if age<4:
price=0
elif age<18
price=25
elif age<65
price=40
else:
price=20
print(f"you admissin cost is ${price}")
我们在代码中加入了一个elif同时也加入了一个条件,老人的价格为$20。当我们的变量大于65时将会跳过前三个条件执行第四个条件,如果变量为20的时候将会输出价格为40.
在Python中并不要求非要有else代码块,在有些情况下else很有用,但是在其他一些情况下,省略他使用elif将会更清晰。
age=12
if age<4:
price=0
elif age<18
price=25
elif age<65
price=40
elif age>=65
price=20
print(f"you admissin cost is ${price}")
else是一条很宽泛的语句,当我们的条件不满足的时候不论什么else都会执行。而使用elif的时候必须满足条件才可以运行。
当我们需要测试多种条件的情况下我们一般不用elif和else,一般只用if语句进行判断和输出的语句。
例如
我们去介绍同学,每个同学的性格特点都不也一样
classnumber=['zhang','wang']
if 'zhang' in classnumber
print("shuai")
if 'wang' in classnumber
print("niu")
if 'su' in classnumber
print("gao")
当我们需要介绍zhang和wang的时候我们可以分别将他们的特点说出来,当需要介绍su的时候也可以将他的特点说出来。if语句执行了三个独立的测试,而不是使用elif或者else这样的条件。
如果像下面这样使用了if-else-elif结构,那么代码将不能按照我们想要的正常运行。
classnumber=['zhang','wang']
if 'zhang' in classnumber
print("shuai")
elif 'wang' in classnumber
print("niu")
else 'su' in classnumber
print("gao")
如果测试第一个zhang通过了那么他将不会进行下面的测试而是直接进行输出。
如果你想要执行一个代码块就可以使用if-elif-else结构,但是如果你想要执行多个代码块就要使用一系列的独立的if语句。
我们已经对if有了一个大致的认识了下面我们可以对他进行实际的应用,当我们在一个披萨店顾客在点餐的时候,我们可以使用一个简单的for循环,将菜单上的所有东西都列到列表上去。
requested_toppings=['mushrooms','green peppers','extra cheese']
for requested—topping in requested_toppings:
print(f"adding {requested_topping}.")
print("\nfinished making your pizza")
我们上面用了一个很简单的for循环,如果我们的青椒green peppers使用完了,那么我们应该用一个if语句进行解释。
requested_toppings=['mushrooms','green peppers','extra cheese']
for requested_topping in requested_toppings:
if requesed_topping=='green peppers':
print("sorry we are not have green peppers")
else
print(f"adding {requested_topping}.")
print("\nfinished making your pizza")
我们使用的一个if语句在没有青椒的情况下输出了sorry we are not have green peppers。同样的我们可以输入列表里面所有的东西进行检查如果没有可以指出什么原因。
到现在为止我们每次都给列表加入了至少一个元素,但是我们马上要让用户在列表中储存东西,所以我们要确定列表是空的。
下面一个例子是检查顾客点餐前的配料表是否为空,如果列表为空那么就会想顾客输出是否要原味的披萨,如果列表不为空那么我们就加入顾客所输入的东西进行制作。
requested_toppings=[]
if requested_topping:
for requestede_toppings:
print(f"adding{requested_topping}.")
print("\nfinish making your pizza")
else
print("are you sure you want a plain pizza")
我们首先创建了一个空列表,其中没有任何配料,然后进行检查,在列表中包涵知道一个元素的时候将会返回ture然后输出完成的语句,当列表中还是为空的时候将会返回false,这时候进行输出else中的语句,如果这个列表不为空将会现实在披萨中添加的各种配料。