控制语句执行流程

Python中流程控制语句

选择结构if

循环结构for

for与range()

用while循环

增量赋值运算符

推导或内涵

1.用if语句选择执行语句

(1)if基础

if <条件1>:             #一定要有冒号

    <语句1>

elif <条件2>:

     <语句2>

elif <条件3>:

      <语句3>

..........

else:

     <语句n>

示例:

(2)if语句的嵌套

if <条件>:

   if <条件>:

       <语句1>

   elif <条件>:

         <语句2>

else:

         <语句3>

示例:

2.用for循环执行语句

(1)for基础

其它高级语言for语句要用循环控制变量来控制循环,Python中for语句是通过循环遍历某一序列对象(元组、列表、字典等)来构建循环,循环结束的条件就是对象被遍历完成,

         for语句的形式如下:

for <循环变量> in <遍历对象>:

      <语句1>

else:

      <语句2>

基本for循环示例:

for i in [1,2,3,4,5];                              # i 是循环变量,每次循环,i会依次取得后面列表中                                                               一  个值

      print(i,''的平方是:",i*i)

else:

       print('循环结束!')

(2)for语句与break语句、continue语句

break语句是中断循环的执行,如果在for循环中执行了break语句,for语句的遍历就会立即终止,即使还有未遍历完的数据,还是会立即终止for循环语句。

continue语句的作用是提前停止循环体的执行,开始下一轮循环。在for语句中如果执行了continue语句,则continue语句后的循环体语句不会被执行,即提前结束了本次循环,进入下一个遍历体循环。

示例:

for语句遍历列表、元组、字符串的基本形式是相同的,但对字典的遍历不同。因为字典既有键又有值,在遍历时不能直接对字典进行遍历,而是通过字典的items()、keys()、values()等方法分别遍历其键和值、键、值,如果同时遍历键和值,在遍历时可以使用两个循环变量来分别接收键和值。

示例:

(3)for语句与range()函数

for语句中的对象集合可以是列表、字典以及元组等,也可以通过range()产生一个从0至x-1的整数列表,以完成计数循环。range()函数的原型如下:

range([start,] stop[, step])

其参数含义如下:

start      可选参数,起始数,默认值为0

stop      终止数,如果range只有一个参数x,那么range产生一个从0至x-1的整数列表

step      可选参数,步长,即每次循环序列增长值

示例:

输出:

for语句使用range()函数可以构建就要已知循环次数的循环程序,也可以以range()生成的数字作为索引来访问列表、元组、字符串中的值,还可以对遍历的序列实行处理,以得到相关的数据。

range()函数并不是在调用时一次生成整个序列,而是遍历一次才产生一个值,以减少内存的占用,其本质是一个迭代器。

x=(int(input('请输入开始值(整数):')),int(input('请输入一个结束值(整数):')))

x1=min(x)

x2=max(x)

for n in range(x1,x2+1):

      for i in range(2,n-1):

            if n%i==0:

                    break

       else:

              print(n,'是素数。')

(4)for语句与内置迭代函数

python内置了几种常用的迭代函数:

enumerate(seq)                   #编号迭代

sorted(seq)                     #排序迭代

reversed(seq)                  #翻转迭代

zip(seq1,seq2...)           #并行迭代

编号迭代在迭代时既返回序列中的元素,又返回该元素在序列中的编号(编号从0开始)。for语句进行编号迭代时,应使用两个循环变量分别接收编号和元素的值。

交互式环境下示例:

排序迭代的作用是使得在for的遍历时,先遍历序列中较小的值,后遍历序列中较大的值,这要求序列中的数据可以是排序的同类数据。

交互式环境下的示例:

翻转迭代示例:

并行迭代在遍历时同时遍历函数中给出的seq1,seq2等序列中同一序号的元素。

交互式环境下示例:

并行迭代函数中序列值的长度不一致时,只遍历到最短的序列的长度。

3.用while循环执行语句

(1)while基础

while也是Python语言中构造循环结构程序的语句之一,主要用于构造特殊的循环。

while语句的基本形式:

while <条件>:

          <语句1>

else:

           <语句2>

与for循环不同的是,while语句只有在测试条件为假时才会停止。所以在while语句的循环体中一定要包含改变测试条件的语句,以保证循环能够结束,避免死循环。

示例:

结果:

(2)增量赋值运算符:

python中提供增量赋值运算符很多,基本的运算符都有对应的增量运算符:

+、-、*、/、//、**、%、&、|、^、>>、<<

基本写法:

x+=1             意义为:x=x+1

4.推导或内涵(list comprehension)

(1)推导基础

comprehension英文本意是理解或内涵(逻辑学用语),那么在Python中是指以紧凑的方式对列表、元组、字典等序列或一系列元素进行处理,处理结果仍然被放到一个列表、字典等序列当中的语法形式。

典型的列表推导基本形式如下:

[<i 相关表达式> for i in aiterator]

aiterator是一个可遍历的对象,比如列表、元组,也可以是range()函数。语义为:用循环变量i去遍历aiterator,并且将i相关表达式的值放入一个列表中。

以下两段代码都是获得1~10的平方数存入列表之中。

列表推导代码:

square=[i**i] for i in range(1,11)]

不使用列表推导,使用for:

square=[]

for i in range(1,11):

      square.append(i*i)

字典推导:

(2)推导进阶

列表推导式和字典推导式不仅可以对遍历的元素进行全部处理,还可以使用if语句实现有选择地处理遍历序列中的元素。基本形式如下:

[<i 相关表达式> for i in aiterator if <条件>]

{key_exp:value_exp for key_exp,value_exp in aiterator if <条件>}

获得一个1~10中所有数的平方,且平方值为奇数的一个列表,就可以使用如下代码:

square_odd=[i**i for i in range(1,11) if i**i %2==1]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 12,235评论 1 118
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,062评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,911评论 18 399
  • 十六岁 他对一个姑娘动了心 十七岁 他告诉了那个姑娘 他说着爱就是占有的誓词 姑娘泪流满面 蜜恋的围绕 幸福荡荡 ...
    兰菲儿阅读 4,035评论 0 1
  • 九天秋水共一色,千叶雄峰残照浸。 一流扁舟长篙落,画尽绵山入平镜。 无风无雨也无声,唯尔笠翁戏水音。 余晖落尽青丝...
    双生夕阅读 1,058评论 0 0

友情链接更多精彩内容