У меня есть небольшой фрагмент кода, и мне нужна помощь в реализации оператора ошибки (No match
). Вот фрагмент:
for row in reader:
# converts each string num --> int num
i = 1
while i < len(row):
row[i] = int(row[i])
i += 1
if STR_count_large(sequence) == row[1:]:
print(row[0])
if STR_count_small(sequence) == row[1:]:
print(row[0])
Я перебираю каждый row
в csv
файле с именем reader
и конвертирую каждый элемент в этой строке из строки в int. После этого я сравниваю содержимое списка этой конкретной строки (от 1-го элемента до конца) с двумя функциями, каждая из которых содержит список. Если два списка совпадают, я печатаю row[0]
, которое просто содержит имя человека, которому принадлежит соответствующий список. Однако, если оба этих оператора if
терпят неудачу после прохождения for row in reader:
l oop, как я могу go печатать оператор типа No match
только один раз? Потому что, если я напишу его внутри l oop, этот оператор будет напечатан row
количество раз, а не один раз.
EDIT : Вот моя (неудачная) реализация с использованием идея Бшлютера. Любая помощь будет принята с благодарностью:
exceptions = list()
for row in reader:
# converts each string num --> int num
i = 1
while i < len(row):
row[i] = int(row[i])
i += 1
try:
if STR_count_large(sequence) == row[1:]:
print(row[0])
if STR_count_small(sequence) == row[1:]:
print(row[0])
except (STR_count_large(sequence) != row[1:] and STR_count_small(sequence) != row[1:]) as exception:
exceptions.append(exception)
if exceptions:
print("No match")