Myself
1.Python历史
2.安装Python
2.1.Python解释器
3.第一个Python程序
3.1.使用文本编辑器
3.2.输入和输出
4.Python基础
4.1.数据类型和变量
4.2.字符串和编码
4.3.使用list和tuple
4.4.条件判断
4.5.模式匹配
4.6.循环
4.7.使用dict和set
5.函数
5.1.调用函数
5.2.定义函数
5.3.函数的参数
5.4.递归函数
6.高级特性
6.1.切片
6.2.迭代
6.3.列表生成式
6.4.生成器
6.5.迭代器
7.函数式编程
7.1.高阶函数
7.1.1.map/reduce
7.1.2.filter
7.1.3.sorted
7.2.返回函数
7.3.匿名函数
7.4.装饰器
7.5.偏函数
8.模块
8.1.使用模块
8.2.安装第三方模块
搜索结果
没有相关内容~~
4.4.条件判断
最新修改于
2025-08-07 16:27
计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用 `if`语句实现: ```python age = 20 if age >= 18: print('your age is', age) print('adult') ``` []( "复制到剪贴板") 根据Python的缩进规则,如果 `if`语句判断是 `True`,就把缩进的两行print语句执行了,否则,什么也不做。 也可以给 `if`添加一个 `else`语句,意思是,如果 `if`判断是 `False`,不要执行 `if`的内容,去把 `else`执行了: ```python age = 3 if age >= 18: print('your age is', age) print('adult') else: print('your age is', age) print('teenager') ``` []( "复制到剪贴板") 注意不要少写了冒号 `:`。 当然上面的判断是很粗略的,完全可以用 `elif`做更细致的判断: ```python age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid') ``` []( "复制到剪贴板") `elif`是 `else if`的缩写,完全可以有多个 `elif`,所以 `if`语句的完整形式就是: ```python if : elif : elif : else: ``` []( "复制到剪贴板") `if`语句执行有个特点,它是从上往下判断,如果在某个判断上是 `True`,把该判断对应的语句执行后,就忽略掉剩下的 `elif`和 `else`,所以,请测试并解释为什么下面的程序打印的是 `teenager`: ```python age = 20 if age >= 6: print('teenager') elif age >= 18: print('adult') else: print('kid') ``` []( "复制到剪贴板") `if`判断条件还可以简写,比如写: ```python if x: print('True') ``` []( "复制到剪贴板") 只要 `x`是非零数值、非空字符串、非空list等,就判断为 `True`,否则为 `False`。 ### 再议input 最后看一个有问题的条件判断。很多同学会用 `input()`读取用户的输入,这样可以自己输入,程序运行得更有意思: ```python birth = input('birth: ') if birth ", line 1, in TypeError: unorderable types: str() > int() ``` []( "复制到剪贴板") 这是因为 `input()`返回的数据类型是 `str`,`str`不能直接和整数比较,必须先把 `str`转换成整数。Python提供了 `int()`函数来完成这件事情: ```python s = input('birth: ') birth = int(s) if birth ", line 1, in ValueError: invalid literal for int() with base 10: 'abc' ``` []( "复制到剪贴板") 原来 `int()`函数发现一个字符串并不是合法的数字时就会报错,程序就退出了。 如何检查并捕获程序运行期的错误呢?后面的错误和调试会讲到。 ### 练习 小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数: * 低于18.5:过轻 * 18.5-25:正常 * 25-28:过重 * 28-32:肥胖 * 高于32:严重肥胖 用 `if-elif`判断并打印结果: ```python height = 1.75 weight = 80.5 bmi = ??? if ???: pass ``` []( "复制到剪贴板") ### 参考源码 [do\_if.py](https://liaoxuefeng.com/books/python/basic/if/do_if.py) ### 小结 条件判断可以让计算机自己做选择,Python的if...elif...else很灵活。 条件判断从上向下匹配,当满足条件时执行对应的块内语句,后续的elif和else都不再执行。 
请输入访问密码
开始访问