跟老齐学Python之复习if语句


Posted in Python onOctober 02, 2014

基本语句结构

if 判断条件1:

    执行语句1……

elif 判断条件2:

    执行语句2……

elif 判断条件3:

    执行语句3……

else:

    执行语句4……

只有当“判断条件”的值是True的时候,才执行下面的执行语句。

那么,在python中,怎么知道一个判断条件是不是真呢?这个问题我们在眼花缭乱的运算符中已经讲解了一种数据类型:布尔类型。可以通过一个内置函数bool()来判断一个条件的结果True还是False。看看下面的例子,是不是能够理解bool()的判断规则?

>>> bool("")

False

>>> bool(0)

False

>>> bool('none')

True

>>> bool(False)

False

>>> bool("False")

True

>>> bool(True)

True

>>> bool("True")

True

>>> bool(3>4)

False

>>> bool("b">"a")

True

>>> bool(not "")

True

>>> bool(not True)

False

忘记了怎么办?看下面的语句:

if 忘记:
    复习-->眼花缭乱的运算符一讲
在执行语句中,其实不一定非要把bool()写上的。如同这样:

>>> x = 9
>>> if bool(x>7):       #条件为True则执行下面的

...     print "%d more than 7"%x

... else:

...     print "%d not more than 7"%x

... 

9 more than 7
>>> if x>7:

...     print "%d more than 7"%x

... else:

...     print "%d not more than 7"%x

... 

9 more than 7

以上两个写法是等效的,但是,在实际的编程中,我们不用if bool(x>7)的格式,而是使用if x>7的样式,还要特别提醒,如果写成if (x>7),用一个括号把条件表达式括起来,是不是可以呢?可以,但也不是python提倡的。

>>> if (x>7):       #不提倡这么写,这不是python风格

...     print "%d more than 7"%x

... 

9 more than 7

拉出来溜溜

平时总有人在不服气的时候说“是骡子是马,拉出来溜溜”,赵本山有一句名言“走两步”。其本质都是说“光说不练是假把式”。今天收到一个朋友的邮件,也询问,在学习python的时候,记不住python的内容。其实不用记,我在前面的课程中已经反复讲过了。但是,在应用中,会越来越熟练。

下面就做一个练习,要求是:

接收任何字符和数字的输入
判断输入的内容,如果不是整数是字符,就告诉给用户;如果是小数,也告诉用户
如果输入的是整数,判断这个整数是奇数还是偶数,并且告诉给用户
在这个练习中,显然要对输入的内容进行判断,以下几点需要看官注意:

通过raw_input()得到的输入内容,都是str类型
要判断一个字符串是否是由纯粹数字组成,可以使用str.isdigit()(建议看官查看该内置函数官方文档)
下面的代码是一个参考:

#! /usr/bin/env python

#coding:utf-8
print "请输入字符串,然后按下回车键:"
user_input = raw_input()
result = user_input.isdigit()
if not result:

    print "您输入的不完全是数字"
elif int(user_input)%2==0:

    print "您输入的是一个偶数"

elif int(user_input)%2!=0:

    print "您输入的是一个奇数"

else:

    print "您没有输入什么呢吧"

特别提醒列为,这个代码不是非常完善的,还有能够修改的地方,看官能否完善之?

再来一个如何?

已知一个由整数构成的list,从中跳出奇数和偶数,并且各放在一个list中。

请看官在看下面的参考代码之前,自己写一写。

#!/usr/bin/env python

#coding:utf-8
import random
numbers = [random.randint(1,100) for i in range(20)] #以list解析的方式得到随机的list
odd = []

even = []
for x in numbers:

    if x%2==0:

        even.append(x)

    else:

        odd.append(x)
print numbers

print "odd:",odd

print "even:",even

用这个例子演示一下if在list解析中的应用。看能不能继续改进一些呢?

可以将循环的那部分用下面的list解析代替

#!/usr/bin/env python

#coding:utf-8
import random
numbers = [random.randint(1,100) for i in range(20)] #以list解析的方式得到随机的list
odd = [x for x in numbers if x%2!=0]

even = [x for x in numbers if x%2==0]
print numbers

print "odd:",odd

print "even:",even

一个有趣的赋值

对赋值,看官应该比较熟悉了吧,如果要复习,请看《[赋值,简单也不简单]》(./127.md)以及《[正规地说一句]》(./201.md)的相关内容。

这里说的有趣赋值是什么样子的呢?请看:

>>> 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
再看看上面的例子,是不是这样执行呢?

if语句似乎简单,但是在编程时间中常用到。勤加练习吧。

Python 相关文章推荐
python基础教程之lambda表达式使用方法
Feb 12 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
Python 网页解析HTMLParse的实例详解
Aug 10 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
python机器学习之KNN分类算法
Aug 29 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
深入理解Django-Signals信号量
Feb 19 Python
Python 用turtle实现用正方形画圆的例子
Nov 21 Python
Python实现桌面翻译工具【新手必学】
Feb 12 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 29 Python
基于Python实现的购物商城管理系统
Apr 27 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 Python
python中pycurl库的用法实例
Sep 30 #Python
python采用getopt解析命令行输入参数实例
Sep 30 #Python
Python实现115网盘自动下载的方法
Sep 30 #Python
python打开网页和暂停实例
Sep 30 #Python
Python解析网页源代码中的115网盘链接实例
Sep 30 #Python
python网络编程之读取网站根目录实例
Sep 30 #Python
python中sets模块的用法实例
Sep 30 #Python
You might like
在smarty中调用php内置函数的方法
2013/02/07 PHP
php查找任何页面上的所有链接的方法
2013/12/03 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
PHP把小数转成整数3种方法
2014/06/30 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
PHP可变变量学习小结
2015/11/29 PHP
在php中设置session用memcache来存储的方法总结
2016/01/14 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
JS实现数组去重及数组内对象去重功能示例
2019/02/02 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
python根据经纬度计算距离示例
2014/02/16 Python
python实现rest请求api示例
2014/04/22 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
Python 一句话生成字母表的方法
2019/01/02 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
安全检查验收制度
2014/01/12 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
运动会开幕词
2015/01/28 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
爱国之歌(8首)
2019/09/29 职场文书