day-4 for,while 循环/contine/break/else

  • python中 的循环结构有两种:for循环,while循环

1. for循环

a.语法
"""
for 变量名 in 序列:
循环体
"""
b.说明

for -关键字
变量名 -和声明变量的时候的变量名要求一样
in -关键字,固定写法
序列 -Python中的序列有:字符串、列表、元祖、字典、range、生成器、迭代器。
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句。

"""

c.执行过程
当程序执行到for循环的时候,让变量去序列中取值,一个一个的取,取完为止,每取一个值,执行一次循环体。

a = 'a'  print(a) ,print('=====')
a = 'b'  print(b) ,print('=====')

``输出结果
a
=====
b
=====


for num  in 'abcdefa':
    print(num,id(num))
    print('=====')

2. range函数

用法:range(N) - N是正整数,产生0~~N-1的所有的整数。
range(M,N) - M,N都是整数,并且N > M ,产生M ~ N-1的所有整数。
range(M,N,S) -M,N,S都是整数,产生M ~ N-1,每次加S来产生下一个数

for num in range (0,101,2):
    print('===:',num)

注意 Xrange 是Python2.x的语法,Python3.x无效

for num1 in range(10):
    print(num1)

for num in range (100,1000):
    print(num)

练习:计算1+2+3+...+100的和

sum1 = 0  # 保存和的变量
for num  in range (1,100):
    sum1 = sum1 + num            # sum1 += num
print(sum1)

"""

分析过程:
sum1 = 0
num = (1,2,3,4)
num1 sum1 += num, sum1 = sum1+num ,sum1 =0+1=1
num2 sum1 += num, sum1 = sum1+num ,sum1 =0+1+2=3
num3 sum1 += num, sum1 = sum1+num ,sum1 =0+1+2+3=6
num4 sum1 += num, sum1 = sum1+num ,sum1 =0+1+2+3+4=10
print(sum1) 10
"""

练习: 计算 2 *4 *6...20的结果

product = 1
for num in range (2, 21, 2):
    product = product  *  num  # prouduct *= num
print(product)

练习:打印计算0-100所有能够被3或者5整除的个数

sum2 = 0
for  num6 in range(0,101):
    if num6 % 3 == 0 or num6 % 5 == 0:
        print(num6)
        sum2 +=num6
print(sum2)


3.while循环

a.语法
"""
while 条件语句:
循环体
"""
b。说明:
"""
while - 关键字,固定写法
条件语句 - 可以是数据,变量,运算表达式,不能是赋值运算
: -固定写法
循环体 - 与while保持一个缩进的一条或者多条语句。(会被重复执行)
"""
'''
c.执行过程:

先判断条件语句是否为True,为True就执行一次循环体,
执行完循环体再判断条件语句是否为True,为True又执行一次循环体,
以此类推,直到判断条件语句的结果为False,整个循环直接结束。

两个极端:1.当条件语句永远为True,会造成死循环的现象
2.一开始条件语句的结果就是False,那么循环一次都不会执行。

练习:用while循环控制程序打印10行

count = 0
while count < 10:
    print('======')
    count += 1
  • 练习,使用while循环,打印0-10
num = 0
while num < 11:
    print(num)
    num += 1
  • 练习2,使用while循环打印11-20
count2 = 11
while count2 < 21:
    print('练习2',count2)
    count2 += 1
  • 练习3,使用while循环打印2,4,6,8...40
count3 = 2
while count3 < 40:
    print('练习3',count3)
    count3 += 2
  • 练习,不断输入,直到输入的值是100为止
num=int(input('请输入数字:'))    #写法二:result = 0 #保存输入结果
while num != 100:
    num=int(input('请输入数字'))
print(num)

4..补充随机数

  • 导入random模块,random模块是Python内置的一个专门用来产生和处理随机数的一个模块
    randint(M,N)----产生M~N的随机数,要求M,N都是整数,并且N>M。
import random
random_num = random.randint(0,10)
print('随机数:',random_num)
  • 练习:猜数字游戏
    产生一个0-100的随机,然后不断输入数字,直到输入的数字和产生的随机数为止,如果输入的数字和随机数不相等,给出偏大或者偏小的提示。

增加功能,统计猜对数字玩家用了多少次,然后根据次数范围给出相应的评价。

print('======================游戏开始==================')
num = int(input('请输入数字'))
num1 = 0
import random
random_num = random.randint(0,100)
     print('随机数:',random_num)
while num != random_num:
    if num > random_num:
        print(num, '数字偏大')
    else:
        print(num, '数字偏小')
    num=int(input('请输入数字:'))
    num1+= 1
if num1 == 1 :

    print('太棒了,天才')
elif 1 < num1 < 15:
    print('聪明')
else:
    print('笨蛋')

print('恭喜你猜对了!',num1,'次',random_num)
print('=====================游戏结束===================')

5.for循环和while循环的选择

a.遍历(一个一个的取)序列元素,用for循环
b.循环次数确定的时候用for循环
c.循环次数不确定的时候和死循环用while。



6. continue的用法

  • 用法:continue 是关键字,只能出现在循环体中
  • 功能:执行循环体的时候,如果遇到continue,就直接结束当次循环,直接进入下次循环的判断。
for x in range(10):
    if x % 3 == 0:
        continue
    print(x)
    print('=====')

7. break的用法

  • 用法:break是关键字,只能出现在循环体中(for,while)
  • 功能:执行循环体的时候,如果遇到break,整个循环直接结束
for x in range(10):
    print(x)
    break
    print('!!!')
print('结束')
  • 练习:从0+1+2....,求加到和超过1000000的第一个数,求出这个数
sum1= 0
num = 1
while True:
    sum1+=num
    if sum1 > 1000000:
        break
    num += 1
print(num,sum1,sum1-num)

8 .else

  • a.语法:
    """"
    for 变量 in 序列:
    循环体
    else:
    语句块

while 条件语句:
循环体
else:
语句块

"""

  • b.执行过程:如果循环自然死亡,else对应的语句块会执行,如果循环因为遇到break,else对应的语句块就不会执行
for x in range(5):
    print(x)
    break
else:
    print('循环结束')

for x in range(2,9):
    print(x)
     break
else:
    print('循环结束,没有遇到break')


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

推荐阅读更多精彩内容