day4-总结

circulation

python中循环结构有两种:for循环;while循环

  • for循环

  • a语法
    for 变量名 in 序列:
    循环体
  • b说明
    for - 关键字,固定
    变量名 - 标识符(非关键字)
    in - 关键字,固定写法
    序列 - python中序列有:字符串、列表、元祖、字典、集合、range、生成器、迭代器等
    : - 固定写法
    循环体 - 和for保持一个缩进的一条或者多条语句
  • c.执行过程

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

  for num in 'abcdef':
  print(num,id(num))
  print('===')
  #num = 'a' 
  #print(a,id(a))
  #print('===')
  #num = 'b' 
  #print(b,id(b)),
  #print('===')

2. range函数,配合for循环使用

range(N) - N是正整数,产生0 ~ N-1的所有整数
range(M, N) - M,N都是正整数,并且N>M,产生M~N-1的所有整数,循环N-M次
range(M, N, S) - M,N,S都是正整数;产生M~N(每次加S)
注意:xrange是python2.0中的语法,python3.0无效(pycharm中)

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

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

for num3 in range(0, 101, 2):
    print(num3)

计算1+2+3+...+100的和

sum = 0
for num4 in range(1,101):
    sum = sum + num4   #sum += num4
print(sum)
'''
执行过程
sum = 0
num4 = 1  sum = sum + num4
num4 = 2  sum = sum + num4
...
num4 = 100 sum = sum += num4
print(sun)

计算2 * 4 * 6 * 8 * ... *20

product = 1
for num5 in range(2, 21, 2 ):
    product = product * num5
print(product)

计算0~100中所有能够被3或者5整除的数的和

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

while循环

  • a语法
    while 条件语句:
    循环体
  • b说明
    while - 关键字,固定写法
    条件语句 - 数据、变量、表达式等(不能是赋值运算)
    : - 固定写法
    循环体 - 和while保持一个缩进的一条或者多条语句(循环过程中多次执行)
  • c执行过程:先判断条件语句是否为True;
    若为True,执行一次循环体;然后继续判断条件语句,以此类推
    直到判断条件语句的结果为False,结束整个循环。
两个极端:

当条件语句判断结果一直为True,会造成死循环
当条件语句判断结果一开始就为False,循环一次都不会执行

练习:用while循环控制程序输出十行'==='
count = 0
while count < 10:
    print('===')
    count += 1 
print(count)
'''执行过程
count = 0 
count < 10 True print('===')   count += 1

count = 1
count < 10 True print('===')   count += 1
以此类推
count = 10
count < 10 False    print(count)
练习1:使用while循环输出0~10
count = 0
while count < 11:
    print(count)
    count += 1
练习2:使用while循环输出11~20
count = 11
while count < 21:
    print(count)
    count += 1
练习3:使用while循环输出2,4,6...40
count = 2
while count < 41:
    print(count)
    count += 2
练习4:求练习3输出数字的和
sum = 0
count = 2
while count < 41:
    sum += count
    count += 2
print(sum)
练习5:不断输入,直到输入的值是100为止
num = int(input('请输入数字:'))
while num != 100:
    num = int(input('请输入数字:'))
print(num)

cmd中ctr+c - 结束程序

补充:随机数,导入random模块,random模块是python内置的一个专门产生和处理随机数的模块

import random    
random_num = random.randint(0,10)  
#randint(M,N)  
#产生M~N的随机数
print('随机数',random_num)
猜数字游戏,产生一个0-100的随机数,然后不断输入数字,直到输入的数字和产生的随机数相等如果输入的数字和随机数不相等,给出偏大或者偏小的提示,统计猜对数字猜了多少次,根据次数范围给出评价
print('==============游戏开始==============')
import random    
random_num = random.randint(0,100)  
num1 = 1
num = int(input('请输入数字'))
while num != random_num:
    if num > random_num:
        print('偏大')
    else:
        print('偏小')
    num = int(input('请输入数字'))
    num1 += 1
print('恭喜猜对',num)
print('猜的次数',num1)
if 0 < num1 < 5:
    print('真厉害')
elif 5 <= num1 < 10:
    print('勉强过关')
else:
    print('你可能是个傻子')

for循环和while循环的选择

for循环:遍历(一个一个取)序列元素时;循环次数确定时

while循环:死循环和循环次数不确定时

1.continue

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

2.break

  • 用法:break是关键字,只能出现在循环体中

  • 功能:执行循环体时,如果遇到break,整个循环直接结束。

sum = 0
num = 0
while sum <= 100:
    num += 1
    sum += num
print(num, sum,sum-num)
方法2(用break)
sum1 = 0
num1 = 1
while True:
    sum1 += num1
    if sum1 > 100:
        break
    num1 += 1
print(num1,sum1,sum1-num1)

3.else

  • a.语法:

for 变量 in 序列:
循环体
else:
语句块

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

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

for x in range(5):
    print(x)
    break
else:
    print('循环结束')      #0
num = 2
while num < 5:
    print(num)
    num += 1
    break
else:
    print(num)
输出结果:2

num = 2
while num < 5:
    print(num)
    num += 1
else:
    print(num)
输出结果:
2
3
4
5

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

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

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

推荐阅读更多精彩内容