阅读 442

python.实验五 循环结构

python.实验五 循环结构

1.编写程序,计算1×2×3×…×10.


s = 1

for i in range(1,11):

    s = s * i

print("s=",s)

1

2

3

4

#输出结果:


s= 3628800


2.编写程序,计算1+3+5+…+99.


sum = 0

for i in range(1,100,2):

    sum = sum + i

print("sum=",sum)

1

2

3

4

#输出结果:


sum= 2500


3.编写程序,输出1~100之间所有能被3整除,但是不能被5整除的数。


for i in range(1,100):

    if i%3!=0 or i%5==0:

        continue

    print(i,end=" ")

1

2

3

4

#输出结果:


3 6 9 12 18 21 24 27 33 36 39 42 48 51 54 57 63 66 69 72 78 81 84 87 93 96 99


4.编写程序,输出1000~2000年之间所有闰年,要求每行输出5个年份。


k=0

for i in range(1000,2000+1):

    if (i%4==0 and i%100!=0) or (i%400==0):

        k+=1

        print("{}".format(i),end=" ")

        if k%5==0:

            print("")

1

2

3

4

5

6

7

#输出结果:


1004 1008 1012 1016 1020

1024 1028 1032 1036 1040

1044 1048 1052 1056 1060

1064 1068 1072 1076 1080

1084 1088 1092 1096 1104

1108 1112 1116 1120 1124

1128 1132 1136 1140 1144

1148 1152 1156 1160 1164

1168 1172 1176 1180 1184

1188 1192 1196 1200 1204

1208 1212 1216 1220 1224

1228 1232 1236 1240 1244

1248 1252 1256 1260 1264

1268 1272 1276 1280 1284

1288 1292 1296 1304 1308

1312 1316 1320 1324 1328

1332 1336 1340 1344 1348

1352 1356 1360 1364 1368

1372 1376 1380 1384 1388

1392 1396 1404 1408 1412

1416 1420 1424 1428 1432

1436 1440 1444 1448 1452

1456 1460 1464 1468 1472

1476 1480 1484 1488 1492

1496 1504 1508 1512 1516

1520 1524 1528 1532 1536

1540 1544 1548 1552 1556

1560 1564 1568 1572 1576

1580 1584 1588 1592 1596

1600 1604 1608 1612 1616

1620 1624 1628 1632 1636

1640 1644 1648 1652 1656

1660 1664 1668 1672 1676

1680 1684 1688 1692 1696

1704 1708 1712 1716 1720

1724 1728 1732 1736 1740

1744 1748 1752 1756 1760

1764 1768 1772 1776 1780

1784 1788 1792 1796 1804

1808 1812 1816 1820 1824

1828 1832 1836 1840 1844

1848 1852 1856 1860 1864

1868 1872 1876 1880 1884

1888 1892 1896 1904 1908

1912 1916 1920 1924 1928

1932 1936 1940 1944 1948

1952 1956 1960 1964 1968

1972 1976 1980 1984 1988

1992 1996 2000


5.编写程序,输出斐波那契数列的前20项,要求每行输出5项。


Fib1=1

Fib2=1

print(Fib1,Fib2,end=" ")

n=2

for i in range(3,20+1):

    Fibi=Fib1+Fib2

    Fib1=Fib2

    Fib2=Fibi

    n+=1

    print("{}".format(Fibi),end=" ")

    if n%5==0:

        print("")


1

2

3

4

5

6

7

8

9

10

11

12

13

#输出结果:


1 1 2 3 5

8 13 21 34 55

89 144 233 377 610

987 1597 2584 4181 6765


6.编写程序,从键盘上输入10个整数,输出这10个数中所有奇数之和,偶数之和及所有数的平均值。


sum1=sum2=0

for i in range(10):

    num=eval(input("请输入一个整数:"))

    if num%2==1:

        sum1=sum1+num

    else:

        sum2=sum2+num

avg=(sum1+sum2)/10

print("所有奇数之和:{},所有偶数之和:{},平均值:{}".format(sum1,sum2,avg))


1

2

3

4

5

6

7

8

9

10

#输出样例:


请输入一个整数:4

请输入一个整数:23

请输入一个整数:8

请输入一个整数:9

请输入一个整数:16

请输入一个整数:25

请输入一个整数:32

请输入一个整数:17

请输入一个整数:18

请输入一个整数:17

所有奇数之和:91,所有偶数之和:78,平均值:16.9


7.编写程序,从键盘上输入若干个整数,求出这些整数中所有奇数之和、偶数之和及所有数的平均值,当从键盘输入字符"A"时,程序输出计算结果。


sum1=sum2=k=0

num=input("请输入一个整数(输入字符A时结束处理):")

while num!='A':

    k=k+1

    num=int(num)

    if num%2==1:

        sum1=sum1+num

    else:

        sum2=sum2+num

    num=input("请输入一个整数(输入字符A时结束处理):")

avg=(sum1+sum2)/k

print("所有奇数之和:{},所有偶数之和:{},平均值:{}".format(sum1,sum2,avg))

1

2

3

4

5

6

7

8

9

10

11

12

#输出样例:


请输入一个整数(输入字符A时结束处理):5

请输入一个整数(输入字符A时结束处理):7

请输入一个整数(输入字符A时结束处理):8

请输入一个整数(输入字符A时结束处理):20

请输入一个整数(输入字符A时结束处理):A

所有奇数之和:12,所有偶数之和:28,平均值:10.0


8.编写程序,输出1×2×3+3×4×5+5×6×7+…+99×100×101的值。


sum=0

for i in range(1,100,2):

    sum+=i*(i+1)*(i+2)

print("结果为:",sum)

1

2

3

4

#输出结果:


结果为: 13002450


9.编写程序,计算s=a+aa+aaa+…+aaa…aaa的值,其中a是1~9之间的某个数字,n是一个正整数。

例如,当a=2,n=5时,s=2+22+222+2222+22222=24690.


a=eval(input("请输入a的值:"))

n=eval(input("请输入n的值:"))

s=0

item=0

for i in range(1,n+1):

     item=item*10+a

     s=s+item

print("值为:",s)

1

2

3

4

5

6

7

8

#输出样例:


请输入a的值:3

请输入n的值:6

值为: 370368


10.编写程序,实现猜数游戏。在程序中随机生成一个0~9之间(包含0和9)的随机整数T,让用户通过键盘输入所猜的数。如果输入的数大于T,显示“遗憾,太大了”;如果小于T,显示“遗憾,太小了”;如此循环,直至猜中该数,显示“预测N次,你猜中了”,其中N是指用户在这次游戏中猜中该随机数一共尝试的次数。


import random

rnd=random.randint(0,9)

print("系统刚随机产生了一个0~9之间的一个整数")

user=int(input("请输入你猜的数"))

k=0

while 1:

    k=k+1

    if user>rnd:

        print("遗憾,太大了")

        user=int(input("请继续输入你猜的数"))

    elif user<rnd:

        print("遗憾,太小了")

        user=int(input("请继续输入你猜的数"))

    else:

        print("预测{}次,你猜中了".format(k))

        break



1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#输出样例:


系统刚随机产生了一个0~9之间的一个整数

请输入你猜的数9

遗憾,太大了

请继续输入你猜的数5

遗憾,太小了

请继续输入你猜的数8

遗憾,太大了

请继续输入你猜的数7

预测4次,你猜中了


11.编写程序,产生两个0~100之间(包含0和100)的随机整数RND1和RND2,求这两个整数的最大公约数和最小公倍数。


import math

import random

RND1=random.randint(0,100)

RND2=random.randint(0,100)

gys=math.gcd(RND1,RND2)

gbs=RND1*RND2/gys

print("{}和{}的最大公约数为:{},最小公倍数为:{}".format(RND1,RND2,gys,gbs))


1

2

3

4

5

6

7

8

#输出样例:


59和43的最大公约数为:1,最小公倍数为:2537.0


12.编写程序模拟硬币的投掷。假设0表示硬币反面,1表示硬币正面。在程序中让计算机产生若干次(建议大于100次)随机数,统计0和1分别出现的次数,并观察0和1出现的次数是否相同。


import random

num0=0

n=eval(input("请输入你要模拟投掷硬币的次数:"))

for i in range(n):

    rnd=random.randint(0,1)

    if rnd==0:

        num0=num0+1

num1=n-num0

print("硬币反面{}次,硬币正面面{}次".format(num0,num1))

    



1

2

3

4

5

6

7

8

9

10

11

12

#输出样例:


请输入你要模拟投掷硬币的次数:6

硬币反面4次,硬币正面面2次


13.编写程序,计算“天天向上”和“天天向下”两种情况下的武力值。假设一年有365天,郭大侠第一天的武力值为1.如果郭大侠每天勤于练功,每天武力值相比前一天会增加1%;如果郭大侠每天不练功,每天武力值相比前一天会减少1%。郭大侠制定了一年的练功计划:从第一天开始,前五天每天练功,然后休息两天;接下来又练功五天,休息两天;如此往复,请计算一年后,郭大侠的最终武力值(结果保留2位小数)。


gdxwlz=1

for i in range(1,366):

    if i%6==0 or i%7==0:

        gdxwlz=gdxwlz*(1-0.01)

    else:

        gdxwlz=gdxwlz*(1+0.01)

print("郭大侠的最终武力值为:{:.2f}".format(gdxwlz))



1

2

3

4

5

6

7

8

9

#输出结果:


郭大侠的最终武力值为:4.72


14.编写程序,计算糖果总数。假设有一盒糖果,按照如下方式从中取糖果:

一个一个地取,正好取完

两个两个地取,还剩一个

三个三个地取,正好取完

四个四个地取,还剩一个

五个五个地取,还差一个

六个六个地取,还剩三个

七个七个地取,正好取完

八个八个地取,还剩一个

九个九个地取,正好取完

请问:这个盒子里至少有多少个糖果?


n=1

while 1:

    if n%2==1 and n%3==0 and n%4==1 and n%5==4 and n%6==3 and n%7==0 and n%8==1 and n%9==0:

        print("这个盒子里一共有{}个糖果".format(n))

        break

    else:

        n=n+1


1

2

3

4

5

6

7

8

#输出结果:


这个盒子里一共有1449个糖果

————————————————

版权声明:本文为CSDN博主「The Qing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/m0_51346837/article/details/113430236


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐