从零学Python之入门(五)缩进和选择


Posted in Python onMay 27, 2014

缩进

Python最具特色的是用缩进来标明成块的代码。我下面以if选择结构来举例。if后面跟随条件,如果条件成立,则执行归属于if的一个代码块。

先看C语言的表达方式(注意,这是C,不是Python!)

if ( i > 0 )
{
    x = 1;
    y = 2;
}

如果i > 0的话,我们将进行括号中所包括的两个赋值操作。括号中包含的就是块操作,它隶属于if。

在Python中,同样的目的,这段话是这样的

if i > 0:
    x = 1
    y = 2

在Python中, 去掉了i > 0周围的括号,去除了每个语句句尾的分号,表示块的花括号也消失了。

多出来了if ...之后的:(冒号), 还有就是x = 1 和 y =2前面有四个空格的缩进。通过缩进,Python识别出这两个语句是隶属于if。

Python这样设计的理由纯粹是为了程序好看。

if语句

写一个完整的程序,命名为ifDemo.py。这个程序用于实现if结构。

i = 1
x = 1
if i > 0:
    x = x+1
print x

$python ifDemo.py  # 运行

程序运行到if的时候,条件为True,因此执行x = x+1,。

print x语句没有缩进,那么就是if之外。

如果将第一句改成i = -1,那么if遇到假值 (False), x = x+1隶属于if, 这一句跳过。 print x没有缩进,是if之外,不跳过,继续执行。

这种以四个空格的缩进来表示隶属关系的书写方式,以后还会看到。强制缩进增强了程序的可读性。

复杂一些的if选择:

i = 1
if i > 0:
    print 'positive i'
    i = i + 1
elif i == 0:
    print 'i is 0'
    i = i * 10
else:
    print 'negative i'
    i = i - 1
print 'new i:',i

这里有三个块,分别属于if, elif, else引领。
Python检测条件,如果发现if的条件为假,那么跳过后面紧跟的块,检测下一个elif的条件; 如果还是假,那么执行else块。
通过上面的结构将程序分出三个分支。程序根据条件,只执行三个分支中的一个。

整个if可以放在另一个if语句中,也就是if结构的嵌套使用:

i  = 5
if i > 1:
    print 'i bigger than 1'
    print 'good'
    if i > 2:
        print 'i bigger than 2'
        print 'even better'

if i > 2 后面的块相对于该if缩进了四个空格,以表明其隶属于该if,而不是外层的if。

总结

if语句之后的冒号

以四个空格的缩进来表示隶属关系, Python中不能随意缩进

if  <条件1>:
    statement
elif <条件2>:
    statement
elif <条件3>:
    statement
else:
    statement
Python 相关文章推荐
python下os模块强大的重命名方法renames详解
Mar 07 Python
python中闭包Closure函数作为返回值的方法示例
Dec 17 Python
详解python中的装饰器
Jul 10 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
python解析命令行参数的三种方法详解
Nov 29 Python
Python动态声明变量赋值代码实例
Dec 30 Python
如何给Python代码进行加密
Jan 10 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
python代码能做成软件吗
Jul 24 Python
Python 爬虫性能相关总结
Aug 03 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 Python
python全面解析接口返回数据
Feb 12 Python
从零学Python之入门(四)运算
May 27 #Python
一则python3的简单爬虫代码
May 26 #Python
从零学Python之入门(三)序列
May 25 #Python
从零学Python之入门(二)基本数据类型
May 25 #Python
Python tempfile模块学习笔记(临时文件)
May 25 #Python
Python logging模块学习笔记
May 24 #Python
Python学习笔记之常用函数及说明
May 23 #Python
You might like
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
php注册登录系统简化版
2020/12/28 PHP
PHP处理数组和XML之间的互相转换
2016/06/02 PHP
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
2016/11/20 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
解决python线程卡死的问题
2019/02/18 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
有abstract方法的类一定要用abstract修饰吗
2016/03/14 面试题
应届大学生求职信
2014/07/20 职场文书
同学会邀请函模板
2015/01/30 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
六一儿童节主持开场白
2015/05/28 职场文书
在职证明范本
2015/06/15 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书
python实现自定义日志的具体方法
2021/05/28 Python