Я учусь, как манипулировать списками в Python, так что я решил составить упражнение, чтобы увидеть, если я мог бы сделать реализацию игры «FizzBuzz» только с помощью списка операций Python, как показано ниже:Python - Преобразование int в строку работает только один раз?
#Fizzbuzz Implementation
def fizzbuzz(L):
# L is a list of integers in order
for i in L[2::3]:
L[i-1] = str(L[i-1])
L[i-1] = L[i-1].replace(L[i-1],'')
#No exception thrown here
for i in L[4::5]:
L[i-1] = str(L[i-1]) #Exception on this line
L[i-1] = L[i-1].replace(L[i-1],'')
for i in L[2::3]:
L[i-1] += 'fizz'
for i in L[4::5]:
L[i-1] += 'buzz'
return L[:]
L = list(range(1,101))
L[:] = fizzbuzz(L)
Я пытался преобразовать целые числа в списке интересов в пустые строки, а затем добавить строки в них, тем не менее я получаю TypeError: неподдерживаемый тип операнда (ов) для -: «ул» и «INT»
I заметил, что первый цикл происходит без проблем, но исключение всегда выбрасывается во второй цикл. Это происходит, даже если я переключаю порядок петель.
Может кто-нибудь объяснить, за что выбрасывается исключение, и почему это происходит только во втором цикле?
Почему вы добавляете элемент в строку и заменяете все это на пустую строку вместо просто 'L [i-1] = '''? – TigerhawkT3
Каждый элемент является целым числом, поэтому я решил, что мне пришлось сначала набросить на строку. Я не знаю, правильно ли это делать. – AAC