用来练手的python 练习题其十八,原链接 : python练习实例18
题干: 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
这种类型的叠数相加,让我不禁联想到了python中,字符串的乘法运算,那么能否利用字符串的乘法以及字符串与整型的互相转换来巧妙地完成这个问题呢,答案是肯定的。我们下面先来看几个测试结果:
a = "2" * 5
print(type(a))
print(a)
b = int(a)
print(type(b))
print(b)
输出结果如下:
我们发现,在python中,字符串和整型之间的转换是非常简单方便的。在计算叠数如22222时,如果我们使用整型矩阵,所需要的步骤就非常繁琐。反观使用字符串类型,我们可以轻松地构建一个叠数。原题解法的源代码如下:
def add_special(value, number):
result = 0
"""
value 是选中的数字
number 是相加的数字个数
"""
for i in range(number):
value_str = str(value) * (i+1)
result += int(value_str)
return result
实验如下:

本文介绍了一道Python练习题,涉及将数字a叠加形成s的值,如2+22+222...。通过探讨字符串乘法和转换,提出了一种利用字符串简便解决此类问题的方法,并展示了相关的测试结果和源代码。
1188

被折叠的 条评论
为什么被折叠?



