我有两个代码,但他们给出了不同的答案,有人可以告诉我差异吗?
这是第一个:
number_in_red=[]
for i in range(1, sheet.max_row +1):
try:
if 95<=int(sheet.cell(row=i,column=3).value[1:4])<=289:
number_in_red.append(i)
except ValueError:
try:
if 289>=int(sheet.cell(row=i,column=3).value[2:5])>=95:
number_in_red.append(i)
except ValueError:
try:
if 95<=int(sheet.cell(row=i,column=3).value[1:3]):
number_in_red.append(i)
except ValueError:
try:
if int(sheet.cell(row=i,column=3).value[2:4])>=95:
number_in_red.append(i)
except ValueError:
pass
这第二个怎么不同?
number_in_red=[]
for i in range(1, sheet.max_row +1):
try:
if 95<=int(sheet.cell(row=i,column=3).value[1:4])<=289 or 289>=int(sheet.cell(row=i,column=3).value[2:5])>=95:
number_in_red.append(i)
except ValueError:
try:
if 95<=int(sheet.cell(row=i,column=3).value[1:3]) or int(sheet.cell(row=i,column=3).value[2:4])>=95:
number_in_red.append(i)
except ValueError:
pass
答案 0 :(得分:0)
在第一个代码段中,如果value
存在导致异常的问题(例如,它将是导致value[1:4]
引发异常的字符),代码将继续并尝试评估int()
与第二段摘要,它会“跳”到评估value[2:5]