我有这样一个函数:
for product in responseSoup.findAll("offersummary"):
try:
if product.lowestnewprice.formattedprice != None:
price.append(product.lowestnewprice.formattedprice.text)
else:
price.append("")
except:
price.append("")
我不知道如何用try/except块执行if/else语句?列表理解能提高效率吗?你知道吗
[product.lowestnewprice.formattedprice for product in responseSoup.findAll("offersummary")]
try
和except
块用于查看以下代码是否有效。如果不是,并且它与给定的错误匹配,则运行该代码块。否则,运行另一行代码。例如:因此,程序试图分配
m
来自用户的输入。然后n
将输入赋值为整数。现在选择的错误是ValueError
,因为如果m
是一个字符串,那么转换为n
将引发该错误。如果是这样,那么它将执行except
块中的代码,即打印“无效数字”。如果转换成功,则打印n
。你知道吗现在使用您的程序,您将尝试
if
和else
块。如果代码不工作并且引发了except
块中给出的错误,它将执行price.append("")
。否则,它将运行else
块中的代码,而您没有。您需要else:
在try/except
块中工作,这样它才能在except
语句中的关键字except
之后包含指定的错误。你知道吗下面是一个非常可读的解决方案:
如果你真的不在乎可读性,这里有一个看起来非常糟糕的单行线:
它们基本上做相同的事情,但是,在我看来,更具可读性的解决方案更好。你知道吗
编辑
我刚刚想出了一个更好的一行:
它的可读性仍然不如“非常可读”的解决方案,但也不算太差。现在这个决定真的取决于你的喜好。你知道吗
相关问题 更多 >
编程相关推荐