multiple try: except: functions 和组合它们有什么区别?
What is the difference between multiple try: except: functions and combining them?
我有两个代码,但它们给出了不同的答案,谁能告诉我其中的区别?
这是第一个:
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
在第一个代码片段中,如果 value[1:4]
出现问题并抛出异常(例如,它是一个会导致 int()
引发异常的字符),代码将继续并尝试评估 value[2:5]
与第二个片段 "jump" 以评估 value[1:3]
我有两个代码,但它们给出了不同的答案,谁能告诉我其中的区别?
这是第一个:
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
在第一个代码片段中,如果 value[1:4]
出现问题并抛出异常(例如,它是一个会导致 int()
引发异常的字符),代码将继续并尝试评估 value[2:5]
与第二个片段 "jump" 以评估 value[1:3]