开始
在前面分享过其他基础了,今天分享下python的条件判断。
在实际工作中,条件判断是必不可少的,用来协助工作。
常用的比如说判断年龄,根据年龄输出不同内容,在python中,用if语句实现,举例:
age =20
if age >=18:
print("你的年龄是",age)
print('成年')
python有独有的缩进规则,按照规则,如果 if 语句判断是 True,就把缩进的两行 print 语句执行了,否则,什么也不执行。
也可以添加一个 else 语句,如果 if 判断是 False ,不执行 if 的内容,而是执行 else 的内容。
age =12
if age >=18:
print('你的年龄是',age)
print('成年')
else:
print('你的年龄是',age)
print('青少年')
注意:else后面不要忘记写冒号:
python中还可以用 elif 做更详细的判断,举例:
age =5
if age >=18:
print('你的年龄是',age)
print('成年')
elif age >=6:
print('你的年龄是',age)
print('青少年')
else:
print('小孩子')
elif 是 else if 的缩写,所以可以有多个 elif ,所以 if 语句可以这样写:
age =5
if age >=18:
print('你的年龄是',age)
print('成年')
elif age >=6:
print('你的年龄是',age)
print('青少年')
elif age >=70:
print('老人')
else:
print('小孩子')
但是,if 语句执行有个特点,它从上往下判断,如果在某个判断上是 True,把这个判断对应的语句执行完毕后,会忽略掉剩下的elif 和 else ,所以这条输出语句的结果为什么是青少年呢?成年人不是也符合条件吗?
# 测试
age =20
if age >=6:
print('青少年')
elif age >=18:
print('成年人')
elif age >=70:
print('老人')
else:
print('小孩子')
if 判断条件可以简写,举例:
if x:
print('True')
如果 x 是非零数值、非空字符串、非空 list 等,就判断为 True ,否则 就是 False.
input()输入
大家都使用 input() 读取用户的输入,由于可以自己输入,所以程序会更有意思,举例:
birth = input('birth: ')
if birth < 2000:
print('00前')
else:
print('00后')
输入一个1982 ,结果报错了:
Traceback (most recent call last):
File "D:/z-PycharmProjects/test1/tes9-10/test10-16.py", line 66, in <module>
if birth < 2000:
TypeError: '<' not supported between instances of 'str' and 'int'
为什么呢?因为input() 返回的数据类型是 str ,str 不能直接和整数比较的,不是同一种数据类型就没法比较,要比较就要把
str 转换成整数。这里用 int() 函数来解决这个问题,举例:
# input 输入(问题解决)
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00后')
重新运行,输出正确不报错,如果输入abc,又会报错:
Traceback (most recent call last):
File "D:/z-PycharmProjects/test1/tes9-10/test10-16.py", line 74, in <module>
birth = int(s)
ValueError: invalid literal for int() with base 10: 'abc'
这是因为 int() 函数发现一个字符串不是合法是数字时就会报错,然后程序结束运行。
结束
OK,今天的分享就到这里,下次再抽空分享。