day 4-python中的循环结构

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 = 'c' print(c),print('=====')
...
a
=====

b
=====

c
===== 
...
"""
for a in 'abcdefa':
    print(a)
    print('=====')

2.range函数

range(N)        #   N是正整数,产生0~N-1的所有数
for num in range(10):
    print(num)
range(M,N)  #   M,N都是整数,并且N>M,产生M~N-1的所有整数
for num in range(100,1000):
    print(num)
range(N,M,S)    #   M,N,S都是整数,产生M~N-1,每次加S来产生下一个数
for num in range(0,101,2):
    print('===',num)
#注意:xrange是python2.X的语法,在python3.X无效

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

sum1 = 0    #保存和的变量
for num in range(1,101):
    # sum1 = sum1 + num
    sum1 += num
print(sum1)
"""
sum1 = 0
num = (1,2,3,4)
num = 1     sum1 += num,sum1 = sum1+num,sum1 = 0 + 1 = 1
num = 2     sum1 += num,sum1 = sum1+num,sum1 = 1 + 2
num = 3     sum1 += num,sum1 = sum1+num,sum1 = 1 + 2 + 3
num = 4     sum1 += num,sum1 = sum1+num,sum1 = 1 + 2 + 3 + 4 = 10
print(sum1)     10
"""

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

sum2=1
for num2 in range(2,21,2):
    sum2 *=num2
print(sum2)

练习:计算0-100中所有能被3或者5整除的数的和

sum4 = 0
for num3 in range(101):
    if num3 % 3 == 0 or num3 % 5 == 0:
        print(num3)
        sum4 += num3
print(sum4)

1.while循环

a.语法

"""
while 条件语句:
    循环体
"""

b.说明:

"""
while       #   关键字,固定写法
条件语句        #   可以是数据,变量,运算表达式等。不能是赋值运算
:           #   固定写法
循环体     #   和while保持一个缩进的一条或者多条语句(会被重复执行)
"""

c.执行过程:

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

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

练习:用while循环控制成勋打印10行"====="

num = 0
while num < 10:
    print('=====')
    num += 1
"""
num = 0

num < 4 0 < 4   True print('=====') num += 1 num = num + 1 = 0 + 1
num < 4 1 < 4   True print('=====') num += 1 num = num + 1 = 1 + 1 = 2
num < 4 2 < 4   True print('=====') num += 1 num = num + 1 = 2 + 1 = 3
num < 4 3 < 4   True print('=====') num += 1 num = num + 1 = 3 + 1 = 4
num < 4 4 < 4   False

print(num)      print(4)

输出:
=====
=====
=====
=====
4
"""

练习1:使用while循环打印0-10

num2 = 0
while num2 < 11:
    print(num2)
    num2 += 1

练习2:使用while循环打印11-20

num3 = 11
while num3 < 21:
    print(num3)
    num3 += 1

练习3:使用while循环打印2,4,6,8,10...40

num4 = 2
while num4 <= 40:
    print(num4)
    num4 += 2

练习4:求2+4+6+...+40

num5 = 0
num6 = 2
while  num6 <= 40:
    num5 += num6
    num6 += 2
    print(num5)

练习:不断输入,直到输入的值是100为止

"""
请输入数字:10
请输入数字:1
请输入数字;22
请输入数字:100
结束!
"""
result = 0      # 保存输入的结果
while result != 100:
    result = int(input('请输入数字'))
print('结束!')

2.补充:随机数

导入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('=================游戏开始===================')
random_sum = random.randint(0,100)
sum = int(input('请输入数字(0-100)'))
while sum != random_sum:
    if sum > random_sum:
        print('大了,再小点')
    else:
        print('小了,再大点')
    sum = int(input('请输入数字(0-100)'))
print('恭喜你猜对对了',random_sum)
if count > 7:
    print('250!')

print('================游戏结束===================')

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

a.遍历(一个一个的取)序列元素用for循环

b.循环次数确定的时候用for循环

c.死循环和循环次数不确定的时候用while循环


1.continue

用法:continue是关键字,只能出现在循环中
功能:执行循环团体的时候,如果遇到continue,就直接结束档次循环,直接进入下次循环的判断

for x in range(10):
    if x % 3 == 0:
        continue
    print(x)
    print('====')

2.break

用法:break是关键字,只能出现在循环体中
功能:执行循环体的时候,如果遇到break,整个循环直接结束

print('=========================')
for x in range(10):
    print(x)
    break
    print('!!!')
# print(x)
print('结束')
print('==========================')

从0+1+2+...+n,求和超过1000000的第一个数

num = 0
n = 1
while True:
    num += n
    if num > 1000000:
        break
    n += 1
print(n,num,num - n)

3.else

a.语法:

"""
for 变量 in 序列:
    循环体
else:
    语句块
while 条件语句:
    循环体
else:
    语句块
"""

b.执行过程:如果循环自然死亡,else对饮的语句块会执行;如果循环因为遇到break而结束

else对应的语句块不会执行

for x in range(5):
    print(x)
else:
    print('循环结束')

循环你嵌套:在循环体中又有循环结构

执行过程:外循环执行一次,内循环执行完

for x in range(5):
    for y in range(4):
        print(x)
        print(y)
"""
x = (0,1,2,3,4)
x =0    y = (0,1,2,3,)
        y = 0   print(0),print(0)
        y = 1   print(0),print(1)
        y = 2   print(0),print(2)
        y = 3   print(0),print(3)

x = 1   y = (0,1,2,3,)
...

输出
0
0
0
1
0
2
0
3

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

推荐阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,803评论 2 16
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,340评论 0 2
  • 这一节主要讲梯度更新与BP算法。 我们将把所有的样本的误差求平均然后进行更新的算法称之为batch gradien...
    Klaas阅读 144评论 0 0
  • 默默坚持自己做的事情,只要是对的,就别有迟疑,不管别人的看法怎样,做好自己。相信所有的努力都不会白费,加油。
    992bd0e8393f阅读 217评论 0 0
  • 1.网页版知乎 在首页’点开答案‘后,’收起‘按钮只在答案底部才有,个人不太理解这个设计的用意。让人操作的很累。 ...
    下巴夹死人阅读 277评论 0 0