从零学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每隔N秒运行指定函数的方法
Mar 16 Python
Python中关键字nonlocal和global的声明与解析
Mar 12 Python
深入理解Python中的内置常量
May 20 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
Python下载网络小说实例代码
Feb 03 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
Oct 22 Python
我用Python抓取了7000 多本电子书案例详解
Mar 25 Python
python接口自动化(十六)--参数关联接口后传(详解)
Apr 16 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
python实现三壶谜题的示例详解
Nov 02 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 上传功能实例代码
2010/04/13 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
json数据与字符串的相互转化示例
2013/09/18 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
深入浅析vue组件间事件传递
2017/12/29 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
python实现批量按比例缩放图片效果
2018/03/30 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
国际象棋商店:The Chess Store
2018/07/09 全球购物
伦敦一卡通:The London Pass
2018/11/30 全球购物
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
培训督导岗位职责
2015/04/10 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
Python如何加载模型并查看网络
2022/07/15 Python