从零学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登陆asp网站页面的实现代码
Jan 14 Python
Python实现简单截取中文字符串的方法
Jun 15 Python
python实现顺序表的简单代码
Sep 28 Python
python判断输入日期为第几天的实例
Nov 13 Python
django2.0扩展用户字段示例
Feb 13 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 Python
Python基础之元组与文件知识总结
May 19 Python
pytorch 如何使用float64训练
May 24 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
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
永不消失的title提示代码
2007/02/15 Javascript
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
详解JS面向对象编程
2016/01/24 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
javascript基于定时器实现进度条功能实例
2017/10/13 Javascript
js实现购物车功能
2018/06/12 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
JS实现打字游戏
2019/12/17 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
详解python中的json和字典dict
2018/06/22 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
Python类成员继承重写的实现
2020/09/16 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
企业军训感言
2014/02/08 职场文书
诚信承诺书
2015/01/19 职场文书
车位出租协议书范本
2016/03/19 职场文书