Использование имен пользователей с числами без использования прерывания цикла for

#python #python-3.x

#python #python-3.x

Вопрос:

 username='smith123'
numbers='1234567890'
for i in username:
    if i in numbers:
        print(username)
        #break
  

Здравствуйте, я пишу код, в котором, если в username существует число, оно печатается, но в таких именах пользователей имена пользователей печатаются 3 раза. Чтобы убедиться, что оно будет напечатано только один раз, существует ли какой-либо метод без использования break? Спасибо.

Комментарии:

1. может быть, попробуйте не использовать for цикл

2. Для этого могут быть совершенно разные способы, но break выход из цикла, как только ваше условие выполнено, является правильным решением…

Ответ №1:

Попробуйте это:

 username='smith123'

if any(char.isdigit() for char in username):
    print(username)
  

Документы:
Любой,
isdigit,
(список) понимание

Ответ №2:

Просто другой способ с использованием re:

w

Для шаблонов Unicode (str):

Соответствует символам слова в Юникоде; сюда входит большинство символов, которые могут быть частью слова на любом языке, а также цифры и подчеркивание. Если используется флаг ASCII, сопоставляется только [a-zA-Z0-9_] .

 import re
username="smith123"
if re.match(r"^w $", username):
    print(username)
  

Комментарии:

1. ^ не требуется, поскольку re.match привязан к началу строки

2. хотя re может быть хорошим решением в целом, это конкретное решение не соответствует заданному вопросу об выяснении, «содержит ли имя пользователя числа». Это решение выводит имя пользователя, если оно состоит только из «символов word».

3. @Raphael это был пример регулярного выражения для соответствия строке примера из вопроса, и я думаю, вы могли бы просто оставить предложение по редактированию без этих бесполезных комментариев 😉