以下代码是用python编写的。
import subprocess as sp
def user_input():
sp.call('cls',shell=True)
print('[1]: ASCII to Binary')
print('[2]: Binary to ASCII')
valid_answer()
def valid_answer():
while True:
try:
user_input = int(input('Please type 1 or 2: '))
sp.call('cls',shell=True)
break
except ValueError:
print('Please enter a valid input...')
sp.call('pause',shell=True)
user_input()
while True:
if user_input < 0:
print('Input must be 1 or 2.')
sp.call('pause',shell=True)
user_input()
elif user_input > 2:
print('Input must be 1 or 2.')
sp.call('pause',shell=True)
user_input()
else:
break
if user_input == (1):
print('Good.')
exit
elif user_input == (2):
print('Good.')
exit
user_input()
每当我在CMD Shell中运行该文件时,它都可以正常工作,直到我到达这部分代码:
while True:
if user_input < 0:
print('Input must be 1 or 2.')
sp.call('pause',shell=True)
user_input()
elif user_input > 2:
print('Input must be 1 or 2.')
sp.call('pause',shell=True)
user_input()
else:
break
如果user_input没有返回1或2,我收到此错误:
我无法弄清楚我的代码有什么问题,而且我也不了解CMD Shell引发的任何错误。有谁知道我做错了什么?
答案 0 :(得分:2)
问题在于:
user_input = int(input('Please type 1 or 2: '))
此时,您将user_input
设置为一个数字,然后稍后您尝试使用user_input()
拨打该号码,这与执行此操作相同:
>>> user_input = 1
>>> user_input()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable