我不明白为什么def函数中没有使用我的列表。我假设由于输出而为空,但是为什么呢?
def check_palind(x):
palind = []
actual_palind = []
palind = [int(i) for i in str(x)]
while palind[0] == palind[-1] and len(palind) % 2 == 0:
print(palind,'is still a palindrome')
print('removing',palind.pop(0))
print('removing',palind.pop(-1))
actual_palind.append(x)
actual_palind = set(actual_palind)
actual_palind = list(actual_palind)
else:
actual_palind = []
return actual_palind
check_palind(900009)
输出:
while palind[0] == palind[-1] and len(palind) % 2 == 0:
IndexError: list index out of range
In [19]: def check_palind(x):
...: palind = []
...: actual_palind = []
...: palind = [int(i) for i in str(x)]
...: while palind and palind[0] == palind[-1] and len(palind) % 2 == 0:
...: print(palind,'is still a palindrome')
...: print('removing',palind.pop(0))
...: print('removing',palind.pop(-1))
...: actual_palind.append(x)
...: actual_palind = set(actual_palind)
...: actual_palind = list(actual_palind)
...: else:
...: actual_palind = []
...:
...: return actual_palind
...:
In [20]: check_palind(900009)
[9, 0, 0, 0, 0, 9] is still a palindrome
removing 9
removing 9
[0, 0, 0, 0] is still a palindrome
removing 0
removing 0
[0, 0] is still a palindrome
removing 0
removing 0
Out[20]: []
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句