输入整数本身求和,整数倍



Salam,我得到了一个用户输入,我必须将其自身求和n次。这意味着如果输入是"0";5〃;例如,我应该返回5 + 5 + 5 + 5 + 5 = 25
我使用的:

def sum(user_input):
inp_sum = 0
string = ''
for n in range(0, user_input, 1):
inp_sum += user_input
if n != user_input -1:
string+= "5 + "
else: string += '5'
return string + ' = ' + str(inp_sum)

但它返回

Failed for value=6 
Expected: 6 + 6 + 6 + 6 + 6 + 6 = 36
Actual: 5 + 5 + 5 + 5 + 5 + 5 = 36

解决方案是什么?

当您应该将用户输入传递给字符串格式逻辑时,您将5硬编码到函数的逻辑中。此外,不要将函数命名为sum,因为您将隐藏内置函数sum

def mysum(user_input):
inp_sum = 0
string = ""
for n in range(0, user_input, 1):
inp_sum += user_input
if n != user_input - 1:
string += "{} + ".format(user_input)
else:
string += str(user_input)
return "{} = {}".format(string, inp_sum)

您可以这样简化它:

def user_input(n):
return "{} = {}".format(' + '.join([str(n) for _ in range(n)]), str(n*n))
print(user_input(5))
# 5 + 5 + 5 + 5 + 5 = 25
print(user_input(6))
# 6 + 6 + 6 + 6 + 6 + 6 = 36

最新更新