Python 使用 try/except 继续练习
Python exercise using try/except with continue
我不明白为什么我的代码在这里不能正常工作,它似乎在 except: continue 行之后退出 for 循环。我该怎么做才能解决这个问题? (代码执行但无论输入什么 list/letter 组合,输出始终为 -1,因此不会向 sum_total 变量添加任何内容)
sample_list = [
'Black Mirror',
'Breaking Bad', #2
'Stranger Things', #6
'The Leftovers', #2
'How I Met Your Mother' #7 4.25
]
letter = 'e'
def find_average_first_index(input_list, input_letter):
sum_total = 0
for i in input_list:
try:
sum_total += input_list.index(input_letter)
print(sum_total)
**except:
continue**
if sum_total == 0:
return -1
else:
average_value = (sum_total / len(input_list))
return average_value
您正在 input_list
上使用 index
。我想你可能想在 i
.
上使用它
sum_total += i.index(input_letter)
当您使用不在 list
中的元素调用 index
方法时,它将引发 ValueError
异常并且您的代码将转到 except
块并且由于continue
在那里,它将移动到下一次迭代。并且因为您在 input_list 上使用 index
方法和 letter
,它总是会在此代码中引发 ValueError,这就是代码中出现错误的原因。
固定代码如下:
def find_average_first_index(input_list, input_letter):
sum_total = 0
for i in input_list:
try:
sum_total += i.index(input_letter)
print(sum_total)
except ValueError as e:
print(e)
print(f"No {input_letter} in {i}")
continue
if sum_total == 0:
return -1
else:
average_value = (sum_total / len(input_list))
return average_value
您的代码需要这样修改
sample_list = [
'Black Mirror',
'Breaking Bad', #2
'Stranger Things', #6
'The Leftovers', #2
'How I Met Your Mother' #7 4.25
]
letter = 'e'
def find_average_first_index(input_list, input_letter):
sum_total = 0
for i in input_list:
try:
sum_total += input_list.index(input_letter)
print(sum_total)
except:
continue
if sum_total == 0:
return -1
else:
average_value = (sum_total / len(input_list))
return average_value
find_average_first_index(sample_list,letter)
错误:-
您需要像这样添加try
和except
(如果您的代码模式错误,您会看到错误消息;参见:https://careerkarma.com/blog/python-break-and-continue/)
try:
sum_total += input_list.index(input_letter)
print(sum_total)
except:
continue
find_average_first_index(sample_list,letter)
运行你需要调用函数的代码。 (参考:https://www.w3schools.com/python/python_functions.asp)
我不明白为什么我的代码在这里不能正常工作,它似乎在 except: continue 行之后退出 for 循环。我该怎么做才能解决这个问题? (代码执行但无论输入什么 list/letter 组合,输出始终为 -1,因此不会向 sum_total 变量添加任何内容)
sample_list = [
'Black Mirror',
'Breaking Bad', #2
'Stranger Things', #6
'The Leftovers', #2
'How I Met Your Mother' #7 4.25
]
letter = 'e'
def find_average_first_index(input_list, input_letter):
sum_total = 0
for i in input_list:
try:
sum_total += input_list.index(input_letter)
print(sum_total)
**except:
continue**
if sum_total == 0:
return -1
else:
average_value = (sum_total / len(input_list))
return average_value
您正在 input_list
上使用 index
。我想你可能想在 i
.
sum_total += i.index(input_letter)
当您使用不在 list
中的元素调用 index
方法时,它将引发 ValueError
异常并且您的代码将转到 except
块并且由于continue
在那里,它将移动到下一次迭代。并且因为您在 input_list 上使用 index
方法和 letter
,它总是会在此代码中引发 ValueError,这就是代码中出现错误的原因。
固定代码如下:
def find_average_first_index(input_list, input_letter):
sum_total = 0
for i in input_list:
try:
sum_total += i.index(input_letter)
print(sum_total)
except ValueError as e:
print(e)
print(f"No {input_letter} in {i}")
continue
if sum_total == 0:
return -1
else:
average_value = (sum_total / len(input_list))
return average_value
您的代码需要这样修改
sample_list = [
'Black Mirror',
'Breaking Bad', #2
'Stranger Things', #6
'The Leftovers', #2
'How I Met Your Mother' #7 4.25
]
letter = 'e'
def find_average_first_index(input_list, input_letter):
sum_total = 0
for i in input_list:
try:
sum_total += input_list.index(input_letter)
print(sum_total)
except:
continue
if sum_total == 0:
return -1
else:
average_value = (sum_total / len(input_list))
return average_value
find_average_first_index(sample_list,letter)
错误:-
您需要像这样添加
try
和except
(如果您的代码模式错误,您会看到错误消息;参见:https://careerkarma.com/blog/python-break-and-continue/)try: sum_total += input_list.index(input_letter) print(sum_total) except: continue
find_average_first_index(sample_list,letter)
运行你需要调用函数的代码。 (参考:https://www.w3schools.com/python/python_functions.asp)