Python中的条件判断语句基础学习教程


Posted in Python onFebruary 07, 2016

if语句用来检验一个条件, 如果 条件为真,我们运行一块语句(称为 if-块 ), 否则 我们处理另外一块语句(称为 else-块 )。 else 从句是可选的。

使用if语句:

#!/usr/bin/python
# Filename: if.py 

number = 23
guess = int(raw_input('Enter an integer : '))

if guess == number:
 print 'Congratulations, you guessed it.' # New block starts here
 print "(but you do not win any prizes!)" # New block ends here
elif guess < number:
 print 'No, it is a little higher than that' # Another block
 # You can do whatever you want in a block ...
else:
 print 'No, it is a little lower than that' 
 # you must have guess > number to reach here

print 'Done'
# This last statement is always executed, after the if statement is executed

输出:

$ python if.py
Enter an integer : 50
No, it is a little lower than that
Done
$ python if.py
Enter an integer : 22
No, it is a little higher than that
Done
$ python if.py
Enter an integer : 23
Congratulations, you guessed it.
(but you do not win any prizes!)
Done

在这个程序中,我们从用户处得到猜测的数,然后检验这个数是否是我们手中的那个。我们把变量number设置为我们想要的任何整数,在这个例子中是23。然后,我们使用raw_input()函数取得用户猜测的数字。函数只是重用的程序段。
我们为内建的raw_input函数提供一个字符串,这个字符串被打印在屏幕上,然后等待用户的输入。一旦我们输入一些东西,然后按回车键之后,函数返回输入。对于raw_input函数来说是一个字符串。我们通过int把这个字符串转换为整数,并把它存储在变量guess中。事实上,int是一个类,不过你想在对它所需了解的只是它把一个字符串转换为一个整数(假设这个字符串含有一个有效的整数文本信息)。

接下来,我们将用户的猜测与我们选择的数做比较。如果他们相等,我们打印一个成功的消息。注意我们使用了缩进层次来告诉Python每个语句分别属于哪一个块。这就是为什么缩进在Python如此重要的原因。我希望你能够坚持“每个缩进层一个制表符”的规则。你是这样的吗?

注意if语句在结尾处包含一个冒号——我们通过它告诉Python下面跟着一个语句块。

然后,我们检验猜测是否小于我们的数,如果是这样的,我们告诉用户它的猜测大了一点。我们在这里使用的是elif从句,它事实上把两个相关联的if else-if else语句合并为一个if-elif-else语句。这使得程序更加简单,并且减少了所需的缩进数量。

elif和else从句都必须在逻辑行结尾处有一个冒号,下面跟着一个相应的语句块(当然还包括正确的缩进)。

你也可以在一个if块中使用另外一个if语句,等等——这被称为嵌套的if语句。

记住,elif和else部分是可选的。一个最简单的有效if语句是:

if True:
 print 'Yes, it is true'

在Python执行完一个完整的if语句以及与它相关联的elif和else从句之后,它移向if语句块的下一个语句。在这个例子中,这个语句块是主块。程序从主块开始执行,而下一个语句是print 'Done'语句。在这之后,Python看到程序的结尾,简单的结束运行。

尽管这是一个非常简单的程序,但是我已经在这个简单的程序中指出了许多你应该注意的地方。所有这些都是十分直接了当的(对于那些拥有C/C++背景的用户来说是尤为简单的)。它们在开始时会引起你的注意,但是以后你会对它们感到熟悉、“自然”。

下面我们再来看一个代码实例:

#! /usr/bin/env python
#coding:utf-8

print "请输入任意一个整数数字:"

number = int(raw_input()) #通过 raw_input()输入的数字是字符串
    #用 int()将该字符串转化为整数

if number == 10:
 print "您输入的数字是:%d"%number
 print "You are SMART."
elif number > 10:
 print "您输入的数字是:%d"%number
 print "This number is more than 10."
elif number < 10:
 print "您输入的数字是:%d"%number
 print "This number is less than 10."
else:
 print "Are you a human?"

 
特别提醒看官注意,前面我们已经用过 raw_input() 函数了,这个是获得用户在界面上输入的信息,而通过它得到的是字符串类型的数据。

上述程序,依据条件进行判断,不同条件下做不同的事情了。需要提醒的是在条件中:number == 10,为了阅读方便,在 number 和 == 之间有一个空格最好了,同理,后面也有一个。这里的 10,是 int 类型,number 也是 int 类型.

把这段程序保存成一个扩展名是.py 的文件,比如保存为 num.py,进入到存储这个文件的目录,运行 Python num.py,就能看到程序执行结果了。下面是我执行的结果,供参考。

$ Python num.py
请输入任意一个整数数字:
12

您输入的数字是:12
This number is more than 10.
$ Python num.py
请输入任意一个整数数字:
10

您输入的数字是:10
You are SMART.
$ Python num.py
请输入任意一个整数数字:
9

您输入的数字是:9
This number is less than 10.

不知道各位是否注意到,上面的那段代码,开始有一行:

#! /usr/bin/env python

这是什么意思呢?

这句话以 # 开头,表示本来不在程序中运行。这句话的用途是告诉机器寻找到该设备上的 Python 解释器,操作系统使用它找到的解释器来运行文件中的程序代码。有的程序里写的是 /usr/bin Python,表示 Python 解释器在 /usr/bin 里面。但是,如果写成 /usr/bin/env,则表示要通过系统搜索路径寻找 Python 解释器。不同系统,可能解释器的位置不同,所以这种方式能够让代码更将拥有可移植性。对了,以上是对 Unix 系列操作系统而言。对与 windows 系统,这句话就当不存在。

在“条件”中,就是上节提到的各种条件运算表达式,如果是 True,就执行该条件下的语句。

三元操作符
三元操作,是条件语句中比较简练的一种赋值方式,它的模样是这样的:

>>> name = "qiwsir" if "laoqi" else "github"
>>> name
'qiwsir'
>>> name = 'qiwsir' if "" else "python"
>>> name
'Python'
>>> name = "qiwsir" if "github" else ""
>>> name
'qiwsir'

总结一下:A = Y if X else Z

什么意思,结合前面的例子,可以看出:

  • 如果 X 为真,那么就执行 A=Y
  • 如果 X 为假,就执行 A=Z

如此例

>>> x = 2
>>> y = 8
>>> a = "python" if x>y else "qiwsir"
>>> a
'qiwsir'
>>> b = "python" if x<y else "qiwsir"
>>> b
'python'
Python 相关文章推荐
在Django的视图中使用form对象的方法
Jul 18 Python
python PIL模块与随机生成中文验证码
Feb 27 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
python将处理好的图像保存到指定目录下的方法
Jan 10 Python
python 实现识别图片上的数字
Jul 30 Python
Django ORM filter() 的运用详解
May 14 Python
Python轻量级web框架bottle使用方法解析
Jun 13 Python
python爬取音频下载的示例代码
Oct 19 Python
Python关于OS文件目录处理的实例分享
May 23 Python
python tqdm用法及实例详解
Jun 16 Python
浅谈Python中的正则表达式
Jun 28 Python
Python模拟登录验证码(代码简单)
Feb 06 #Python
Python上传package到Pypi(代码简单)
Feb 06 #Python
深入讲解Java编程中类的生命周期
Feb 05 #Python
python&amp;MongoDB爬取图书馆借阅记录
Feb 05 #Python
Python中常用操作字符串的函数与方法总结
Feb 04 #Python
Python中的字符串类型基本知识学习教程
Feb 04 #Python
Python的math模块中的常用数学函数整理
Feb 04 #Python
You might like
php smarty模板引擎的6个小技巧
2014/04/24 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
在网页里看flash的trace数据的js类
2009/01/10 Javascript
javascript 命名规则 变量命名规则
2010/02/25 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
JS实现点击掉落特效
2021/01/29 Javascript
Python中使用glob和rmtree删除目录子目录及所有文件的例子
2014/11/21 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
医学护理毕业生自荐信
2013/11/07 职场文书
班级入场式解说词
2014/02/01 职场文书
小学远程教育工作总结
2015/08/13 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS