day4总结-循环

循环

Python中的循环结构有两种:for 和 while

for循环

1.语法

for 变量名 in 序列:
    循环体

2.说明

for -关键字,固定写法

变量名 -和声明变量时的变量名要求一样

in -关键字,固定写法

序列 -Python中的序列有字符串,列表,元祖,字典,集合,range,生成器和迭代器等

注意:序列不能是数字类型

: -固定写法

循环体 -和for保持一个缩进的一条或多条语句

3.执行过程

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

for i in '321':
    print('===')

for i in 'abc':
    print(i)

a = '123' 
b = 'abc'

for i in a:
    print(i)

for i in b:
    print(i)
"""
for i in 321:       -----------错误,运行会报错,因为序列不能为数字
    print('===')          

a = 123
for i in a:         -----------错误,虽然变量可以当序列,但变量值为数字,运行会报错
    print(i)
"""

range函数

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

range(M,N) -M,N都是整数,且N>M,产生M—N-1的所有整数

range(M,N,S) -M,N,S都是整数,且N>M,产生M—N-1之间,每次加S后所得到的所有的数

注意:xrange是Python2.x版本的语法,在Python3.x版本无效

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

for num in range(0,101,2):
    print(num)
#练习:计算1+2+3+...+100的和
sum1 = 0
for num in range(1,101):
    sum1 += num
print(sum1)

while循环

1.语法

while 条件语句:
    循环体

2.说明

while -关键字,固定写法

条件语句 -可以是数据,变量,运算表达式等,但不能是赋值运算(和if的条件语句要求相同)

: -固定写法

循环体 -和while保持一个缩进的一条或多条语句(会被重复执行)

3.执行过程

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

两个极端:

  • 当条件语句永远为True,会造成死循环的现象
  • 一开始条件语句结果就为False,那么循环一次都不会执行
#练习:用while循环控制程序打印10行====
count = 1
while count <= 10:
    print('===')
    count += 1

for循环和while循环的选择

  • 遍历(一个一个的取)序列元素,用for循环
  • 循环次数确定的时候用for循环
  • 死循环和循环次数不确定的时候用while循环(当然上面for循环也都可以用while循环来实现)

随机数

需要导入random模块,random是Python内置的一个专门用来产生和处理随机数的模块

语法

randint(M,N) #产生M~N的随机整数,要求M,N都为整数,且N>M

import random
random_num = random.randint(0,10)
print('随机数是:',random_num)

练习

#猜数字
import random
random_num = random.randint(0,100)
count = 1
input_num = int(input('输入一个数字:'))
while random_num != input_num:
    if random_num > input_num:
        print('小了')
    else:
        print('大了')
    input_num = int(input('重新输入一个数字:'))
    count += 1
print('正确',random_num)
print('猜对数字所花次数为:',count)
if count == 1:
    print('Very Lucky')
elif 1 < count <= 5:
    print('Lucky!')
elif 5 < count <= 10:
    print('Just so-so')
else:
    print('Bad Luck')

continue关键字

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

功能:执行循环体的时候,如果遇到continue,就直接结束当次循环,立即进入下次循环的判断。

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

break关键字

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

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

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

sum1 = 0
count = 0
while sum1 <= 1000000:
    count += 1
    sum1 += count
print(count)

else关键字

语法:

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

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

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

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

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

循环嵌套

在循环体中又有循环结构

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

for i in range(5):
    for j in range(4):
        print(i,j)

注意:循环嵌套中遇到continue或break时,只对最近的循环生效(所属的循环)

你可能感兴趣的:(day4总结-循环)