我正在编写一个程序,它应该包含一种方法,告诉用户,如果用户将其中一个变量作为名称输入,那么它的输入不是字符串。你知道吗
例如,程序需要用户输入任何字符串,如果它是字典中包含的字符串,它将打印出它的值,如果不是,它将打印出一条错误消息。你知道吗
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处理输入的默认方法?你知道吗
您的程序甚至没有到达执行
getage()
方法的部分。它的失败要早得多。你知道吗您正在使用
input()
而不是raw_input()
。因此JesusChrist
被作为变量的名称,因为input()
将用户键入的内容作为Python表达式进行计算。JesusChrist
是一个合法的Python变量名,只是还没有定义,所以Python告诉您。因为它知道你不能用一个不存在的值做任何事情,它就停止了。你知道吗现在,您可以通过将
input()
包装在try
/except
块中来捕获该错误,但这只是试图弥补当初做出错误决定的不足。正确的答案是使用raw_input()
从用户那里获取输入,它将始终是一个字符串。你知道吗相关问题 更多 >
编程相关推荐