Python трактует + как цифру?
По сути, я делаю небольшой кусок кода, чтобы удалить символ конца строки, пока строка не пройдет .isdigit
,
def string_conversion(string):
for i in string:
if i.isdigit == False:
string = string[0:len[string]-1]
print(string) #This is just here to see if it goes through
test = "60+"
string_conversion(test)
Я использовал http://www.pythontutor.com/visualize.html чтобы понять, почему я не получил никаких выходных данных, он прошел символ + в виде цифры, точно так же, как цифры 6 и 0.
Я делаю что-то не так или Python лечит +
как цифра?
2 ответа
str.isdigit
это метод, а не атрибут, поэтому (как уже упоминалось в комментариях) его нужно вызывать.
Также вы проверяете каждый символ (начиная с левой стороны) для isdigit
но если он не проходит isdigit()
проверить вы удалите символ с правой стороны. Это не кажется правильным. Вы, вероятно, хотели перебрать for i in reversed(string)
(или используя нарезку: for i in string[::-1]
).
Но вы также можете упростить логику, используя while
цикл:
def string_conversion(string):
while string and not string.isdigit():
string = string[:-1]
return string
def string_conversion(string):
for i, s in enumerate(string):
if s.isdigit() == False:
string = string[:i]
break
print(string) #This is just here to see if it goes through
test = "60+"
string_conversion(test)
Попробуй это