条件语句
Python中的条件语句与c/cpp基本无异。
if语句
基本结构见以下代码。
Python使用缩进控制if/else语句之间的嵌套关系。
#判断两数是否相等。a = int(input('a:'))
b = int(input('b:'))if a == b:print('Same')
else:print('No Same')
elif
代替了cpp中“else if”的写法,用缩进控制if/else语句的之间的嵌套关系,使得程序结构更加清晰。
#A progame has the ability to identify zero, positive number and negative number.n = int(input('integer:'))if n>0:print('positive number')
elif n==0:print('zero')
else:print('nagetive number')
Python中没有switch语句。
pass语句
占位的一个语句,没有实际作用,该语句不会执行,有点像Java里面的TODO标识。
与continue的区别:pass后的语句仍然会执行,而在循环中continue之后的语句均不会执行。
n = int(input('integer:'))if n>0:print('integer')
elif n==0:pass
else:print('negative')
逻辑运算符
x and y:如果x为真,则结果为y求值后的结果;如果x为假,则结果为x的值。
x or y:如果x为真,则结果为x的值,如果x为假,则结果为y求值后的结果
not x:如果x为真,则结果为False,如果x为假,则结果为True。
与cpp的&&等逻辑运算符不大一样。
区别:c/cpp的逻辑运算结果为真和假,python的逻辑运算结果(and和or)为表达式中某一项的值。
共性:均采用短路求值的原理。
利用Python的这一语法特性,可以写一些花里胡哨的代码(个人觉得可读性很差)。
a = int(input('integer a:'))
b = int(input('integer b:'))c = b != 0 and a % b
print(c, end='...')if c:print('a不能被b整除。')
else:print('b等于0或者a能被b整除。')
这段代码运用了短路求值的原理。
如果b为0,则其不能作为除数,那么b!=0这一项为假,根据短路求值的原理,and后语句不会执行,and表达式返回b!=0的结果为False,在下面的if语句时会执行else代码片。
如果b不等于0,则执行and后语句a%b,and表达式返回a%b的值,即返回a除以b的余数。如果余数为0,则c为0,视为False,下方的代码执行else代码片,如果余数不为0,则c的值为余数,视为True,执行if语句。
这里有一个小知识点:
- False、0、0.0、None、空值视为假。
- 除了上述之外的值和True视为真。
条件运算符
x if y else z
如果y为真,则该表达式的值为x,否则为z。
比较一下cpp中的条件运算符
a ? b : c
如果a为真,则表达式的值为b,否则为c。
个人还是喜欢c/cpp的写法,更加简洁~(PS:也可能单纯是写习惯了)
n = int(input('整数:'))print('该值为:' + '正数' if n > 0 else '零' if n == 0 else '负数')
这是一个实例,进行了条件运算符的嵌套。
但是实际上嵌套多了可读性会很差,不如写if/else语句。
多层嵌套if语句
Python中使用缩进来控制if语句的嵌套结构。
n = int(input('正整数:'))if n > 0:if n % 2 == 0:print('该值为正偶数。')else:print('该值为正奇数。')
else:print('输入的值不为正数。')