Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python, подскажите, где ошибка ?

Андрей Новоженин Знаток (325), открыт 1 неделю назад
 a = input() 

black_list = list('БГДЁЖЗИЙЛПФЦЧШЩЪЫЬЭЮЯ')

if a in set(black_list):

if a[0:1].isalpha():

if a[1:4].isdigit():

if a[4:6].isalpha():

if a[7:].isdigit():

print('YES')

else:

print('NO')
но код еще при проверки бан-листа отправляет сращу NO, хоть номер и соответствует
пробовал
 pattern = r'АВЕКМНОРСТУХ' 
но там на оборот, всем да
для примера
А123ВС_45 - YES
АЯ123В_45 - NO
3 ответа
Алексей Пупок Мастер (1037) 1 неделю назад
black_list = list('БГДЁЖЗИЙЛПФЦЧШЩЪЫЬЭЮЯ') - это список отдельных символов, а не строк. Если вы хотите создать список строк, содержащих эти символы, вам нужно использовать black_list = ['Б', 'Г', 'Д', ...].
if a in set(black_list): - это проверка, является ли вводимый символ (a) элементом списка black_list. Однако, в вашем коде a - это строка, а не символ. Поэтому эта проверка всегда будет возвращать False.
Внутри условия if a in set(black_list): вы проверяете различные части строки a на соответствие определенным условиям (например, a[0:1].isalpha()). Однако, если a не содержит символов из black_list, то эти проверки никогда не будут выполнены.
 black_list = ['Б', 'Г', 'Д', ...]  # список строк, содержащих запрещенные символы 

a = input()

if any(c in black_list for c in a): # проверяем, содержит ли строка a хотя бы один символ из black_list
print('NO')
else:
# здесь можно добавить дополнительные проверки для строки a
if a[0].isalpha() and a[1:4].isdigit() and a[4:6].isalpha() and a[7:].isdigit():
print('YES')
else:
print('NO')
ОракулОракул (59399) 1 неделю назад
Первая же строка чушь, все нормально у автора с этим
 black_list = list('БГДЁЖЗИЙЛПФЦЧШЩЪЫЬЭЮЯ') 
print(black_list)
Kil002 Мастер (2329) 1 неделю назад
 a = input()  

black_list = list('БГДЁЖЗИЙЛПФЦЧШЩЪЫЬЭЮЯ')

if (any(i in black_list for i in a) and
a[0:1].isalpha() and
a[1:4].isdigit() and
a[4:6].isalpha() and
a[7:].isdigit() ):

print('YES')
else:
print('NO')
Похожие вопросы