从零学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下载Bing图片(代码)
Nov 07 Python
Python的GUI框架PySide的安装配置教程
Feb 16 Python
python3设计模式之简单工厂模式
Oct 17 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
详解Python中的测试工具
Jun 09 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
Sep 04 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
深入了解Python装饰器的高级用法
Aug 13 Python
Python通过类的组合模拟街道红绿灯
Sep 16 Python
python中字典增加和删除使用方法
Sep 30 Python
python uuid生成唯一id或str的最简单案例
Jan 13 Python
python中urllib包的网络请求教程
Apr 19 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网页游戏学习之Xnova(ogame)源码解读(十四)
2014/06/26 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
JScript的条件编译
2007/05/29 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
2016/12/21 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
JavaScript的继承实现小结
2017/05/07 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
[53:15]Mineski vs iG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python多线程扫描端口代码示例
2018/02/09 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
python生成ppt的方法
2018/06/07 Python
python程序变成软件的实操方法
2019/06/24 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
Django密码存储策略分析
2020/01/09 Python
Python configparser模块常用方法解析
2020/05/22 Python
pandas分批读取大数据集教程
2020/06/06 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
英国在线购买马术服装:EQUUS
2019/07/12 全球购物
教师个人学习总结
2015/02/11 职场文书
党小组考察意见
2015/06/02 职场文书
八月一日观后感
2015/06/10 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
Python PIL按比例裁剪图片
2022/05/11 Python