跟老齐学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基础教程之基本数据类型和变量声明介绍
Aug 29 Python
理解Python垃圾回收机制
Feb 12 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
python使用mysql的两种使用方式
Mar 07 Python
Django学习笔记之为Model添加Action
Apr 30 Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 Python
python实现while循环打印星星的四种形状
Nov 23 Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 Python
Pandas读取csv时如何设置列名
Jun 02 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 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
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
PHP中->和=>的含义及使用示例解析
2020/08/06 PHP
js 日期转换成中文格式的函数
2009/07/07 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
python实现代码行数统计示例分享
2014/02/10 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
介绍一下RMI的基本概念
2016/12/17 面试题
人事行政主管岗位职责
2013/12/22 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
计算机网络专业自荐信
2014/07/04 职场文书