条件判断

条件判断

计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。

elifelse if的缩写,完全可以有多个elif,所以if语句的完整形式就是:

if <条件判断1>:    

<执行1>

elif <条件判断2>:    

<执行2>elif 

<条件判断3>:    

<执行3>else:    

<执行4>

比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现:

age = 20

if age >= 18:    

print('your age is', age)    

print('adult')

根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做。

也可以给if添加一个else语句,意思是,如果if判断是False,不要执行if的内容,去把else执行了:

age = 3

if age >= 18:    

print('your age is', age)    

print('adult')

else:    

print('your age is', age)    

print('teenager')

注意不要少写了冒号:

当然上面的判断是很粗略的,完全可以用elif做更细致的判断:

age = 3

if age >= 18:    

print('adult')

elif age >= 6:    

print('teenager')

else:    

print('kid')

if判断条件还可以简写,比如写:

if x:    

print('True')

只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False

input陷阱

最后看一个有问题的条件判断。很多同学会用input()读取用户的输入,这样可以自己输入,程序运行得更有意思:

birth = input('birth: ')

if birth < 2000:    

print('00前')

else:    

print('00后')

输入1982,结果报错:


这是因为input()返回的数据类型是strstr不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情:

s = input('birth: '

birth = int(s)

if birth < 2000:    

print('00前')

else:    

print('00后')

再次运行,就可以得到正确地结果。但是,如果输入abc呢?又会得到一个错误信息:

Traceback (most recent calllast):  File "", line 1in <module> ValueError: invalid literal forint() with base 10'abc'

原来int()函数发现一个字符串并不是合法的数字时就会报错,程序就退出了。

如何检查并捕获程序运行期的错误呢?后面笔记中会讲到哦。

常用的数据类型转换

函数

说明

int(x [,base ])

将x转换为一个整数

long(x [,base ])

将x转换为一个长整数

float(x )

将x转换到一个浮点数

complex(real [,imag ])

创建一个复数

str(x )

将对象 x 转换为字符串

repr(x )

将对象 x 转换为表达式字符串

eval(str )

用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s )

将序列 s 转换为一个元组

list(s )

将序列 s 转换为一个列表

chr(x )

将一个整数转换为一个字符

unichr(x )

将一个整数转换为Unicode字符

ord(x )

将一个字符转换为它的整数值

hex(x )

将一个整数转换为一个十六进制字符串

oct(x )

将一个整数转换为一个八进制字符串

if嵌套的格式

if 条件1:        

满足条件1 做的事情1        

满足条件1 做的事情2        

...(省略)...        

if 条件2:            

满足条件2 做的事情1            

满足条件2 做的事情2            

...(省略)...

  • 说明

  • 外层的if判断,也可以是if-else

  • 内层的if判断,也可以是if-else

  • 根据实际开发的情况,进行选择

比较(即关系)运算符

python中的比较运算符如下表

运算符

描述

示例

==

检查两个操作数的值是否相等,如果是则条件变为真。

如a=3,b=3则(a == b) 为 true.

!=

检查两个操作数的值是否相等,如果值不相等,则条件变为真。

如a=1,b=3则(a != b) 为 true.

<>

检查两个操作数的值是否相等,如果值不相等,则条件变为真。

如a=1,b=3则(a <> b) 为 true。这个类似于 != 运算符

>

检查左操作数的值是否大于右操作数的值,如果是,则条件成立。

如a=7,b=3则(a > b) 为 true.

<

检查左操作数的值是否小于右操作数的值,如果是,则条件成立。

如a=7,b=3则(a < b) 为 false.

>=

检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。

如a=3,b=3则(a >= b) 为 true.

<=

检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。

如a=3,b=3则(a <= b) 为 true.

逻辑运算符

运算符

逻辑表达式

描述

实例

and

x and y

布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。

(a and b) 返回 20。

or

x or y

布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。

(a or b) 返回 10。

not

not x

布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

not(a and b) 返回 False

特殊的真和假

真和假

0

非0

“”

None

[]

()

{}

这里有几个小练习哦

1、要求:从键盘输入刀子的长度,如果刀子长度没有超过10cm,则允许上火车,否则不允许上火车

2、小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:

  • 低于18.5:过轻

  • 18.5-25:正常

  • 25-28:过重

  • 28-32:肥胖

  • 高于32:严重肥胖

用if-elif判断并打印结果:

3、

情节描述:上公交车,并且可以有座位坐下

要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果空座位的数量大于0,就可以坐下


你可能感兴趣的:(python)