如何在此代码 Python 中处理 ValueError? [复制]

Posted

技术标签:

【中文标题】如何在此代码 Python 中处理 ValueError? [复制]【英文标题】:How do i handle ValueError in this code Python? [duplicate] 【发布时间】:2018-12-22 08:06:02 【问题描述】:

我以前做过这个,但我认为这个错误出现了,因为我没有循环代码,代码只工作一次,然后在第二次尝试时显示错误。

我的代码:

import string
import time
def timer(x):
    for n in range(x,0,-1):
        time.sleep(1)
        print(n)
    print("Times Up"+"\n")
    ask("Time for: ")

def ask(a):
    x=int(input(str(a)))
    print("\n"+"Clock's Ticking")
    timer(x)
try:
    ask("Time for: ")
except ValueError:
    ask("Enter a number to time: ")

我希望我的代码在我输入不是整数的东西时不会出错,但在用户输入整数之前不知道如何循环异常代码。

【问题讨论】:

为什么不把异常处理放到ask函数本身呢?那么无论是否在循环中,都会处理异常。 wowzers 200 iq ok 我试试看 【参考方案1】:

将异常处理移至ask函数:

import string
import time
def timer(x):
    for n in range(x,0,-1):
        time.sleep(1)
        print(n)
    print("Times Up"+"\n")
    ask("Time for: ")

def ask(a):
    x = None
    while x is None:
        try:
            x=int(input(str(a)))
        except ValueError:
            print('Enter a number to time!')
    timer(x)

ask("Time for: ")

【讨论】:

以上是关于如何在此代码 Python 中处理 ValueError? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

python 如何在不知道的情况下获取相对文件路径。在此示例中,Python代码,HTML文件。

如何在此 python 代码中获取集群图? ValueError:x 和 y 必须具有相同的第一维

如何在此服务器中实现 Websocket 握手?

如何在此 Python 代码中设置时间? [复制]

元组列表字典集合的简单梳理

我找到了一些显示/隐藏桌面图标的代码,但它会在此过程中移动图标。如何编辑代码以不移动图标?