您现在的位置是:首页 > 文章详情

python if 语句

日期:2018-12-03点击:319

if语句

基本语句结构

if 判断条件1: 执行语句1…… elif 判断条件2: 执行语句2…… elif 判断条件3: 执行语句3…… else: 执行语句4……

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

那么,在python中,怎么知道一个判断条件是不是真呢?可以通过一个内置函数bool()来判断一个条件的结果True还是False。看看下面的例子

>>> 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 

在执行语句中,其实不一定非要把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 

练习

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

  1. 接收任何字符和数字的输入
  2. 判断输入的内容,如果不是整数是字符,就告诉给用户;如果是小数,也告诉用户
  3. 如果输入的是整数,判断这个整数是奇数还是偶数,并且告诉给用户

在这个练习中,显然要对输入的内容进行判断,以下几点需要看官注意:

  • 通过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 

一个有趣的赋值--三元操作符

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

>>> name = "hiekay" if "hi" else "github" >>> name 'hiekay' >>> name = 'hiekay' if "" else "python" >>> name 'python' >>> name = "hiekay" if "github" else "" >>> name 'hiekay' 

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

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

  • 如果X为真,那么就执行A=Y
  • 如果X为假,就执行A=Z
 x = 2 y = 8 a = "python" if x>y else "hiekay" a 'hu' b = "python" if x<y else "hiekay" b 'python'
原文链接:https://yq.aliyun.com/articles/674876
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章