在这种情况下我应该如何插入 try- except

sac*_*kar 3 python string python-3.x try-except valueerror

任务1

编写一个脚本,从 STDIN 读取字符串,如果字符串超过 10 个字符,则引发 ValueError 异常,否则打印读取的字符串。

我这样写代码

a = input("Enter a string")
if(len(a) > 10):
    raise ValueError
else:
    print(a)
Run Code Online (Sandbox Code Playgroud)

任务2

使用try ... except子句。打印 except 块内的错误消息。

我现在对如何使用try-except这里感到困惑,因为要打印except块中的任何消息,程序必须在try块中失败。

我的输入将是PythonIsAmazing

CDJ*_*DJB 5

您可以将整个事情包装try ... except如下:

a = input("Enter a string: ")

try:
    if(len(a) > 10):
        raise ValueError
    print(a)
except ValueError:
    print("String was longer than 10 characters")
Run Code Online (Sandbox Code Playgroud)

或者,如果您可能会遇到很多不同的问题ValueErrors,您可以为每个问题提供单独的错误消息:

a = input("Enter a string: ")

try:
    if(len(a) > 10):
        raise ValueError("String was longer than 10 characters")
    print(a)
except ValueError as e:
    print(e)
Run Code Online (Sandbox Code Playgroud)

例如:

Enter a string: test
test

Enter a string: PythonIsAmazing
String was longer than 10 characters
Run Code Online (Sandbox Code Playgroud)