条件判断

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

比如,输入用户年龄,根据年龄打印不同的内容,在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')

elif是else if的缩写,完全可以有多个elif,所以if语句的完整形式就是:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>

if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else,所以,请测试并解释为什么下面的程序打印的是teenager:

age = 20
if age >= 6:print('teenager')
elif age >= 18:print('adult')
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,结果报错:

Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() > int()

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

s = input('birth: ')
birth = int(s)
if birth < 2000:print('00前')
else:print('00后')

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

Traceback (most recent call last):File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'abc'

原来int()函数发现一个字符串并不是合法的数字时就会报错,程序就退出了。
如何检查并捕获程序运行期的错误呢?后面的错误和调试会讲到。


总结:
1.if-else-elif
2.int()函数

廖雪峰python教程阅读之条件判断相关推荐

  1. python 廖雪峰数据分析统计服_廖雪峰python教程阅读量统计

    统计了下廖老师的python教程各个小节的阅读量(毫无卵用),廖老师网站反爬做的比我们教务系统可是好多了,一定时间内访问次数多会禁止,反正数据量也不多,就慢慢来,基本上也不会对网站造成什么影响. 刚学 ...

  2. 廖雪峰python教程阅读之安装python

    因为Python是跨平台的,它可以运行在Windows.Mac和各种Linux/Unix系统上.在Windows上写Python程序,放到Linux上也是能够运行的. 要开始学习Python编程,首先 ...

  3. Python 3 学习(一)—— 基础:廖雪峰 Python 教程学习笔记

    文章目录 Python教程 值类型和引用类型 列表和字典的基本操作 列表 元组 字典 Set 函数 内置函数 定义函数 空函数 参数检查 定义默认参数要牢记一点:默认参数必须指向不变对象! Pytho ...

  4. 廖雪峰Python教程-笔记

    廖雪峰Python教程 学习范围: Python基础 函数 高级特性 函数性编程 模块 面向对象编程 错误,调试和测试 IO编程 笔记: Python的整数没有大小限制 Python 3的字符串使用U ...

  5. 廖雪峰python教程视频-为什么看不懂廖雪峰的Python学习教程?

    廖雪峰的Python教程已经很友好了,接近于把饭喂到嘴边了. 这不是廖雪峰教程的问题,而是一个基础代码技能和实际应用需求的代码技能差距太远导致的. 如果是新手,只学会了廖雪峰Python教程,那约等于 ...

  6. 廖雪峰python教程完整版-为什么看不懂廖雪峰的Python学习教程?

    廖雪峰的Python教程已经很友好了,接近于把饭喂到嘴边了. 这不是廖雪峰教程的问题,而是一个基础代码技能和实际应用需求的代码技能差距太远导致的. 如果是新手,只学会了廖雪峰Python教程,那约等于 ...

  7. 廖雪峰python教程在哪看_:廖雪峰python教程在哪

    标签,你可以自己查看网页源代码. 廖雪峰的python教程有一点地方没看明白,求指导 题主贴了函数,似乎是一样的,就分析这一个版本:def add_end(L=None): if L is None: ...

  8. 廖雪峰Python教程 实战day05

    廖雪峰Python教程 实战day05 1. Web程序工作流程 本文部分文字内容.图片摘自<Flask Web开发实战:入门.进阶与原理解析>,作者李辉. 在编写自己的Web框架之前,首 ...

  9. 会python再学java要多久_【学过python多久能学会java】廖雪峰python教程要学多久

    自学完廖雪峰python可以找到相关工作吗? 如果只是学完廖雪峰的教程我觉得是不够的,你必须对一些方面有更加深入的实践和学习.我是工作中需要用到python,看了廖雪峰的教程,实现快速开发. 学过py ...

最新文章

  1. 【转】 LDA必读的资料
  2. 计算机科学和Python编程导论(六) 测试与调试
  3. Resolving Problems installing the Java JCE Unlimited Strength Jurisdiction Policy Files package--转
  4. MyBatisPlus条件构造器带条件删除delete使用
  5. Flink SQL Client的Rolling Aggregation实验解析
  6. .NET CoreCLR开发人员指南(上)
  7. JDK 9.0.4 报错:程序包 com.sun.xml.internal.fastinfoset.stax.events 不存在/不可见
  8. linux 和服务通讯,Android 的Activity和Service之间的通信
  9. VirtualBox安装完Linux却进不了系统
  10. mongo快速翻页方法(转载)
  11. 瑞幸之后,又一支中概股自曝:虚增收入,股价盘后大跌
  12. java常用算法_五分钟记住Java常用的八种排序算法与代码实现
  13. APNs Push Notification教程一
  14. Photoshop插件-证件照-白红蓝底-PS插件-脚本开发
  15. 如何利用ikuai将闲置电脑配作软路由器?
  16. uniapp 自定义模板
  17. DISCUZ!X1模板home空间模板修改说明home.php
  18. Java中文分词组件 - word分词
  19. c语言scanf输入无理数,简单C语言scanf输入问题
  20. Hangfire详解

热门文章

  1. 安装 Apache+php+mysql+phpMyAdmin XAMPP及错误解决办法
  2. OpenWRT 学习笔记 -- 用户自定义添加app的开机自启动
  3. 解决springboot项目部署时视上传视频太大导致的内存溢出问题
  4. 【Excel】Excel中实现中文转拼音(自定义函数方式)
  5. LOJ 10155 - 「一本通 5.2 例 3」数字转换
  6. 反爬与反反爬常见知识点
  7. 微信网页版前端源码分析(一)源码结构和公众号处理逻辑
  8. 21届实习腾讯面试的经验贴(已凉)
  9. Java开发高频英语单词800+,熟悉后英文障碍又少了
  10. 生命探测仪能穿墙能探废墟 但不能穿透金属(图)