栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

以下构成python循环结构的方法中正确的是(python中常见的循环结构有两种实现方式)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

以下构成python循环结构的方法中正确的是(python中常见的循环结构有两种实现方式)

1.编写程序,打印出九九乘法口诀表。(用 while 和 for 循环分别实现)
1.1 while循环

i=1
while i<10:
    j=1
    while j<=i:
        print("%d*%d=%d"%(i,j,i*j),end="n")
        j+=1
    print("")
    i+=1

1.2 for 循环

for j in range(1,10):
    for i in range(1,j+1):
        print("%d*%d=%d "%(i,j,i*j),end='')
    print(" ")

2.编写程序,计算 1²-2²+3²-4²+…+97²-98²+…… n²。 (n 为输入的)

sum=0
count=0  #count用来计算每一项前面的符号
i=int(input())
for j in range(0,i):
    j=j+1
    sum=sum+j*j*(-1)**count
    count=count+1
print(sum)

*注意这里的奇数项前为正,而偶数项前为负。因此需定义一个变量count,初始化为零。每次count+1,保证了每次计算出的项前的符号为题目要求。
3.编写程序,从键盘输入两个正整数 m 和 n,求其最大公约数和最小公倍数。提示:在循环中,只要除数不等于 0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为 0,返回较小的数即为最大公约数。最小公倍数为两数之积除以最大公约数。

m=int(input())
n=int(input())
c=0
d=1
max=m if m>n else n
min=n if m>n else m
while d!=0:
    d=max%min
    c=max/min
    max=min
    min=d
print("最大公约数是",max)
a=m*n/max
print("最小公倍数是",a)

*这里所要求的方法为辗转相除法,同样求最小公倍数及最大公约数的方法还有循环等。
4. 编写程序,实现打印出所有的“水仙花数”。(10 分)
说明:“水仙花数”是指一个三位数,其各位数字立方和等于该数字本身,例如 153 就是一个水仙花数。

sum = 0
for x in range(100,1000):
    low = x % 10
    high = x // 100
    middle = (x // 10) % 10
    sum = low**3 + high**3 + middle**3
    if sum == x:
        print(x)

*注意题目中水仙花数是一个三位数,所以变量的范围应为(100,1000)
5.编写程序,计算 s=a+aa+aaa+…+aaa…aaa 的值,其中 a 是 1~9 之间的某个数字,n 是一个正整数。
例如,当a=2,n=5,s=2+22+222+2222+22222=24690.

n=int(input())
b=n
sum=0
count=0
a=int(input())
while count 

*这里每次加上去的第一个数字是数字本身的十一倍。加上的第二个数字是加上去第一个数字的十倍在加上数字本身,以此类推。
6.编写程序,实现如下图所示的数字金字塔。

import random
a = int(input(""))#输入打印的行数
for i in range(1, a + 1, 1):
    for j in range(1, a + 1 - i, 1):
        print('  ', end=' ')
    for j in range(i, 0, -1):
        if j < 10:
            print(' %s ' % j, end='')
        else:
            print('%s ' % j, end='')
    for j in range(2, i + 1, 1):
        if j < 10:
            print(' %s ' % j, end='')
        else:
            print('%s ' % j, end='')
    print("")

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

a=1
for i in range(1,366):
    if i%6==0 or i%7==0 :
        a=a*(1-0.01)
    else:
        a=a*(1+0.01)
print("{:.2f}".format(a))

*注意这里的题目说一年365天,因此range后的括号里应该写上(1,366)
8.编写程序,输出 1000~2000 年之间所有闰年,要求每行输出 5 个年份。

for i in range(1000,2000):
    if i%4==0and i%400!=0:
        print(i," ",end="")

*这里需注意闰年的判断方法有两个,如果选择除四等于零,一定要加上除四百不等于零。
9.编写程序,计算糖果总数。假设有一盒糖果,按照如下方式从中取糖果:
一个一个地取,正好取完
两个两个地取,还剩一个
三个三个地取,正好取完
四个四个地取,还剩一个
五个五个地取,还差一个
六个六个地取,还剩三个
七个七个地取,正好取完
八个八个地取,还剩一个
九个九个地取,正好取完
请问:这个盒子里至少有多少个糖果?

a=1
i=1
while a:
    if i%1==0and i%3==0and i%7==0 and i%9==0 and i%2==1 and i%4==1 and i%5==1 and i%8==1 and i%6==3:
        print(i)
        a=0
    else: i=i+1

*这里题目的意思是求一个数字,使得数字满足以上的要求,并且数字应尽可能小。由于不知道数字有多大,使用for循环时stop无法确定。因此使用while循环。并让这个数字满足所有的要求,及将所有的条件and 起来即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772533.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号