一、if语句
1. if语句结构
if 条件表达式:
语句块
·····
2. Pyhton如何计算真假?
1)数据类型的真假
对于整数,只有0为假,所有非零整数都是真
对于浮点数,只有0.0为假,所有非零浮点数都是真
对于字符串,只有空字符串为假,所有非空字符串都为真
对于列表,只有空列表为假,所有非空列表都为真
对于元组,只有空元素为假,所有非空元组都为真
对于字典和集合也是一样的
None和False为假,True为真
2)使用比较运算符计算真假
比较运算符主要是用来比较两个变量之间的关系
> 、>=、
3)使用逻辑运算符(python中用了 and、or、not)比较真假
and (表示与),只有两边都为真才为真
or(表示或), 只要其中一个为真就是真,只有两个都为假的时候才是假
not(表示非),真为假,假为真
二、else语句
1. else语句结构
if 条件表达式:
语句块
······
else:
语句块
······
要注意缩进,否则会报缩进错误(IndentationError)
三、elif语句
1. elif语句(else if)语句结构
if 条件表达式1:
语句块
elif 条件表达式2:
语句块
elif 条件表达式3:
语句块
······
else:
语句块
elif 是else if的缩写,表示否则如果的意思,当if的条件不满足时,会进入到elif语句判断是否满足elif的条件,elif语句可以有多条,假如都不满足的时候,才会执行最后的else语句,当然,else语句也是可以省略的(省略else语句,表示如果条件都不满足就什么也不做)
四、条件语句嵌套问题
if语句是可以嵌套的,每层嵌套都是通过缩进来进行区分的,因此一定要保证缩进的统一,否则就会乱掉了
if 条件表达式:
if 条件表达式:
语句块
elif:
语句块
else:
语句块
理论上是可以支持无限嵌套的,但是嵌套太多会影响代码的可读性以及运行效率,因此在实际的使用过程中并不建议使用过多的嵌套,一般最多3层就够了。如果需要更多的判断最好是将功能需求封装成函数实现。
五、条件表达式实现三元操作符
如果学C/C++或者是Java以及PHP的话可能知道有三元操作符( ? : )的存在,表现如下:
变量名 = 条件表达式 ? 条件成立返回这里的值 : 条件不成立返回这里的值
上述为php文件的三元操作符
以上,输出结果为20
python中没有三元操作符,但是我们发现上面的这个跟我们的条件判断语句是不是很像呢?因此python中也能使用条件判断语句实现上面的效果。
变量名 = 条件为真返回这里的值 if 条件表达式 else 条件为假返回这里的值
x, y = 3, 4
z = x if x>y else y
print(z)
# 输出结果为4
其他(使用or赋值)
python中还有一种比较有意思的赋值操作,使用or来进行赋值的。表现如下:
变量名 = 值1 or 值2 # 假如值1为真,那么就返回值1,否则返回值2
print(None or 2)
#输出结果为2,因为None为False
print(3 or 2)
#输出结果为3,因为3位True
作业
问题1:熟练使用条件判断语句的用法,深入理解缩进对于python的影响
已练习
问题2:熟记各种数据类型什么时候是为假什么时候为真
假:整型的0,浮点型的0.0,None,Falese以及各种数据类型为空的时候,其他为真
问题3:熟练使用条件判断语句实现赋值操作的用法以及and和or实现赋值操作的用法
已练习
问题4:写一个小程序,让用户从终端输入两个数字,然后接收这两个数字,在终端打印用户输入的最大值。
a = input("请输入两个数字,现在输入第1个:")
b = input("现在输入第2个:")
if a.isdigit() and b.isdigit():
maxnum = a if a > b else b
print("你输入的数字中大的是:",maxnum)
else:
print("你输入了非数字的内容")
#其中isdigit()是检测字符串是否只由数字组成,可以利用dir(str)来查看字符串所有的属性方法