weixin_52273111
2021-05-19 14:15
采纳率: 75%
浏览 90

有三个python编程问题 想请教各位 急急急!!

1. 用循环结构编写harmonic(n)函数,计算并返回第n阶调和数(1+1/2+1/3 +…+1/n)。定义主函数main(),打印输出前m个调和数。(m的值在main()函数中通过键盘输入,文件名:Harmonic.py ) 2. 用递归思想编写harmonic(n)函数,计算并返回第n阶调和数(1+1/2+1/3 +…+1/n)。定义主函数main(),打印输出前m个调和数。(m的值在main()函数中通过键盘输入,文件名:Harmonic_Recursion.py ) 3. 利用可变参数编写函数aver_nums(*b),求任意个数的数值平均值,定义主函数main(),在main()函数通过键盘输入若干学生的成绩,调用aver_nums(*b)函数求出成绩的平均分,并打印输出。 (文件名: AverScore.py )

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • CSDN专家-kaily 2021-05-19 14:33
    已采纳
    # Harmonic.py
    def harmonic(n):
        result = 0
        for i in range(1, n+1):
            result += 1/i
        return result
    
    if __name__ == '__main__':
        m = int(input())
        for i in range(1, m+1):
            print(harmonic(i))
    
    # Harmonic_Recursion.py
    def harmonic(n):
        if n==1:
            return 1
        return harmonic(n-1)+1/n
    
    if __name__ == '__main__':
        m = int(input())
        for i in range(1, m+1):
            print(harmonic(i))
    
    # AverScore.py  
    def aver_nums(*b):
        n = len(b)
        return sum(b)/n
    if __name__ == '__main__':
        score = input()  # 输入成绩,之间用空格隔开
        b = [int(i) for i in score.split(' ')]
        print(aver_nums(*b))
    评论
    解决 无用
    打赏 举报
查看更多回答(3条)

相关推荐 更多相似问题