从零学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二维码生成库qrcode安装和使用示例
Dec 16 Python
Python2.x版本中cmp()方法的使用教程
May 14 Python
python中将函数赋值给变量时需要注意的一些问题
Aug 18 Python
python实现kMeans算法
Dec 21 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
一看就懂得Python的math模块
Oct 21 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
基于python实现语音录入识别代码实例
Jan 17 Python
Python使用sqlite3模块内置数据库
May 07 Python
django 利用Q对象与F对象进行查询的实现
May 15 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
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
php实现三级级联下拉框
2016/04/17 PHP
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
PHP学习笔记之session
2018/05/06 PHP
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
[17:36]VG战队纪录片
2014/08/21 DOTA
python实现计算资源图标crc值的方法
2014/10/05 Python
Python学习思维导图(必看篇)
2017/06/26 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
Python实战购物车项目的实现参考
2019/02/20 Python
python tornado使用流生成图片的例子
2019/11/18 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
教师演讲稿大全
2014/05/16 职场文书
兽医医药专业求职信
2014/07/27 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
教师节慰问信
2015/02/15 职场文书
试用期工作表现自我评价
2015/03/06 职场文书