从零学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中多线程thread与threading的实现方法
Aug 18 Python
python修改注册表终止360进程实例
Oct 13 Python
Python的Django框架中if标签的相关使用
Jul 15 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
Jul 06 Python
Python实现聊天机器人的示例代码
Jul 09 Python
python实现汉诺塔算法
Mar 01 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 Python
pytorch 一行代码查看网络参数总量的实现
May 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 数组使用详解 推荐
2011/06/02 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
php for 循环使用的简单实例
2016/06/02 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
2016/10/29 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
python字符串的常用操作方法小结
2016/05/21 Python
Python设置默认编码为utf8的方法
2016/07/01 Python
Python的时间模块datetime详解
2017/04/17 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
TensorFlow索引与切片的实现方法
2019/11/20 Python
外企C语言笔试题
2013/11/10 面试题
经销商订货会主持词
2014/03/27 职场文书
给上级领导的感谢信
2015/01/22 职场文书
毕业生个人自荐书
2015/03/05 职场文书
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL