从零学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使用Flask框架同时上传多个文件的方法
Mar 21 Python
python中lambda与def用法对比实例分析
Apr 30 Python
python虚拟环境virtualenv的安装与使用
Sep 21 Python
如何优雅地改进Django中的模板碎片缓存详解
Jul 04 Python
Django压缩静态文件的实现方法详析
Aug 26 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
对Django外键关系的描述
Jul 26 Python
Python Django 前后端分离 API的方法
Aug 28 Python
Python StringIO如何在内存中读写str
Jan 07 Python
使用Python实现牛顿法求极值
Feb 10 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
python 常见的排序算法实现汇总
Aug 21 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
咖啡常见的种类
2021/03/03 新手入门
php数字转汉字代码(算法)
2011/10/08 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
2016/11/16 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
js文件包含的几种方式介绍
2014/09/28 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
Python中下划线的使用方法
2015/03/27 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
基于python实现学生信息管理系统
2019/11/22 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
python实现磁盘日志清理的示例
2020/11/05 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
入党自我鉴定范文
2013/10/04 职场文书
企业项目策划书
2014/01/11 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
企业节能减排实施方案
2014/03/19 职场文书
荷叶母亲教学反思
2014/04/30 职场文书
国庆促销活动总结
2014/08/29 职场文书
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL