一、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)来查看字符串所有的属性方法