【发布时间】:2020-10-08 01:37:56
【问题描述】:
我有一个小代码 sn-p,需要帮助来实现一个失败语句 (No match)。这是sn-p:
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])
我在名为reader 的csv 文件中遍历每个row,并将该行中的每个元素从字符串转换为整数。之后,我将该特定行的列表内容(从第一个元素到末尾)与两个函数进行比较,每个函数都包含一个列表。如果两个列表匹配,我打印row[0],它只包含匹配列表所属的人的姓名。但是,如果这两个if 语句在通过for row in reader: 循环后都失败了,我将如何只打印一次像No match 这样的语句?因为如果我将它写在循环中,这条语句将被打印row 次数而不是一次。
编辑: 这是我使用 bschlueter 的想法的(不成功的)实现。任何帮助将不胜感激:
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")
【问题讨论】: