# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# # 循环
# - 循环是一种控制语句块重复执行的结构
# - while  适用于广度遍历
# - for    开发中经常使用
# #广度遍历
# #深度遍历

# ## while 循环
# - 当一个条件保持真的时候while循环重复执行语句
# - while 循环一定要有结束条件，否则很容易进入死循环
# - while 循环的语法是：
#
#     while loop-contunuation-conndition:
#
#         Statement

# ## 示例：
# sum = 0
#
# i = 1
#
# while i <10:
#
#     sum = sum + i
#     i = i + 1

# ## 错误示例：
# sum = 0
#
# i = 1
#
# while i <10:
#
#     sum = sum + i
#
# i = i + 1
# - 一旦进入死循环可按 Ctrl + c 停止

# ## EP：
# ![](../Photo/143.png)
# ![](../Photo/144.png)

# # 验证码
# - 随机产生四个字母的验证码，如果正确，输出验证码正确。如果错误，产生新的验证码，用户重新输入。
# - 验证码只能输入三次，如果三次都错，返回“别爬了，我们小网站没什么好爬的”
# - 密码登录，如果三次错误，账号被锁定
#

只要有break出现，不管嵌套在哪个循环里，只要执行，while循环结束。

import random
a=random.randint(1000,9999)
print(a)
yonghu=eval(input("验证码"))
b=1
while a!=yonghu:
    b=b+1
    if b==4: 
        print("别爬了，小网站没什么好爬的")
        break
    else:
        a=random.randint(1000,9999)
        print(a)
    yonghu=eval(input("验证码"))
if a==yonghu:
        print("验证码正确")


import random
a1=random.randint(65,90)
a2=random.randint(65,90)
a3=random.randint(65,90)
a4=random.randint(65,90)
b1=chr(a1)
b2=chr(a2)
b3=chr(a3)
b4=chr(a4)
print(b1,b2,b3,b4)
yonghu=input("验证码")
zong=b1+b2+b3+b4
for i in range(2):
    if zong==yonghu:
        print("输入正确")
        break
    else:
        a1=random.randint(65,90)
        a2=random.randint(65,90)
        a3=random.randint(65,90)
        a4=random.randint(65,90)
        b1=chr(a1)
        b2=chr(a2)
        b3=chr(a3)
        b4=chr(a4)
        print(b1,b2,b3,b4)
        yonghu=input("验证码")
else:
    print("小网站 不值得")

for i in range(3):
    

# ## 尝试死循环

# ## 实例研究：猜数字
# - 你将要编写一个能够随机生成一个0到10之间的且包括两者的数字程序，这个程序
# - 提示用户连续地输入数字直到正确，且提示用户输入的数字是过高还是过低

# ## 使用哨兵值来控制循环
# - 哨兵值来表明输入的结束
# - ![](../Photo/54.png)

# ## 警告
# ![](../Photo/55.png)

# ## for 循环
# - Python的for 循环通过一个序列中的每个值来进行迭代
# - range(a,b,k)， a，b，k 必须为整数
# - a: start
# - b: end
# - k: step
# - 注意for 是循环一切可迭代对象，而不是只能使用range

#怎么查看对象可不可以迭代__（迭代：可以一个一个拿出来）
#name.__iter__


# # 在Python里面一切皆对象

# ## EP:
# - ![](../Photo/145.png)

a=1
sum=0
for i in range(1002):
    sum =sum+a
print(sum)



# ## 嵌套循环
# - 一个循环可以嵌套另一个循环
# - 每次循环外层时，内层循环都会被刷新重新完成循环
# - 也就是说，大循环执行一次，小循环会全部执行一次
# - 注意：
# > - 多层循环非常耗时
#   - 最多使用3层循环

# ## EP：
# - 使用多层循环完成9X9乘法表
# - 显示50以内所有的素数

# ## 关键字 break 和 continue
# - break 跳出循环，终止循环
# - continue 跳出此次循环，继续执行

#可代替continue 
for i in range(10):
    if i==5:
        pass
    else:
        print(i)


# +

for i in range(1,10):
    for j in range(1,i+1):
        print(i,"*",j,"=",i*j,end=" ")
    print()
# -

for a in range(1,10):
    for i in range(2,50):
        if i%a==0:
            a=a+1
            pass
        elif i>3 and i%3==0:
            pass
        elif i%5==0:
            pass
        elif i==49:
            pass
        else:
            print(i)
    break

for i in range(5,50):
    for a in range(2,i):
        if i%a==0:
            break
    else:
        print(i)

# ## 注意
# ![](../Photo/56.png)
# ![](../Photo/57.png)

# # Homework
# - 1 
# ![](../Photo/58.png)

list_1=[]
for i in range(10000):
    a=input("如果想停止 输入abc  ")
    list_1.append(a)
    if a=="abc":
        list_1.pop()
        print(list_1)
        break
num=0
for c in list_1:
    c=int(c)
    num=c+num
d=num/i
print(num)
print(float(d))

# - 2
# ![](../Photo/59.png)

a=10000
b=0
c=0
for i in range(9):
    a=a+a*0.05
    b=b+a
    c=a
print(a)
for d in range(3):
    a=a+a*0.05
    c=c+a
print(c)

# - 4
# ![](../Photo/60.png)

list_2=[]
list_3=[]
for a in range(100,1000):
    if a%5==0 and a%6==0:
        list_2.append(a)
    else:
        pass
print(list_2[1:11])
print(list_2[11:21]) 
print(list_2[21:31])       

# - 5
# ![](../Photo/61.png)

n=1
while n**2<12000:
    n=n+1
print(n)
m=12000
while m**3>12000:
    m=m-1
print(m)

# - 6
# ![](../Photo/62.png)

money=eval(input(""))
year=eval(input(""))


# - 7
# ![](../Photo/63.png)



# - 8
# ![](../Photo/64.png)



# - 9
# ![](../Photo/65.png)



# - 10 
# ![](../Photo/66.png)

# +
list4=[]
for a in range(1,10000):
    for b in range(1,a):
        b=b+1
        if a%b==0:
            list4.append(b)
        else:
            break
print(list4)
            
    
# -

# - 11
# ![](../Photo/67.png)

for i in range(1,8,2):
    for j in range(2,8):
        if i!=j:
            print(i,j)
print("共有",21)

# - 12
# ![](../Photo/68.png)

StarcoderdataJupyterScriptsDedupFiltered