在 2 个 elif 块之间执行语句
Execute statement between 2 elif blocks
在 Python 3.x 中,是否有任何方法可以在 1 个 elif 块的(错误)评估和下一个评估之间执行语句?
如果 if 块的前 2 个语句评估为 false,我希望仅通过 运行ning 函数 "word_in_special_list" 来优化我的程序。
理想情况下,程序看起来像这样:
for word in lis:
#Finds word in list
if word_in_first_list(word):
score += 1
elif word_in_second_list(word):
score -= 1
#Since the first 2 evaluations return false, the following statement is now run
a, b = word_in_special_list(word)
#This returns a Boolean value, and an associated score if it's in the special list
#It is executed only if the word isn't in the other 2 lists,
#and executed before the next elif
elif a:
score += b #Add b to the running score
else:
...other things...
#end if
#end for
当然,将元组放入 elif 求值 returns 是错误的。我也无法重组我的 if 语句,因为该词更有可能出现在第一个或第二个列表中,因此这种结构可以节省时间。那么有什么方法可以在两次 elif 评估之间 运行 一个代码块吗?
你必须创建一个 else
案例然后嵌套在其中
for word in lis:
if word_in_first_list(word):
score += 1
elif word_in_second_list(word):
score -= 1
else:
a, b = word_in_special_list(word)
if a:
score += b #Add b to the running score
else:
...other things...
您可以输入 continue
语句。
for word in lis:
#Finds word in list
if word_in_first_list(word):
score += 1
continue
if word_in_second_list(word):
score -= 1
continue
a, b = word_in_special_list(word)
if a:
score += b #Add b to the running score
else:
...other things...
我认为这具有您想要达到的效果。顺便说一下,我不明白你为什么需要函数 word_in_first_list
。 if word in first_list
怎么了?
在 Python 3.x 中,是否有任何方法可以在 1 个 elif 块的(错误)评估和下一个评估之间执行语句? 如果 if 块的前 2 个语句评估为 false,我希望仅通过 运行ning 函数 "word_in_special_list" 来优化我的程序。 理想情况下,程序看起来像这样:
for word in lis:
#Finds word in list
if word_in_first_list(word):
score += 1
elif word_in_second_list(word):
score -= 1
#Since the first 2 evaluations return false, the following statement is now run
a, b = word_in_special_list(word)
#This returns a Boolean value, and an associated score if it's in the special list
#It is executed only if the word isn't in the other 2 lists,
#and executed before the next elif
elif a:
score += b #Add b to the running score
else:
...other things...
#end if
#end for
当然,将元组放入 elif 求值 returns 是错误的。我也无法重组我的 if 语句,因为该词更有可能出现在第一个或第二个列表中,因此这种结构可以节省时间。那么有什么方法可以在两次 elif 评估之间 运行 一个代码块吗?
你必须创建一个 else
案例然后嵌套在其中
for word in lis:
if word_in_first_list(word):
score += 1
elif word_in_second_list(word):
score -= 1
else:
a, b = word_in_special_list(word)
if a:
score += b #Add b to the running score
else:
...other things...
您可以输入 continue
语句。
for word in lis:
#Finds word in list
if word_in_first_list(word):
score += 1
continue
if word_in_second_list(word):
score -= 1
continue
a, b = word_in_special_list(word)
if a:
score += b #Add b to the running score
else:
...other things...
我认为这具有您想要达到的效果。顺便说一下,我不明白你为什么需要函数 word_in_first_list
。 if word in first_list
怎么了?