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