我想从使用python的数字之间删除添加符号,请找到下面我的代码


limit = int(input("Limit: "))
allvalue = ""
count = 0
number = 0

while count < limit:
number += 1
count += number 
allvalue += str(number) + " + "
print(allvalue)

我的输出1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +

我希望+符号只在数字之间。不是最后一个,也不是第一个。

一个可能的解决方案是使用" + ".join(),它使用" + "上的字符串方法来收集值

>>> values = "1 2 3 4 5".split()
>>> " + ".join(values)
'1 + 2 + 3 + 4 + 5'
limit = int(input("Limit: "))
allvalue = ""
count = 0
number = 0
while count < limit:
number += 1
count += number
if count != limit:
allvalue += str(number) + " + "  
else:
allvalue += str(number)
print(allvalue)

希望有帮助。

我想和大家分享一下这个问题的数学解决方案。

这个问题是Sum of n numbers问题的一个典型变体,这里描述limitsum已经作为输入,而不是n

import math
limit = int(input("Limit: "))                          # n * (n + 1) / 2 >= limit
n = math.ceil( ((1 + 4*2*limit)**0.5 - 1) / 2 )        # ((b^2 - 4ac)^(1/2) - b) / 2a where a = b = 1, c = 2*limit
allValue = " + ".join([str(i) for i in range(1, n+1)])
print(allValue)

您不需要numbercount变量,并且通过从初始值开始,您可以在数字之前添加+

limit = int(input("Limit: "))
count = 1
allvalue = str(count)
while count < limit:
count += 1
allvalue +=  " + " + str(count)

print(allvalue)

您也可以尝试使用for循环。

limit = int(input("Limit: "))
allvalue = ""
for i in range(0, limit):
if i+1 == limit:
allvalue += str(i+1)
else:
allvalue += str(i+1) + "+"
print(allvalue)

这里有一个简单易行的方法,您可以尝试在结果字符串

中切片
print(allvalue[:-2])

代码:

limit = int(input("Limit: "))
allvalue = ""
count = 0
number = 0

while count < limit:
number += 1
count += number 
allvalue += str(number) + " + "
print(allvalue)
print(allvalue[:-2])

输出:分享结果:https://onlinegdb.com/HFC2Hv4wq

Limit: 9
1 + 2 + 3 + 4 + 
1 + 2 + 3 + 4 

相关内容

  • 没有找到相关文章

最新更新