python if 语句
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
练习
下面就做一个练习,要求是:
- 接收任何字符和数字的输入
- 判断输入的内容,如果不是整数是字符,就告诉给用户;如果是小数,也告诉用户
- 如果输入的是整数,判断这个整数是奇数还是偶数,并且告诉给用户
在这个练习中,显然要对输入的内容进行判断,以下几点需要看官注意:
- 通过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'
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python|19个优雅的Python编程技巧,涨姿势!
Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。要写出 Pythonic(优雅的、地道的、整洁的)代码,需要多看多学大牛们写的代码,github 上有很多非常优秀的源代码值得阅读,比如:requests、flask、tornado,下面列举一些常见的Pythonic写法。 程序必须先让人读懂,然后才能让计算机执行。 “Programs must be written for people to read, and only incidentally for machines to execute.” 1、交换赋值 2、Unpacking 3、使用操作符in 4、字符串操作 5、字典键值列表 6、字典键值判断 7、字典 get 和 setdefault 方法 8、判断真伪 9、遍历列表以及索引 10、列表推导 11、列表推导-嵌套 12、循环嵌套 13、尽量使用生成器代替列表 小编推荐一个学Python的学习裙【 二二七,四三五,四五零 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!...
- 下一篇
Spring 面试问题 TOP 50
Spring Framework 现在几乎已成为 Java Web 开发的标配框架。那么,作为 Java 程序员,你对 Spring 的主要技术点又掌握了多少呢?不妨用本文的问题来检测一下。 本文内容主要翻译自Top 50 Spring Interview Questions You Must Prepare In 2018 1. 一般问题 1.1. 不同版本的 Spring Framework 有哪些主要功能? 1.2. 什么是 Spring Framework? Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。 它是轻量级、松散耦合的。 它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架。 它可以集成其他框架,如 Structs、Hibernate、EJB 等,所以又称为框架的框架。 1.3. 列举 Spring Framework 的优点。 由于 Spring Frameworks 的分层架构,用户可以自由选择自己需要的组件。 Spring Framework 支持 POJO(Plain Old Java Object...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境