Python教程(2.7)——条件分支
像其它语言一样,Python也有条件分支。
例如,输入用户年龄,可能需要判断是否成年,并做出不同反应。这就需要用到条件分支。
if条件分支
if条件分支的一般格式如下:
if condition:
statements
它的含义是:如果condition为True,则执行statements。通常condition都是一个结果为bool的表达式(前面说过,bool类型在条件判断中很常用)。
例如,有一个表示年龄的变量age,需要通过它判断是否成年(age>=18)。如果成年,输出信息。
if age >= 18:
print('You\'re an adult.')
这里有一个小知识:对于'包裹的字符串,如果字符串里含有',为了让Python将'看作普通字符而不是字符串的结束标识,需要用\'。
要判断是否未成年也很简单,把条件age>=18改成age<18就可以了:
if age < 18:
print('You\'re a teenager.')
if else条件分支
还是上面的例子,可能你希望在age>=18时,输出一些信息,在age<18时,输出一些其它信息。你可能想这么做:
if age >= 18:
print('You\'re an adult.')
if age < 18:
print('You\'re a teenager.')
然而,Python(和其它编程语言)提供了更简洁的途径——if else条件分支。其格式如下:
if condition:
statements1
else:
statements2
if age >= 18:
print('You\'re an adult.')
else:
print('You\'re a teenager.')
if elif else条件分支
可能你还觉得不够,需要判断该年龄是成人、青少年还是儿童。你可能想,可以这样写:
if age >= 18:
print('You\'re an adult.')
else
if age >= 13:
print('You\'re a teenager.')
else:
print('You\'re a child.')
首先,如果age>=18为True,输出"You're an adult.";否则,如果age>=13为True,输出"You're a teenager";否则,输出"You're a child"。
但如果判断再多一些,缩进也会更多,就会很不美观。因此Python提供了if...elif...else...条件分支:
if age >= 18:
print('You\'re an adult.')
elif age >= 13:
print('You\'re a teenager.')
else:
print('You\'re a child.')
elif是else if的简写。注意这里的else是可选的。
如果还需要判断是否是婴儿呢?没关系,继续加elif:
if age >= 18:
print('You\'re an adult.')
else if age >= 13:
print('You\'re a teenager.')
else if age >= 3:
print('You\'re a child.')
else:
print('You\'re a baby.')
交互模式下的条件分支
如果你在交互模式下输入条件分支:
>>> age = 15
>>> if age >= 18:
现在按enter,你会发现命令提示符变了:
...
一般情况下,交互模式的提示符为>>>;如果出现代码块(例如if、if else、if elif else这些),提示符就会变为...。
在Python中,>>>被称为第一提示符(primary prompt),...被称为第二提示符(secondary prompt)。(注:中文是我自己翻译的)
注意在...后面打代码,需要至少一个空格的缩进(我习惯上打一个tab):
>>> if a == 0:
... print('zero')
如果像下面这样:
>>> if a == 0:
... print('zero')
就会有(类似)如下错误:
File "<stdin>", line 2
print('zero')
^
IndentationError: expected an indented block
注意打elif和else时是不使用缩进的:
>>> if a != 0:
... print('non zero')
... else:
... print('zero')
要结束一个条件分支,直接在...后面按下enter就可以了:
>>> if a != 0:
... print('non zero')
...
>>>
注意第三行是个空行,第四行已经出了条件分支了。
注意
Python条件分支的条件也可以是非bool的类型。这种情况下,Python会将条件的值转换成bool类型。例如:
if a:
print('non zero')
else:
print('zero')
这里a会被转换成bool,如果a不为0,转换为True,否则为False。
小结
1. if条件分支:如果条件为True,则执行if后面的代码块,否则不执行。
2. if else条件分支:如果条件为True,则执行if后面的代码块,否则执行else后面的代码块。
3. if elif else条件分支:执行第一个为True的条件后面的代码块,如果没有为True则执行else后面的代码块(如果有)。
4. Python的两种提示符分别为>>>和...。
5. 在交互模式下,条件分支中的代码需要缩进,但if/elif/else不用。
Python教程(2.7)——条件分支的更多相关文章
- Python 工匠:编写条件分支代码的技巧
		
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 作者:朱雷 | 腾讯IEG高级工程师 『Python 工匠』是什么? 我一直觉得编程某种意义是一门『手艺』 ...
 - 初学python(print使用、条件分支、循环、模块引用)
		
import random """ #查看源代码日后爬虫用 import urllib.request # coding=utf-8 url = "http:/ ...
 - Python 编程语言要掌握的技能之一:编写条件分支代码的技巧
		
Python 里的分支代码 Python 支持最为常见的 if/else 条件分支语句,不过它缺少在其他编程语言中常见的 switch/case 语句. 除此之外,Python 还为 for/whil ...
 - Python :编写条件分支代码的技巧
		
『Python 工匠』是什么? 我一直觉得编程某种意义是一门『手艺』,因为优雅而高效的代码,就如同完美的手工艺品一样让人赏心悦目. 在雕琢代码的过程中,有大工程:比如应该用什么架构.哪种设计模式.也有 ...
 - python学习笔记04-了解操作符与条件分支
		
先来了解一下条件操作符: 运算符 描述 示例 == 检查两个操作数的值是否相等,如果是则条件变为真. 如a=3,b=3则(a == b) 为 true. != 检查两个操作数的值是否相等,如果值不相等 ...
 - 《简明python教程》笔记一
		
读<简明Python教程>笔记: 本书的官方网站是www.byteofpython.info 安装就不说了,网上很多,这里就记录下我在安装时的问题,首先到python官网下载,选好安装路 ...
 - (原+转)简明 Python 教程:总结
		
简明 Python 教程 说明:本文只是对<简明Python教程>的一个总结.请搜索该书查看真正的教程. 第3章 最初的步骤 1. Python是大小写敏感的. 2. 在#符号右面的内容 ...
 - 笔记|《简明Python教程》:编程小白的第一本python入门书
		
<简明Python教程>这本书是初级的Python入门教材,初级内容基本覆盖,对高级内容没有做深入纠结.适合刚接触Python的新手,行文比较简洁轻松,读起来也比较顺畅. 下面是我根据各个 ...
 - 从零开始学习PYTHON3讲义(七)条件分支和哥德巴赫猜想
		
<从零开始PYTHON3>第七讲 人生是由无数个选择组成,每个选择都有不同的限定条件.现在来说人生有点早是吧:)不过事实的确是这样的. 程序也充满着选择,满足不同的条件,则运行不同的运算. ...
 
随机推荐
- 初识ElasticSearch
			
概述 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. 分布式的 ...
 - unity 看到Sphere内部,通过Sphere播放全景视频时候遇到的问题
			
Unity创建一Sphere默认是看不到球体内部的,所以需要用 Cull Front 修改剔除的方向,这就会带来一个新的问题,所播放的视频是像镜子一样翻转着的,所以要改变它的UV坐标使其翻转过来 f ...
 - Java 8 lambda初试
			
λ表达式本质上是一个匿名方法.让我们来看下面这个例子: public int add(int x, int y) { return x + y; } 转成λ表达式后是这个样子: (int x, int ...
 - Python全栈之路-Day31
			
1 反射 反射的精髓是通过字符串去获取对象属性的值 1.1 基于类和对象反射的属性 #!/usr/bin/env python # __Author__: "wanyongzhen" ...
 - 一文读懂 HTTP/2 特性
			
HTTP/2 是 HTTP 协议自 1999 年 HTTP 1.1 发布后的首个更新,主要基于 SPDY 协议.由互联网工程任务组(IETF)的 Hypertext Transfer Protocol ...
 - 频繁模式挖掘中Apriori、FP-Growth和Eclat算法的实现和对比
			
最近上数据挖掘的课程,其中学习到了频繁模式挖掘这一章,这章介绍了三种算法,Apriori.FP-Growth和Eclat算法:由于对于不同的数据来说,这三种算法的表现不同,所以我们本次就对这三种算法在 ...
 - 【Spark2.0源码学习】-5.Worker启动
			
Worker作为Endpoint的具体实例,下面我们介绍一下Worker启动以及OnStart指令后的额外工作 一.脚本概览 下面是一个举例: /opt/jdk1..0_79/ ...
 - Net分布式系统之五:微服务架构
			
因工作较忙,抽时间将框架遇到的问题和框架升级设计进行记录. 一.背景&问题 之前框架是一个基于SOA思想设计的分布式框架.各应用通过服务方式提供使用,服务之间通信是RPC方式调用,具体实现基于 ...
 - unity静态批处理原理理解
			
今天主程给我好好讲了一下静态批处理的问题,记下来的笔记心得~ 1.静态批处理的时间点 1)在游戏导出的时候,在player setting中勾选static batching,这样在导出包的时候就进行 ...
 - jQuery图片上传前先在本地预览(不经过后端处理)
			
前段时间遇到一个问题,前端想实现图片上传预览(不经过后端PHP或JAVA处理),用户点击file按钮上传文件,点击确定马上就能看到预览的效果,但在实现的时候无论怎样都取不到file上图片的真实路径,得 ...