美文网首页
day04循环语句

day04循环语句

作者: 我去买个橘子o | 来源:发表于2019-03-07 20:23 被阅读0次

1. for循环

1.1 语法:

for 变量名 in 序列:
循环体

1.2 说明:

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

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

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

1.4 range()函数

range(N) N是正整数, 产生0~N-1的所有整数

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

range(M,N) M,N都是整数,并且M<N,产生M~N-1的所有整数

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

注意:xrange()是python2.x中的函数,在python3.x中无效。
range(M,N,S) M,N,S都是整数,产生M~N-1中间隔S长度的每个数

for num in range(1, 100, 2):
    print(num)

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

sum = 0
for i in range(1,101):
    sum += i
print(sum)

练习:计算2468...*20的结果

sum = 1
for i in range(2, 21, 2):
    sum *= i
print(sum)

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

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

2. while循环

2.1 语法:

while 条件语句:
循环体

2.2 说明:

  • while: 关键字,固定写法
  • 条件语句: 可以是数据、变量、运算表达式等,不能是赋值运算
  • 冒号: 固定写法
  • 循环体: 和while保持一个缩进的一条或者多条语句(会被重复执行)
  • 执行过程: 先判断条件语句是否为True,为True就执行一次循环体,执行完循环体再判断条件语句是否为True,为True又执行一次循环体,再判断条件语句是否为True,为True又执行一次循环体,再判断条件语句是否为True,为True又执行一次循环体,以此类推,直到判断条件语句的结果为False,整个循环直接结束。

2.3 两个极端:

  • 当条件语句永远为True,会造成死循环的现象
  • 一开始条件语句的结果就是False,那么循环一次都不会执行

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

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

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

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

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

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

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

i = 2
while i < 41:
    print(i)
    i += 2 

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

num = 0
while result != 100:
    result = int(input("请输入数字: "))
print('结束')

补充:随机数
导入random模块,random是python内置的一个专门用来产生和处理随机数的模块
radnint(M,N) 产生M~N的随机数,要求M,N都是整数,并且N>M

import random
random_num = random.radnint(0, 10)
print("随机数: ", random_num)

练习:猜数字游戏,产生一个0-100的随机数,然后不断输入数字,直到输入的数字和产生的随机数一致为止

import random
print("=========猜数字游戏=========")
print("===猜0-100之间的一个随机数===")
random_num = random.randint(0, 100)
num = int(input("请猜一个数字: "))
i = 1
while num != random_num:
    if num<random_num:
        print("偏小")
    else:
        print("偏大")
    i += 1
    num = int(input("请重新猜猜: "))
print("恭喜猜中了数字", random_num,",一共猜了", i, "次")
if i > 10:
    print("亲,您的智商需要充值了哦")
elif i < 5:
    print("聪明")
    if i == 1:
        print("居然一次就猜对了")

2.4 for循环和while循环的选择:

  • 遍历(一个一个的取)序列元素用for循环
  • 循环次数确定的时候用for循环
  • 死循环和循环次数不确定的时候用while循环

3. continue、break和else

3.1 continue

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

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

3.2 break

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

for x in range(10):
    print(x)
    break
    print("===")
print("结束")

练习:从0+1+2+......,求看到和超过1000000的时候,求出这个数

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

3.3 else

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

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

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

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

4. 循环嵌套

循环嵌套:在循环体中又有循环结构
执行过程:外循环执行一次,内循环执行完

for x in range(5):
    for y in range(4):
        print(x)
        print(y)
        #if(x==1):
            #break    内层循环结束,外层循环不结束
    #if(x==1):
        #break          内层、外层循环都结束

相关文章

网友评论

      本文标题:day04循环语句

      本文链接:https://www.haomeiwen.com/subject/mmihpqtx.html