注:
本文转载请注明出处:https://www.cnblogs.com/cynthius-phi/p/15191572.html
本文整理自:https://www.liaoxuefeng.com/wiki/1016959663602400/1017099478626848
Python条件判断的格式:
if <cond_1>: <codeblock_1> elif <cond_2>: <codeblock_2> elif <cond_3>: <codeblock_3> ... else: <codeblock_n>
其中从elif <cond_2>:开始的任意一部分内容(两个条件判断关键字之间内容)均可缺省,如可以没有elif部分或没有else部分,或者都没有。
注意,Python的if/elif/else,都需要在行末加一个“:”,这一点与C系列语言很不一样。在Python中,“:”表示即将开始一个缩进代码块。
Python的条件判断与其他语言相似,对于上面这样的代码结构,Python会一直将<cond_1>, <cond_2>, ...的真假判断下去,直到找到第一个为True的条件。之后Python将执行其之后紧跟的代码块,然后忽略剩余的部分。如果全为False,则执行else之后紧跟的代码块。
不过注意这里也有个坑,那就是,从<cond_2>开始,elif之后的代码块能够真正被执行的条件,其实已经在范围上小于(严格于)<cond_i>自身了。从数学的角度来讲,设每个<cond_i>对应的数学上的集合范围为Si,则:
<cond_1>对应的范围为S1。
<cond_2>对应的范围实际上已经不是S2,因为能够执行到<cond_2>,就意味着<cond_1>为False,所以能到达<cond_2>就意味着范围至少是~S1了;因此<cond_2>对应的实际范围应该是~S1∩S2。
<cond_3>对应的范围,同理,应该是~(S1∪(~S1∩S2))∩S3。
<cond_4>则是……
(晚点来补)
最后,input()返回的是str。如果要将其解读为数,需要用int()或float()将其转换为数。