<jupyter_start><jupyter_text>循环- 循环是一种控制语句块重复执行的结构- while  适用于广度遍历- for    开发中经常使用  while 循环- 当一个条件保持真的时候while循环重复执行语句- while 循环一定要有结束条件，否则很容易进入死循环- while 循环的语法是：    while loop-contunuation-conndition:        Statement<jupyter_code>xunhuan='abcd'
i=0
while xunhuan[i]:
    print(xunhuan[i])
    i+=1
    if i==4:
        break<jupyter_output>a
b
c
d<jupyter_text>示例：sum = 0i = 1while i <10:    sum = sum + i    i = i + 1  错误示例：sum = 0i = 1while i <10:    sum = sum + ii = i + 1- 一旦进入死循环可按 Ctrl + c 停止  EP：![](../Photo/143.png)![](../Photo/144.png) number = eval(input("enter an integer"))max = numberwhile number != 0:    number = eval(input(""))    if number > max:        max = number        print("max is",max)        print("number",number)<jupyter_code>number = eval(input("enter an integer"))
max = number
while number != 0:
    number = eval(input(""))
    if number > max:
        max = number
        print("max is",max)
        print("number",number)<jupyter_output>enter an integer2
3
max is 3
number 3<jupyter_text>验证码- 随机产生四个字母的验证码，如果正确，输出验证码正确。如果错误，产生新的验证码，用户重新输入。- 验证码只能输入三次，如果三次都错，返回“别爬了，我们小网站没什么好爬的”- 密码登录，如果三次错误，账号被锁定<jupyter_code>import random
i=3
while:
    yzm=char(random.randint(65,90))+char(random.randint(65,90))+char(random.randint(65,90))+char(random.randint(65,90))
    print(yum)
    
import random
yanzhengma = ''
j =0
while j < 3:
    for i in range(4):
        random_1 = chr(random.randint(65,90))
        yanzhengma += random_1
    print(yanzhengma)
    input_ = input('>>')
    if input_ == yanzhengma:
        print('OK')
        break
    else:
        print('Error')
        yanzhengma = ''
        j +=1
    if j ==3:
        print('别爬了')<jupyter_output>KTBM<jupyter_text>尝试死循环<jupyter_code>import matplotlib.pyplot as plt
list_ = [1,2,3,4,5,6,7]
list__ = [4,5,6,7,8,9,8]
plt.plot(list_,list__)
plt.show()<jupyter_output><empty_output><jupyter_text>实例研究：猜数字- 你将要编写一个能够随机生成一个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  在Python里面一切皆对象  EP:- ![](../Photo/145.png)  嵌套循环- 一个循环可以嵌套另一个循环- 每次循环外层时，内层循环都会被刷新重新完成循环- 也就是说，大循环执行一次，小循环会全部执行一次- 注意：> - 多层循环非常耗时  - 最多使用3层循环  EP：- 使用多层循环完成9X9乘法表- 显示50以内所有的素数  关键字 break 和 continue- break 跳出循环，终止循环- continue 跳出此次循环，继续执行<jupyter_code>for i in range(1,10):
    for j in range(1,i+1):
        print(i,'x',j,'=',(i*j),end='   ')
    print('')
for i in range(2,1000):
    for j in range(2,i+1):
        if i%j==0:
            break
    if i==j:
        print(j)<jupyter_output>2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
211
223
227
229
233
239
241
251
257
263
269
271
277
281
283
293
307
311
313
317
331
337
347
349
353
359
367
373
379
383
389
397
401
409
419
421
431
433
439
443
449
457
461
463
467
479
487
491
499
503
509
521
523
541
547
557
563
569
571
577
587
593
599
601
607
613
617
619
631
641
643
647
653
659
661
673
677
683
691
701
709
719
727
733
739
743
751
757
761
769
773
787
797
809
811
821
823
827
829
839
853
857
859
863
877
881
883
887
907
911
919
929
937
941
947
953
967
971
977
983
991
997<jupyter_text>注意![](../Photo/56.png)![](../Photo/57.png)  Homework- 1 ![](../Photo/58.png)<jupyter_code>shu=int(input('输入一个数'))
z=0
f=0
s=0
while shu!=0:
    if shu>0:
        z+=1
    if shu<0:
        f+=1
    s=float(s+shu)
    shu=int(input('输入一个数'))
print('正数',z,'负数',f,'平均值',s/(z+f))<jupyter_output>输入一个数1
输入一个数2
输入一个数3
输入一个数4
输入一个数5
输入一个数6
输入一个数7
输入一个数8
输入一个数9
输入一个数0
正数 9 负数 0 平均值 5.0<jupyter_text>3 - 2![](../Photo/59.png)<jupyter_code>10000*1.05**10<jupyter_output><empty_output><jupyter_text>- 3![](../Photo/58.png)<jupyter_code>j=0
for i in range(100,1000):
    if i % 30 == 0:
        print(i,end=' ')
        j=j+1
        if j % 10 == 0:
            print('')<jupyter_output>120 150 180 210 240 270 300 330 360 390 
420 450 480 510 540 570 600 630 660 690 
720 750 780 810 840 870 900 930 960 990<jupyter_text>- 4![](../Photo/60.png)<jupyter_code>i=1
while i:
    if i**2>12000:
        print(i)
        break
    i=i+1
j=1
while j:
    if j**3>12000:
        print (j-1)
        break
    j+=1<jupyter_output>110
22<jupyter_text>- 5![](../Photo/61.png)<jupyter_code>i=1
while i:
    if i**2>12000:
        print(i)
        break
    i=i+1
j=1
while j:
    if j**3>12000:
        print (j-1)
        break
    j+=1<jupyter_output>110
22<jupyter_text>- 6![](../Photo/62.png)<jupyter_code>qian=int(input('钱'))
nian=int(input('年'))
lilv=5/100
while lilv < 0.081:
    print(round(lilv*100,3),'%',end='  ')
    zong=qian*((1+lilv)**nian)
    huan=zong/nian/12
    print(round(huan,2),'   ',round(zong,2))
    lilv+=0.00125<jupyter_output>钱200
年1
5.0 %  17.5     210.0
5.125 %  17.52     210.25
5.25 %  17.54     210.5
5.375 %  17.56     210.75
5.5 %  17.58     211.0
5.625 %  17.6     211.25
5.75 %  17.63     211.5
5.875 %  17.65     211.75
6.0 %  17.67     212.0
6.125 %  17.69     212.25
6.25 %  17.71     212.5
6.375 %  17.73     212.75
6.5 %  17.75     213.0
6.625 %  17.77     213.25
6.75 %  17.79     213.5
6.875 %  17.81     213.75
7.0 %  17.83     214.0
7.125 %  17.85     214.25
7.25 %  17.88     214.5
7.375 %  17.9     214.75
7.5 %  17.92     215.0
7.625 %  17.94     215.25
7.75 %  17.96     215.5
7.875 %  17.98     215.75
8.0 %  18.0     216.0<jupyter_text>- 7![](../Photo/63.png) - 8![](../Photo/64.png) - 9![](../Photo/65.png) - 10 ![](../Photo/66.png) - 11![](../Photo/67.png) - 12![](../Photo/68.png)<jupyter_code>1 **2 + 2**2 + 3**2 + 5.5 *2 + 5.6 **2 + 6 **2 + 7**2 + 8**2 + 9 **2 + 10 **2
1  + 2 + 3 + 5.5  + 5.6 + 6 + 7 + 8+ 9  + 10<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.16088382530640427, 'fraction_numerical': 0.1978249611600207, 'mean_word_length': 2.7795172863666013, 'pattern_counts': {'":': 0, '<': 45, '<?xml version=': 0, '>': 50, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 3, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '12', 'dir': 'jupyter-structured-clean-dedup', 'id': '366586', 'license': 'Apache-2.0', 'n_tokens_mistral': 3685, 'n_tokens_neox': 3169, 'n_words': 611, 'path': '7.19.ipynb', 'repo_name': 'SIBINGQI/sibingqi', 'size': '5793'}