同C语言,C++语言一样,Python也有条件判断和循环
一:条件判断
python格式要求:
1.条件判断后必须加冒号结束
2.执行语句必须有缩紧(必须是英文输入法下的缩进)
- 单分支判断
#测试简单的if-else
age=20
if age>18:
print('adult')
else:
print('teenager')
zhengyoncongdeMacBook-Pro:python zhengyoncong$ ./if.py
aduat
- 多分枝判断
age = 30
if age >= 6:
print('teenager')
elif age>=18:
print('adult')
else:
print('kid')
zhengyoncongdeMacBook-Pro:python zhengyoncong$ ./if.py
adult
teenager
3.if判断条件还可以简写,比如写:
if判断条件还可以简写,比如写:
#只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
if x:
print('True')
例如:
#空列表
b=[]
if b:
print('list is true')
else:
print('list is null')
zhengyoncongdeMacBook-Pro:python zhengyoncong$ ./if.py
list is null
3.python语句特殊点;
来看例子:
age = 20
if age >= 6:
print('teenager')
elif age >= 18:
print('adult')
else:
print('kid')
输出:
zhengyoncongdeMacBook-Pro:python zhengyoncong$ ./if.py
teenager
为什么只打印出teenager尼?
因为python在执行if语句时,它是自上而下判断的,如果在某个判断上为真,则把对应的语句执行完之后,就忽略掉剩下的elif 和else了
,所以只会出现teenager.
input()输入函数
有时候难免我们想通过用户自己输入来作为判断的依据,就会想到用input()函数来接受输入的参数。
birth = input('birth: ')
if birth < 2000:
print('00前')
else:
print('00后')
运行:
zhengyoncongdeMacBook-Pro:python zhengyoncong$ ./if.py
birth: 3000
Traceback (most recent call last):
File "./if.py", line 3, in <module>
if birth < 2000:
TypeError: '<' not supported between instances of 'str' and 'int'
出现报错了,这个错误的意思是说无法将字符类型转换成int类型,出现这个原因是因为input()函数返回的数据类型是str类型,str类型无法和int类型作比较,要比较必须将str转换成int类型,python提供一个int()可以满足这个要求
改正之后:
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00后')
运行,
zhengyoncongdeMacBook-Pro:python zhengyoncong$ ./if.py
birth: 1999
00前
但是这种情况下只能输入字符数字,如果输入abc,依然会报错。因为int()会检查字符串如果不是一个合法的字符串时就会报错,程序就会退出
如下:
zhengyoncongdeMacBook-Pro:python zhengyoncong$ ./if.py
birth: abc
Traceback (most recent call last):
File "./if.py", line 4, in <module>
birth=int(s)
ValueError: invalid literal for int() with base 10: 'abc'
本文小结:
python条件判断从上而下判断,当执行到某个条件为真时,后面的elif和else都会忽略
input()函数返回的数据类型时字符,int()将字符转换成int类型,会判断字符是否是合法的字符数字。