【问题标题】:How do i handle ValueError in this code Python? [duplicate]如何在此代码 Python 中处理 ValueError? [复制]
【发布时间】: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 我试试看

标签: python python-3.x loops error-handling valueerror


【解决方案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: ")

【讨论】:

    猜你喜欢
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多