目录

  • 目录
  • 前言
  • 软件环境
  • If 语句
  • While循环
    • break
    • continue
  • for 循环
    • 遍历String
    • 遍历Tuple
    • 遍历List
    • 遍历Dictionary
  • 最后

前言

控制流语句用于改变程序语句流(默认为自上而下顺序执行)的执行顺序,其中Python的基本控制流语句,主要有以下3种:
1. if 语句:根据条件返回的结果执行相应的代码块
2. for 循环:通过遍历容器对象的索引来实现循环
3. while 循环:根据条件返回是否为True来判断是否执行循环体
在本篇中主要会介绍Python中控制流语句,以及一些在应用上的经验。

软件环境

  • 系统

    • Ubuntukylin 14.04
  • 软件
    • Python 2.7.6
    • IPython 4.0.0

If 语句

语法格式:

if expression1:代码块  #expression1 == True
elif expression2:代码块  #expression1 == False and expression2 == True
else:代码块  #expression2 == False

If语句可以根据expression的bool值来执行相应的代码组。需要注意的是,在Python中并没有switch..case语句来实现定值判断。但是可以使用elif语句和‘ == ’来实现类似的效果。
代码组:以关键字开始的缩进相同的一组代码组成的代码块。其中首行句末的 : 号标识代码块的开始。即是在Python语法中,以关键字为首的语句行中必须以 : 结尾。
一个域值判断的小例子:

In [21]: %%file ifTest.py
#!/usr/bin/env python
#coding=utf8
number1 = 10
number2 = int(raw_input("Ple enter a number:"))
if number2 < number1 :print "<"
elif number2 > number1 :print ">"
else :print "="
print "Done"

Output :

In [30]: run ifTest.py
Ple enter a number:20
>
DoneIn [31]: run ifTest.py
Ple enter a number:1
<
DoneIn [32]: run ifTest.py
Ple enter a number:10
=
Done

注意:在if语句中的expression可以充分利用Python的运算、比较、逻辑等运算符来满足判断条件的需求。if语句根本上只在乎表达式最终返回的结果是 True or False 。同时,在Python的真值表中0表示False,非0表示True。请参考Pyethon运算符详解:http://blog.csdn.net/jmilk/article/details/48666475

While循环

语法格式:

while expression:代码块   #expression == True
else:代码块   #expression == False

While语句需要根据expression的返回值来判断是否继续执行循环。值得注意的是,为了避免永循环的出现,一般需要写入控制循环次数或终止循环的条件。即是在循环过程中需要有expression == False的时候,而且当循环条件为False时,则执行else代码块。当然else语句是可选的,else代码块一般用于实现循环结束后的清理工作。同时While循环也可以使用下面的附加语句来实现循环中断。
NOTE: else 关键字存在时也不一定必须执行,当 while 循环中有 break 时, else 不执行。

break

break语句会令语句流跳到循环体外,以此来提前终止循环,接着执行循环下面的语句。
Note在嵌套循环中,break语句只会跳出本层循环,而不会跳出外层循环
注意:通常结合if语句来实现:当满足条件时,则退出循环。下面是一个小例子:

In [12]: cat breakTest.py
#!/usr/bin/env python
#coding=utf8
i = 0
while True:print "%d" % i ,i += 1if i > 10:break
print "Done"In [13]: run breakTest.py
0 1 2 3 4 5 6 7 8 9 10 Done

continue

相对的,有时并不希望终止整个循环操作,而是希望提前结束本次循环,并接着执行下一次循环,这时可以使用continue语句。continue语句会跳过循环体中下面尚未执行的语句,转到循环体结束点之前,接着执行expression,然后再进行下一次是否执行循环的判断。这样可以达到提高程序执行效率的效果。

In [10]: cat continueTest.py
#!/usr/bin/env python
#coding=utf8
import sys
i = 101
count = 0
while (i > 0):i -= 1if i%5:continueprint i,count += 1
print "Done"
print "Execution times:%d" % count        In [11]: run continueTest.py
100 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 0 Done
Execution times:21  

上面的小例子会将1-100之间能被5整除的数字打印出来。

for 循环

语法格式:

for iterationVariable in iterationObject:代码块 #When the iterationObject in intertionVariable
else:代码块 #when the loop completer

Python的For循环完全区别于Java或C/C++等编程语言,其通过遍历一个容器中所有的索引来决定循环的次数和操作。
其中容器可以是List、Tuple、Dictionary、String等,本质上是利用for循环的迭代器iterator,来逐个遍历容器中的项目,并且逐一赋值给迭代变量,然后执行代码块,直到遍历完成循环结束。

遍历String:

In [17]: %%file forStr.py....: #!/usr/bin/env python....: #coding=utf8....: name = 'JMilk'....: for n in name:....:     print n,....: print "Done"....:
Writing forStr.pyIn [18]: run forStr.py
J M i l k Done

遍历Tuple

In [19]: %%file forTuple.py....: #!/usr/bin/env python....: #coding=utf8....: number = (1,2,3,4,5)....: for n in number:....:     print n,....: print "Done"....:
Writing forTuple.pyIn [20]: run forTuple.py
1 2 3 4 5 Done

遍历List

In [21]: %%file forList.py....: #!/usr/bin/env python....: #coding=utf8....: li = range(1,6)....: for l in li:....:     print l,....: print "Done"....:
Writing forList.pyIn [22]: run forList.py
1 2 3 4 5 Done

遍历Dictionary

In [61]: cat forDic.py
#!/usr/bin/env python
#coding=utf8
dic = {'name':'Jmilk','age':'23'}
#Example1
print dic.items()
for key,value in dic.items():print "Example1:The key is %s and the value is %s" % (key,value)
#Example2
for key in dic:print "Example2:The key is %s and the value is %s" % (key,dic[key])print "Done"In [62]: run forDic.py
[('age', '23'), ('name', 'Jmilk')]
Example1:The key is age and the value is 23
Example1:The key is name and the value is Jmilk
Example2:The key is age and the value is 23
Example2:The key is name and the value is Jmilk
Done

上面的例子使用了两种遍历字典的方法。
Example1:先调用items( )将字典转化为List和Tuple的复合数据类型,再遍历每一个List中的Tuple元素。
Example2:遍历Dictionary的key,调用dic[key]获取key映射的value。

最后

Python控制流语句具有非常强大的功能,例如:利用for循环来获取文件内容,实现Ddictionary到String的转换等等。尤其是for循环和List解析的特性会碰撞出非常有趣的火花。在往后的篇章里我们一起去记录。

Jmilk

Python基本语法_控制流语句_if/while/for相关推荐

  1. 风变python基础语法_风变编程python (基础语法爬虫精进)

    温馨提示:本信息由[会员:crm010com]搜集整理发布,版权归原作者及发布者所有,您如有异议请 举报 或者 版权申诉. 风变编程python (基础语法爬虫精进) 第1章介绍在计算机中安装Pyth ...

  2. 一张图了解python基本语法_一张图认识Python(附基本语法总结)

    一张图带你了解Python,更快入门, 一张图认识Python(附基本语法总结) Python基础语法总结: 1.Python标识符 在 Python 里,标识符有字母.数字.下划线组成. 在 Pyt ...

  3. Python基本语法_输入/输出语句详解

    目录 目录 前言 输入 raw_input input raw_input 和 input 的区别 输出 print print 基本格式化输出 print复杂格式化输出 flags标志位 width ...

  4. Python基本语法_异常处理详解

    目录 目录 异常 异常类型 异常处理 触发异常raise 传递异常 assert语句触发异常 捕获异常tryexceptelse 捕捉多个异常 tryfinally语句 自定义异常 withas触发异 ...

  5. Python基本语法_基本数据类型_数值型详解

    目录 目录 软件环境 Python变量调用的过程 数值型 删除一个数值类型对象 布尔型 Bool 标准整型 Int 长整型 双精度浮点型 Float 复数 数值类型对象的内建功能函数 absNumbe ...

  6. Python基本语法_函数属性 参数类型 偏函数的应用

    目录 目录 前言 软件环境 Python Module的程序入口 函数的属性 Python函数的创建 函数的参数 必备参数 缺省参数 命名参数 不定长参数 匿名参数 偏函数的应用 前言 Python除 ...

  7. python try语法_关于Python异常处理中try与except用法详解

    相信大部分小伙伴都有遇到写代码遇到报错问题吧,这是为什么呢?其实这就是python的异常报错,下面根据经常会碰到的异常种类,给大家提供解决方案,具体内容如下: 关于异常处理: 捕捉异常在python中 ...

  8. Python基本语法_变量作用域LEGB

    目录 目录 软件系统 变量的作用域 高级语言对数据类型的使用过程 作用域的产生 作用域的类型 Llocal局部作用域 Eenclosing嵌套作用域 Gglobal全局作用域 Bbuilt-in内置作 ...

  9. Python基本语法_文件操作_读写函数详解

    目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...

最新文章

  1. multi-mono-sf:自监督多帧单目场景流估计
  2. 一张图看懂微软人工智能
  3. 下载linux操作系统一般的初始账号密码(虚拟机)
  4. 关于ubuntu中的inittab文件
  5. php之二叉树,PHP构造二叉树算法示例
  6. 【哈理工实验二】HTML+CSS3 旋转齿轮特效
  7. CCF201409-2 画图 java(100分)
  8. php 现代排序_这就是现代PHP的样子
  9. org.apache.tomcat.jni.LibraryNotFoundError tcnative-1.dll 异常
  10. iptables基本概念详解
  11. http/tcp/ip/端口
  12. vue+element 表格el-table显示数据加载中
  13. PHP+Swoole实现微信小程序客服即时通信聊天功能
  14. MATLAB 简单神经网络案例
  15. matlab飞机飞行模型,使用 MATLAB/Simulink 设计无人机飞行控制系统(二、动力学模型建立)...
  16. 应用统计学与计算机论文,浅谈统计学在生活中的应用
  17. Windows的隐藏分区
  18. Kubernetes的Startup, Liveness, Readiness深入探索
  19. jul177链接_「jul177小早川中文」无删减版高清天天影音第89集
  20. hiar sdk for android,HiAR | HiAR SDK for Unity | 涂涂乐开发教程

热门文章

  1. logo qt添加_linux下如何给qt程序添加图标?
  2. python pypdf2另存为图片_最全总结!聊聊 Python 操作PDF的几种方法
  3. uni上传图片跨域_uni-app的项目实践心得
  4. MIT机器狗再进化,碎石冰面上跑也不打滑,这次真的稳如狗了
  5. 阿里安全开源隐私计算新技术:计算速度快20倍,通信成本低2倍,已登安全顶会...
  6. 不出声也能命令Siri!康奈尔大学华人团队开发无声语言识别项链,中文英文都行...
  7. 中国批准AMD收购赛灵思!苏妈花350亿美元集齐CPU\GPU\FPGA三大芯片业务
  8. 探测电磁波就能揪出恶意软件,网友:搁这给电脑把脉呢?
  9. 特斯拉「断网」致500名车主被锁车外,最长5小时,网友:有些东西就不该经过网络...
  10. 一场可能改变未来的青年科学家聚会