Python入门系列——第8篇

if-else语句

上节,我们认识了“布尔逻辑表达式”。紧接着,我们要学习if-else语句。我们来看看这条语句在代码中是怎样的功能。
我们仍然还是创建一个交互式的对话模式程序。
#python3
My_age = 20
My_tall = 175
My_weight = 65

your_age = int(input("How old are you?
"))
your_tall = int(input("How tall are you?
"))
your_weight = int(input("How weight are you?
"))

if My_age > your_age:
	print("I'm older than you.")
elif My_age == your_age:
	print("You are as old as me.")
else:
	print("You are older than me.")

if My_tall > your_tall:
	print("I'm taller than you.")
elif My_tall == your_tall:
	print("You are as tall as me.")
else:
	print("You are taller than me.")
	
if My_weight > your_weight:
	print("I'm fat,you are thin.")
elif My_weight == your_weight:
	print("You and I the same weight")
else:
	print("You may need to lose weight")
在这个程序中,我们首先用到了int()这个函数,还记得前面我们说过,input()将所有的输入都视作字符串。我们在这里需要对数据进行比较,所以必须转换成int。int()这个函数实现了我们的需求。你自己可以在写几个程序试试int()这个函数。紧接着我们就使用了if-else语句。我来详细解释一下if-else语句。
if-else 是所谓的“分支语句”。就像我们玩过的一些RPG游戏一样,你在NPC处需要做出选择,然后游戏根据你的选择,做出相应的判断。在这个程序里,程序根据你的输入,判断我和你谁年长一些,谁更高一些,谁的体重更轻。
if-else语句必须以if开头。后面跟着一个布尔逻辑表达式。如果表达式的结果是True,那么就执行if语句下面的内容。否则就不执行if下面的内容。转而跳转到,elif处判断布尔逻辑表达式的结果,如果结果是True,执行紧跟着的语句。否则执行else后面的语句。这就是if-else语句的执行流程。
输出结果如下:

注意:if-else语句的格式:if + 布尔逻辑表达式 + 冒号,一定记得加上冒号。而且下面所有的语句要进行统一的缩进。否则会造成语法错误。好了,不要问为什么。这就是python的语法。记住,缩进也是python的语法,这可能和其他的编程语言不太一样。每行的开头处的缩进一定要有所注意,如果缩进不一致可能就会导致错误。缩进可能是python这么编程语言的特色吧。这样的要求使得写出来的python代码看起来就很美。而不是像某些语言一样,可以写的很任意,这就导致了一些很糟糕的代码出现。
if语句可以单独使用。但是else语句和elif不可以单独使用:
if My_age > your_age:
	print("I'm older than you.")
if My_tall > your_tall:
	print("I'm taller than you.")
if My_weight > your_weight:
	print("I'm fat,you are thin.")
像上面这样使用单独使用if语句是没有什么问题的。
如果你写的程序中有多个elif语句,而且它们的块都是True,那么Python只执行它遇到的第一个True块。
多个if-else语句和elif之间还是有区别的。if-elif只要遇到True,就停下了。不会再继续执行下面的代码了。而多个
if-else语句还会继续执行下面的代码。
额,写的这里突然记起来,上次忘了说的一些事情。
python和很多其他语言一样,对于 1 and 2这样的语句返回的是两个操作对象的其中一个,而非返回True或者False。
这个东西还是需要你下去多试试。
在Python里,!=是主流用法,而不是<>。这一点上和C++是一样的。
短路逻辑:在Python里也有短路逻辑,具体是:任何以False开头的and语句都会直接处理成False,而and后面的部分将不会得到执行。任何包含True的or语句,一旦遇到True,不管后面还有什么,都不会再执行后面,而是直接返回True。
还有一点python2和python3的不同之处:
python2支持使用“<>”作为“!=”的代替,但是python3废弃了这种做法。

好了,记住一定要多加练习,下次见。

原文地址:https://www.cnblogs.com/zy666/p/10504333.html