今天我们来讲一讲分支结构。
首先,我们来看看判断条件的一个表:
这是条件判断,值得注意的是,Python里的等于,是两个等号,这是为了区分赋值语句的一个等号。
Python使用三个保留字进行组合,分别为:
and
or
not
这个大家看英文意思肯定就懂了,我们可以试着用一用
print(1 == 1)
print(True and False)
这里要说明一下,and是全部都是True才会返回True,有一个是False都是返回False。or是只要有一个True,就会返回True,not是相反的。比如:
print(1 >= 2) #1不大于等于2,返回False
print(1 >= 2) #1不大于等于2,就是False。not False,就是True,因此返回True
print(not True or False and True)
这个你能看出来是什么吗?
现在我们来讲if的单分支结构,单分支结构由if组成:
a = int(input('输入一个数字'))
b = int(input('输入一个数字'))
if a > b:
print('a大于b')
看起来挺复杂,是吧。不要着急,慢慢来。
首先输入a与b的赋值很简单,下面就是if语句了,相信大家知道,if的意思是如果,那么你可以用中文翻译一下这个语句:
如果a大于等于b,就打印’a大于b’。
现在我们给a赋值3,给b赋值1。那是不是符合条件a大于b,符合条件,转换到Python里,也就是True。所以说,如果条件判断的结果是True,就运行if语句里的代码。
那如果输入的a小于b呢。
那就不打印,对不对?因为条件判断结果为False,False就不执行if里的语句。
那大家再仔细看看,if语句里的代码怎么多了几个空格?
if a > b:
print('a大于b')
这就要讲到分支结构以及以后的循环,定义函数、类,都要有的格式了。这几个空格叫做缩进,可以让代码看起来更有逻辑性。Python默认的一个缩进是4格,当然也可以按照你自己的爱好来设定。但是4格是约定俗成的,在pycharm、IDLE、Sublime Text3里面,默认的缩进都是4格,所以不建议大家将缩进改成其它的空格数。且缩进可以用Tab制表键来手动缩进。如果你改变了缩进,那么还得去键盘设置里改Tab的格数。
说了这么多,我给大家一个if语句的格式:
if 条件:
语句块
那有一些朋友想:我们可以达到输出a大于等于b,那可以输出a小于b吗,这个也很简单。
a = int(input('输入一个数字'))
b = int(input('输入一个数字'))
if a > b:
print('a大于b')
if a < b:
print('a小于b')
这样就可以了,对不对?假如说还想输出a等于b,那也很简单。
a = int(input('输入一个数字'))
b = int(input('输入一个数字'))
if a > b:
print('a大于b')
if a < b:
print('a小于b')
if a == b:
print('a等于b')
好了,现在我们来讲二分支结构。
二分支结构与单分支结构的原理相同。先不说一些枯燥的概念,代码上!
a = int(input('输入一个数字'))
b = int(input('输入一个数字'))
if a > b:
print('a大于b')
if a < b:
print('a小于b')
这样就可以了,对不对?假如说还想输出a等于b,那也很简单。
a = int(input('输入一个数字'))
b = int(input('输入一个数字'))
if a > b:
print('a大于b')
if a < b:
print('a小于b')
else:
print('a等于b')
这个运行的结果好像和刚刚的一样耶,只是多了个else,少了一个if。
这个else就是当if语句里的条件都不符合时,就执行else里的代码。也就是起着否则的意思。
if 条件:
语句块1
else:
语句块2
现在再来讲讲多分支结构。
if 条件1:
语句块1
elif 条件2:
语句块2
…
else:
语句块N
要注意,Python会按照多分支结构的代码顺序依次评估判断条件,寻找并执行第一个结果为True条件对应的语句块,当前语句块执行后跳过整个if-elif-else结构。比如:
a = int(input('输入一个数字'))
b = int(input('输入一个数字'))
if a > b:
print('a大于b')
elif a < b:
print('a小于b')
else:
print('a等于b')
好了以上就是今天的知识,希望大家记住,这是基础中的基础。创作不易,大家至少关注一下吧。有疑惑的朋友在评论区询问,我会尽力而答。感兴趣的小伙伴,可以加我QQ:3418772261。我们下期再见!