看官是否记得,在上一部分的时候,有一讲专门介绍if语句的:从if开始语句的征程。在学习if语句的时候,对python编程的基础知识了解的还不是不少,或许没有作什么太复杂的东西。本讲,要对它进行一番复习,经过复习提升一下。若是此前有的东西忘记了,建议首先回头,看看前面那讲。python
if 判断条件1: 执行语句1…… elif 判断条件2: 执行语句2…… elif 判断条件3: 执行语句3…… else: 执行语句4……
只有当“判断条件”的值是True的时候,才执行下面的执行语句。git
那么,在python中,怎么知道一个判断条件是否是真呢?这个问题咱们在眼花缭乱的运算符中已经讲解了一种数据类型:布尔类型。能够经过一个内置函数bool()来判断一个条件的结果True仍是False。看看下面的例子,是否是可以理解bool()的判断规则?github
>>> 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()写上的。如同这样:app
>>> 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提倡的。dom
>>> if (x>7): #不提倡这么写,这不是python风格 ... print "%d more than 7"%x ... 9 more than 7
平时总有人在不服气的时候说“是骡子是马,拉出来溜溜”,赵本山有一句名言“走两步”。其本质都是说“光说不练是假把式”。今天收到一个朋友的邮件,也询问,在学习python的时候,记不住python的内容。其实不用记,我在前面的课程中已经反复讲过了。可是,在应用中,会愈来愈熟练。函数
下面就作一个练习,要求是:学习
在这个练习中,显然要对输入的内容进行判断,如下几点须要看官注意:code
下面的代码是一个参考:教程
#! /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
什么意思,结合前面的例子,能够看出:
再看看上面的例子,是否是这样执行呢?
if语句彷佛简单,可是在编程时间中经常使用到。勤加练习吧。