Форум сайта python.su
0
Друзья, Доброго времени суток!
Помогите, пожалуйста! Знаю, что задача простая, но второй день не могу ее одолеть 
Есть вот такой код:
import re import os a = ['123', '456', '789'] b = input("Введите первый элемент числа: ") b1 = b.upper() os.system('cls') for str in a: if re.match(b1, str): print (str)
import re import os a = ['123', '456', '789'] while True: os.system('cls') b = input("Введите первый элемент числа, или 999 для выхода: ") b1 = b.upper() if b1 == "999": break elif b1 != "999": for str in a: if re.match(b1, str): print (str)
Отредактировано ZZZ (Окт. 3, 2015 12:46:55)
Офлайн
0
У меня на 3.4.3 Ваш зацикленный код работает, может, какая-то команда в в Вашей версии по другому пишется? Трейс ошибки в студию
Офлайн
221
знатный говнокод
The_Witcherзачем это если ожидаете принимать числа?
b1 = b.upper()
The_Witcherбессмысленная проверка, следующие строки и так будут выполняться т.к. break прервет цикл. Даже else не нужен
elif b1 != “999”:
The_Witcherназывать переменные служебными словами плохая практика
for str in a:
The_Witcherназвание топика говорит лишь о том что вы не понимаете что это два разных цикла, для разных задач.
While vs for
import re a = ['123', '456', '789'] while True: b = input("Введите первый элемент числа, или 999 для выхода: ") if b == "999": break for s in a: if re.match(b, s): print(s)
Офлайн
0
JOHN_16Зачем b1 = b.upper()?
знатный говнокод
Отредактировано The_Witcher (Окт. 3, 2015 13:46:23)
Офлайн
221
The_Witcherя абсолютно не об этом говорил. Если у вас код вида:
Там 5000 записей, и нужна неповторимая команда для прекращения цикла.
if b1 == "999": break elif b1 != "999": # next code
if b1 == "999": break #next code
The_Witcherэх…….забили. проехали. учите английский
поэтому и versus…
The_Witcherя и после 200 уроков не постил сообщения на форум, потому что сам всего смог достичь, и не считаю это сверх достижением. Но кого это волнует) не так ли.
я думаю что вы после трех уроков, не лучше писали
Офлайн