美文网首页经验App:聚合职场优选内容
Python练习实例18 | 求s=a+aa+aaa+aaaa+

Python练习实例18 | 求s=a+aa+aaa+aaaa+

作者: 暮光微晓破倾城 | 来源:发表于2020-02-21 22:26 被阅读0次

    我们先来分析一下这个题。

    首先,影响最终结果s的因素,主要有两个,一个是层数,一个是a本身的值。

    其次,我们可以根据创建循环,将循环出的值,存入到一个列表当中,然后对最终的列表进行求和即可。

    因此,最终的程序,我们可以写成如下图所示的形式。

    from functools import reduce # python 3 环境下,需要导入reduce,Python2中不需要导入,为内置
    n = int(input("请输入层数:"))  # 输入层数
    a = int(input("请输入数字:")) # 输入数字
    
    Tn = 0 # 初始化数字叠加后的值
    Sn = [] # 创建一个空列表,以便接收叠加后的数值
    for i in range(n): # 此处的循环表示,n为几,i就循环几次,也就是,层数为几,下面的循环体就执行几次
        Tn = Tn + a # 将循环的值赋值给Tn
        #print(" 数字叠加后值为:",Tn) # 打印出数字叠加后的值
        Sn.append(Tn) # 将数字叠加后的值依次添加到Sn这个空的列表中
        #print("创建的数列为:",Sn) # 打印出列表Sn中的所有值
        a = a*10 # 为下一个数做循环准备
    print("创建的数列为:",Sn)
    
    Sn = reduce(lambda x,y:x+y,Sn) # 计算Sn的值
    print("计算的和为:",Sn) # 打印出Sn的值
    

    上面代码中,循环体内的两个print语句可以省略掉,这里写这个语句主要是为了能够了解程序运行的原理。

    2020年2月21日
    北京市通州区京贸中心

    相关文章

      网友评论

        本文标题:Python练习实例18 | 求s=a+aa+aaa+aaaa+

        本文链接:https://www.haomeiwen.com/subject/xoahqhtx.html