跟老齐学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实现简单的TCP代理服务器
Oct 08 Python
在Python编程过程中用单元测试法调试代码的介绍
Apr 02 Python
解密Python中的描述符(descriptor)
Jun 03 Python
浅谈Python 字符串格式化输出(format/printf)
Jul 21 Python
Python 序列的方法总结
Oct 18 Python
Python中Django发送带图片和附件的邮件
Mar 31 Python
深入了解Python中pop和remove的使用方法
Jan 09 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
python序列化与数据持久化实例详解
Dec 20 Python
tensorflow使用range_input_producer多线程读取数据实例
Jan 20 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
解决python对齐错误的方法
Jul 16 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
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
Yii使用migrate命令执行sql语句的方法
2016/03/15 PHP
php实现XML和数组的相互转化功能示例
2017/02/08 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
jquery一般方法介绍 入门参考
2011/06/21 Javascript
jquery miniui 教程 表格控件 合并单元格应用
2012/11/25 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
vue基础之事件v-onclick="函数"用法示例
2019/03/11 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
Python实现的文本编辑器功能示例
2017/06/30 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
Python unittest框架操作实例解析
2020/04/13 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
.NET是怎么支持多种语言的
2015/02/24 面试题
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
酒店中秋节促销方案
2014/01/30 职场文书
银行简历自我评价
2014/02/11 职场文书
产品设计开发计划书
2014/05/07 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
试用期工作表现自我评价
2015/03/06 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js