Код Python не работает: TypeError, объект 'int' не вызывается - PullRequest
0 голосов
/ 29 июня 2019

Следующий код Python выдает ошибку:

TypeError: объект 'int' не может быть вызван.

Кто-нибудь может мне помочь?

string = "This is a string, but I want to print it backwards"
stringLen = len(string)
newString = []
while stringLen >= 0:
    newString.append(string[stringLen])
    stringLen = stringLen - 1
result = ''.join(newString)
print(result)

Ответы [ 2 ]

1 голос
/ 29 июня 2019

Не удалось воспроизвести ошибку.Однако у вас есть

Ошибка индекса вне диапазона.

Это потому, что отступ начинается с 0. Таким образом, string[stringLen] выходит за пределы на первой итерации,Чтобы решить эту проблему, просто сдвиньте ее на единицу с помощью простой операции -1.

Кроме того, поскольку мы сейчас движемся в обратном направлении, мы должны остановиться, когда счетчик строго превосходит 0. Если вы поднимаетесьна 0 вы напечатаете первый символ (перезапуская итерацию).

Здесь код:

string = "This is a string, but I want to print it backwards"
stringLen = len(string)
newString = []
while stringLen > 0:
    # Here string is shifted by 1
    newString.append(string[stringLen-1])
    stringLen = stringLen - 1
result = ''.join(newString)
print(result)
# sdrawkcab ti tnirp ot tnaw I tub ,gnirts a si sihT

Вы можете проверить вывод, просто позвонив:

print(string[::-1])
# sdrawkcab ekil skool txet siht woh rednow I

Некоторые объяснения здесь

Надеюсь, это поможет!

0 голосов
/ 29 июня 2019

вы можете получить тот же результат с этим кодом:

string = "This is a string, but I want to print it backwards"
result=''.join(string[::-1])
print(result)

outbut:

sdrawkcab ti tnirp ot tnaw I tub ,gnirts a si sihT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...