Python2.7:处理非字符串的错误输入

2024-04-19 15:54:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个程序,它应该包含一种方法,告诉用户,如果用户将其中一个变量作为名称输入,那么它的输入不是字符串。你知道吗

例如,程序需要用户输入任何字符串,如果它是字典中包含的字符串,它将打印出它的值,如果不是,它将打印出一条错误消息。你知道吗

ageofdeath.getage('JesusChrist')

33

ageofdeath.getage('John McCena')

这不是圣经里的人物。请输入圣经中人物的名字。你知道吗

但是,当遇到错误的用户输入时,程序至少应该抛出一条错误消息,例如

ageofdeat.getage(JesusChrist)

理想的情况是弹出一条消息,内容是“This is not a string please input a string”。相反,无论我尝试使用if=还是isinstance,它总是显示典型的pythonname is not defined错误。有没有办法解决这个问题,因为这是pythonshell处理输入的默认方法?你知道吗


Tags: 方法字符串用户程序名称消息stringis
1条回答
网友
1楼 · 发布于 2024-04-19 15:54:10

您的程序甚至没有到达执行getage()方法的部分。它的失败要早得多。你知道吗

您正在使用input()而不是raw_input()。因此JesusChrist被作为变量的名称,因为input()将用户键入的内容作为Python表达式进行计算。JesusChrist是一个合法的Python变量名,只是还没有定义,所以Python告诉您。因为它知道你不能用一个不存在的值做任何事情,它就停止了。你知道吗

现在,您可以通过将input()包装在try/except块中来捕获该错误,但这只是试图弥补当初做出错误决定的不足。正确的答案是使用raw_input()从用户那里获取输入,它将始终是一个字符串。你知道吗

相关问题 更多 >