gpt4 book ai didi

Python - 更好的循环解决方案 - 出现错误后重新运行并在 3 次尝试后忽略该错误

转载 作者:行者123 更新时间:2023-12-01 02:30:31 25 4
gpt4 key购买 nike

我在下面创建了 for 循环来运行一个函数,从 pandas 获取价格数据作为股票代码列表。基本上,如果收到 RemoteDataError,循环将重新运行该函数,并在 3 次尝试后忽略该错误。

尽管下面的 for 循环可以很好地实现此目的,但我确实认为有更好的解决方案,因为我无法定义下面循环的尝试次数,例如在 for 循环之外放置一个 while 循环来尝试次数。我尝试定义一个名为 attempts = 0 的变量,每次重新运行时,都会添加一次尝试。逻辑是 attempts += 1。如果 attempts 达到 3,则使用 continue 忽略错误。然而,这并没有奏效。可能是我设置错误了。

 for ticker in tickers:
print(ticker)
try:
get_price_for_ticker()
except RemoteDataError:
print('No information for {}'.format(ticker))
try:
get_price_for_ticker()
print('Got data')
except RemoteDataError:
print('1st with no data')
try:
get_price_for_ticker()
print('Got data')
except RemoteDataError:
print('2nd with no data')
try:
get_price_for_ticker()
print('Got data')
except RemoteDataError:
print('3rd with no data (should have no data in the database)')
continue

是否有更好的方法来实现此目的?

最佳答案

Is there a better method for this purpose?

是的,有。使用 while 循环和计数器。

count = 0
while count < 3:
try:
get_price_for_ticker()
break # reach on success
except RemoteDataError:
print('Retrying {}'.format(count + 1))
count += 1 # increment number of failed attempts

if count == 3:
... # if count equals 3, the read was not successful

此代码应位于外部 for 循环内。或者,您可以使用 while + 错误处理代码定义一个接受 ticker 参数的函数,并且可以在每次迭代时调用 that 函数for 循环的一部分。这是风格问题,由您决定。

关于Python - 更好的循环解决方案 - 出现错误后重新运行并在 3 次尝试后忽略该错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46872104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com