Большинство вопросов, которые я нашел, основаны на том факте, что они ищут буквы в своих числах, тогда как я ищу числа в том, что я хотел бы иметь в виде строки без числа. Мне нужно ввести строку и проверить, содержит ли она какие-либо числа и отклоняет ли она их.
Функция isdigit() возвращает True только в том случае, если ВСЕ символы являются числами. Я просто хочу посмотреть, ввел ли пользователь число, поэтому предложение вроде "I own 1 dog" или что-то в этом роде.
Есть идеи?
Переведено автоматически
Ответ 1
Вы можете использовать any функцию с str.isdigit функцией следующим образом
defhas_numbers(inputString): returnany(char.isdigit() for char in inputString)
has_numbers("I own 1 dog") # True has_numbers("I own no dog") # False
В качестве альтернативы вы можете использовать регулярное выражение, например, это
import re defhas_numbers(inputString): returnbool(re.search(r'\d', inputString))
has_numbers("I own 1 dog") # True has_numbers("I own no dog") # False
defnum_there(s): returnany(i.isdigit() for i in s)
Функция вернет, True если в строке существует цифра, в противном случае False.
ДЕМОНСТРАЦИЯ:
>>> king = 'I shall have 3 cakes' >>> num_there(king) True >>> servant = 'I do not have any cakes' >>> num_there(servant) False
Ответ 3
Используйте метод Python str.isalpha(). Эта функция возвращает True, если все символы в строке являются буквенными и присутствует хотя бы один символ; в противном случае возвращает False.