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

没有bug队——加贝——Python 练习实例 19,20

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

没有bug队——加贝——Python 练习实例 19,20

19.题目:

一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

程序分析:请参照程序python实例14。我就不在这里过多介绍了。

for j in range(2,1001):
    k = []
    n = -1
    s = j
    for i in range(1,j):
            if j % i == 0:
                n += 1
                s -= i
                k.append(i)
    
    if s == 0:
        print (j)
        for i in range(n):
            print(str(k[i]))
#            print(' ')
        print (k[n])

输出:

如上图结果所示,我们发现 有点乱,那有没有可能输出一行是一个数,一行全是它的因子呢?

当然可以喽,此时就应该介绍一下我们的sys库中的stdout函数,它的意思是输出不换行

代码更改如下:

# #19
from sys import stdout
for j in range(2,1001):
    k = []
    n = -1
    s = j
    for i in range(1,j):
            if j % i == 0:
                n += 1
                s -= i
                k.append(i)
    
    if s == 0:
        print (j)
        for i in range(n):
            stdout.write(str(k[i]))
            stdout.write(' ')
        print (k[n])

 此时输出为:

这样输出,不但看着舒心,用着也舒心hhhhhhhhhhhhhhh

20.题目:

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

程序分析:无,一道基础物理题,就不做过多介绍了,如果你做不出来,那!!!

好了,话不多说,直接上代码吧:

#20
tour = []
height = []
 
hei = 100.0 # 起始高度
tim = 10 # 次数
 
for i in range(1, tim + 1):
    # 从第二次开始,落地时的距离应该是反弹高度乘以2(弹到最高点再落下)
    if i == 1:
        tour.append(hei)
    else:
        tour.append(2*hei) 
    hei /= 2
    height.append(hei)
 
print('总高度:tour = {}'.format(sum(tour)))
print('第10次反弹高度:height = {}'.format(height[-1]))

 输出:

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

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

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