python(15): if语句及逻辑判断(第9章)
if语句相对简单,在各种编程语言中没有什么太大的区别。表示形式为:
if X:
- ...
- elif x1:
- ...
- elif x2:
- ...
- else:
- ...其中,elif和else分支是可选的。这里更多需要注意的不是if语句本身,而是python中语句书写的格式。首先,python中没有像c中一样的{和}用来标识一个语句块,python用语句的缩进来表示,缩进同样多长度的语句就属于同一个语句块中。在一个程序文件中,第一层的语句不要缩进。其次,在if语句后面用":"来表示if语句是一个复合句。第三,python语句以换行作为一条语句的结束,而不像在c中用";"来表示。当然在python也可以使用“;”,一般只用在要在一行中输入多条语句的时候才用,这种风格不提倡。第四,当if语句中的语言块只有一条语句的时候,可以直接写在":"的后面。第五,缩进可以用'空格'也可以用tab。但最好不要混用,因为python会默认把tab转换为8个空格。混用空格和tab可能导致某些语句不能被正确地执行。
python是用换行来表示一条语句结束的。但在某些情况下,语句的书写可以超过一行:
- 带有一对符号的语句,比如:‘’ “” () [] {} """ """ ''' '''
- 在前一行后加上"\"
其中,第二种方式不提倡,因为在任何使用"\"的地方,都可以使用()来代替。
在python中并没有类似于c中switch/case语句,这种语句可以用多重的if/elif/else语句来代替,此外,还可以使用dictionary来代替。比如:
- >>> choice = 'a'
- >>> D = {'a':'first',
- 'b':'second',
- 'c':'third'}[choice]在这种形式中,choice的值不同,整个表达式的值也不同。为了实现类似于if/else中else的功能,可以使用get()函数来代替上面用的“[choice]”功能,给整个表达式提供一个默认值,甚至还可以在get()中使用exec()作为参数,来完全实现else从句的功能。
在if语句中,if后面跟着一个逻辑判断表达式。需要注意的是:逻辑判断表达式是“短路”的,比如:x or y,如果x为真,那么整个表达式就是真的,并不计算y的值。