def silly(n):
"""requires: n is an int > 0
Gets n inputs from user
Prints 'Yes' if the inputs are a palindrome; 'No' otherwise"""
assert type(n) == int and n > 0
for i in range(n):
result= []
elem = input('Enter something: ')
result.append(elem)
print(result)
if isPal(result):
print('Is a palindrome')
else:
print('Is not a palindrome')
如果您尝试运行此功能,例如,当n = 3时,为什么elem不能正确附加到结果?它将打印作为新的结果列表。这消息了我的isPal函数。
答案 0 :(得分:3)
for循环的第一行用新列表替换result
变量。
result= []
您应该在for循环之前执行此操作。
答案 1 :(得分:3)
交换这些行:
result = []
for i in range(n):
# ...
或者您将在每次迭代中重新分配result
。
答案 2 :(得分:2)
问题在于您每次都在重新定义结果。
def silly(n):
"""requires: n is an int > 0
Gets n inputs from user
Prints 'Yes' if the inputs are a palindrome; 'No' otherwise"""
assert type(n) == int and n > 0
result= []
for i in range(n):
elem = input('Enter something: ')
result.append(elem)
print(result)