for letter in range(0,len(stats)-1):
if stats[letter] != ',':
x += 1
print(stats[letter])
print (x)
elif stats[letter] == ',':
break
print(stats[letter])
Я думаю, что вышеуказанный код - это то, что вам нужно. Вам не нужен цикл while
, цикл for
проверит каждую букву в строке stats
и сломается, когда вы перейдете в запятую.
В последней строке будет напечатана либо запятая, либо последняя буква, если в строке нет запятой. Кроме того, я изменил пределы цикла, поскольку, как я думаю, вы получите ошибку при тестировании персонажа, которого не существует.
EDIT: Это работает для меня, хотя я думаю, что другой ответ - лучший способ сделать это. Я запустил этот тестовый скрипт ниже, и он разбился каждый раз, когда он попал в запятую.
#!/usr/bin/python
def SO_answer(stats):
x = 0
for letter in range(0,len(stats)-1):
if stats[letter] != ',':
x += 1
print(stats[letter])
print (x)
elif stats[letter] == ',':
break
print(stats[letter])
SO_answer("test")
SO_answer("testing, 1, 2, 3")
SO_answer("Here's a long string with a comma at the end,")
SO_answer(",,,,,")
Что именно вы пытаетесь решить? К сожалению, ваш реальный код имеет множество логических ошибок :( – thefourtheye
remove 'while True:' и его 'break' – theAlse
Код попадает в бесконечный цикл, потому что' letter' никогда не менялся внутри цикла. – HumptyDumptyEIZ