Python基本语法_控制流语句_if/while/for

时间:2022-09-05 13:34:13

目录

前言

控制流语句用于改变程序语句流(默认为自上而下顺序执行)的执行顺序,其中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
>
Done In [31]: run ifTest.py
Ple enter a number:1
<
Done In [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 += 1
if 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 -= 1
if i%5:
continue
print 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.py In [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.py In [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.py In [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学习第四讲&comma;python基础语法之判断语句&comma;循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  2. Python基本语法&lowbar;输入&sol;输出语句详解

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

  3. Python基本语法&lowbar;异常处理详解

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

  4. Python基本语法&lowbar;函数属性 & 参数类型 & 偏函数的应用

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

  5. Python基本语法&lowbar;基本数据类型&lowbar;数值型详解

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

  6. Python基本语法&lowbar;运算符详解

    目录 目录 前言 软件环境 身份运算符 算术运算符 比较运算符 位移运算符 自变运算符 位运算符 逻辑运算符 成员关系运算符 Python真值表 最后 前言 在前面的博文介绍了Python的数据结构之 ...

  7. Python基本语法&lowbar;函数&lowbar;返回值

    目录 目录 前言 函数的返回值 在函数中Return和Print的区别 函数中的文档 前言 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返 ...

  8. Python基本语法&lowbar;文件操作&lowbar;读写函数详解

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

  9. Python基本语法&lowbar;变量作用域LEGB

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

随机推荐

  1. 在其他系统Iframe中显示SharePoint 页面

    前段时间在做一个项目,要求将SharePoint 的 OWA(Office Web Apps)中的文档显示页面嵌入到另外一个OA系统中,提供给用户可以通过浏览器查看SharePoint文档的能力. 嵌 ...

  2. could not read data from &&num;39&semi;&sol;Users&sol;xxxx&sol;myapp-Info&period;plist&&num;39&semi;

    xcode编译报错如下: could not read data from '/Users/iamme/Documents/XCode/myapp/myapp/myapp-Info.plist': T ...

  3. JQuery&colon; 微博演示

    演示图: 完成图: 微博演示代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"&gt ...

  4. 关于document&period;write&lpar;&rpar;重写页面

    今天碰到了一个以前没注意的问题即:document.write(),在此拿来分享! document.write是最基本的JavaScript命令之一,这个命令简单地打印指定的文本内容到页面上(注意是 ...

  5. java读写

    IO流下分为字节流与字符流,每个流又分为输入输出以及读写. 字节流的两个基类为InputStream与OutputStream. 字符流为Reader和Writer

  6. 2333&colon; &lbrack;SCOI2011&rsqb;棘手的操作&lbrack;写不出来&rsqb;

    2333: [SCOI2011]棘手的操作 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1979  Solved: 772[Submit][Stat ...

  7. Mysql数据备份与恢复命令

    转载:原文地址 一.备份常用操作基本命令 1.备份命令mysqldump格式 格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sq ...

  8. css的定位和浮动

    定位 浮动 float代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  9. Linux SSH 基于密钥交换的自动登录原理简介及配置说明

    协商交互过程 1.客户端向目标服务器发送登录请求.在SSH 服务启用了证书验证登录方式后,会优先通过证书验证方式进行登录验证. 2.目标服务器根据 SSH 服务配置,在用户对应目录及文件中读取到有效的 ...

  10. PHP从入门到精通&lpar;六&rpar;

    PHP中的错误处理 1.PHP的错误级别:见表格.2.调整PHP错误报告级别:PHP中,调整错误报告级别的方式有两种: ①修改PHP.ini文件的配置项.a.会导致在当前服务器环境下所有PHP文件都受 ...