day4 循环

1. 循环

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

1. for 循环

a. 语法

"""
for 变量名 in 序列
循环体
"""

b. 说明

"""

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

c. 执行过程

  • 当程序执行到for循环的时候:让变量取序列中去值,一个一个的去,取完为止。
  • 每取一个值,就执行一个循环体
for a in "abcdef":
    print(a)
    print('1111')

# 2. range 函数
# range(N)   -   N是正整数,产生0到N-1的所有整数
for num in range(100):
    print(num)

# range(M,N)  -  M,N都是整数,并且N>M, 产生M~N-1的所有整数
for num in range(100, 1000):
    print(num)


#range(M,N,S)   -  M,N,S都是整数,产生M~N-1,每次加s来产生下一个数
for num in range(0,101,3):
    print('1111',num)
# 注意:xrange是python2.x的语法,python3.x无效

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

sum1 = 0 # 保存和的变量

for num in range(1, 5):
    # 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
"""

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

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

print(product)

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

sum1 = 0
for num in range(101):
    if num % 3 == 0 or num % 5 == 0:
        # print(num)
        sum1 += num

print(sum1)   

2. while循环

1.while循环

a. 语法

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

b.说明:

"""

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

"""
"""

c. 执行过程:先判断条件语句是否

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

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

  • 练习:用while循环控制程序打印10行“======”

count = 0
while count < 11:
    print('======')
    count = count + 1
  • 练习:使用while循环打印0-10,打印11-20
a1 = 20
while a1 > 10:
    print(a1)
    a1 -= 1
  • 练习2: 使用while循环打印20-11
num = 20
while num > 10:
    print('练习2:', num)
    num -= 1

# 练习3: 使用while循环打印2,4,6,8,10...40
num = 2
while num <= 40:
    print('练习3:', num)
    num += 2

# 练习4:求2+4+6+...+40
sum1 = 0
num = 2
while num <= 40:
    # print('练习3:', num)
    sum1 += num
    num += 2

print(sum1)

# 练习: 不断输入,直到输入的值是100为止
"""
请输入数字: 10
请输入数字: 1
请输入数字: 22
请输入数字: 100
结束!
"""
result = 0    # 保存输入的结果
while result != 100:
    result = int(input('请输入数字:'))
print('结束!')

练习: 猜数字游戏

产生一个0-100的随机数,然后不断输入数字,直到输入的数字和产生的随机数一致为止。
如果输入的数字和随机数不相等,给出偏大或者偏小的提示
增加功能: 统计玩家猜对数字猜了多少次,然后根据次数范围给出相应的评价!

#练习:产生0-100的随机数,然后不断输入数字直到猜到
#如果输入的数字不不相等给出大小提示
#产生随机数
import random
a3 = 0
random2 = random.randint(0,100)
num = int(input('请输入数字'))
while num != random2:
    if num > random2:
        print('大了')
    else:
        print('小了')
    if a3 != random2:
        a3 += 1
    num = int(input('请输入数字'))
if a3<10:
    print('天才')
else:
    print('存货')
print('猜对了')
print('你猜了',a3,'次')

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('=====')
练习: 从0+1+2+......+n,求和超过1000000的第一个数
sum1 = 0
n = 1
while True:
    sum1 += n
    if sum1 > 1000000:
        break
    n += 1

print(n, sum1, sum1-n)  

3.else

a.语法:

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

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

"""

b.执行过程:如果循环自然死亡,else对应的语句块会执行;如果循环因为遇到break而结束,else对应的语句块不执行
for x in range(5):
    print(x)
    break
else:
    print('循环结束,没有遇到break')
循环嵌套:在循环体中又有循环结构
执行过程:外循环执行一次,内循环执行完
for x in range(5):
    for y in range(4):
        print(x)
        print(y)
    if (x == 1):
        break

"""
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)

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