我有这段代码 我希望如果输入1,2,3,4以外的任何东西再次输入
import msvcrt
answer = msvcrt.getch()
while answer not in ['1','2','3','4']:
answer = msvcrt.getch('Enter a valid option (1,2,3,4): ')
输入列表中没有的任何内容会出现此错误:
TypeError: getch() takes exactly 0 arguments (1 given)
但我不知道为什么它给了我这个错误 任何帮助表示赞赏
答案 0 :(得分:3)
错误文字是不言自明的。在第二行中,您正确调用了getch:
answer = msvcrt.getch()
为了使代码能够按预期进行操作,请将其更改为:
while answer not in ['1','2','3','4']:
print 'Enter a valid option (1,2,3,4): '
answer = msvcrt.getch()
答案 1 :(得分:2)
错误消息的含义正是它所说的:msvcrt.getch()
是一个不带参数的函数。
你在这里用一个参数调用它:
answer = msvcrt.getch('Enter a valid option (1,2,3,4): ')
如果您要打印提示,请先使用单独的print
来电。
答案 2 :(得分:0)
此行认为您尝试将值传递给getch
,这是不允许的。
answer = msvcrt.getch('Enter a valid option (1,2,3,4): ')
文档:https://docs.python.org/2/library/msvcrt.html
虽然你第一次使用getch很好,但第二次使用会产生错误。