控制语句执行流程

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]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

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