Python中文本菜单的处理
我正在尝试用Python创建一个基于文本的菜单 代码如下:Python中文本菜单的处理,python,Python,我正在尝试用Python创建一个基于文本的菜单 代码如下: #!/usr/bin/env python def testcaseOutput(): print '1. Add. 2. Subtract. 3. Divide. 4. Multiply' try: answer = int(raw_input('Enter a value (1 - 4) >. ')) except ValueError: print 'Inval
#!/usr/bin/env python
def testcaseOutput():
print '1. Add. 2. Subtract. 3. Divide. 4. Multiply'
try:
answer = int(raw_input('Enter a value (1 - 4) >. '))
except ValueError:
print 'Invalid input. Enter a value between 1 -4 .'
testcaseOutput()
if answer in range(1, 5):
return answer
else:
print 'Invalid input. Enter a value between 1 - 4.'
testcaseOutput()
我的问题:
当用户输入无效输入(即不是数字)时,我希望再次调用此函数。因此,我使用了递归方法,我认为这是一种糟糕的设计。我在未来再次使用这种方法
if answer in range(1, 5).
还有别的办法吗?当输入无效时,我需要再次调用提示
还有,我有没有办法将这两个约束合并在一起:检查输入是否是一个数字,以及数字是否在(1,5)范围内?如你所见,我正在逐一检查 一种可能的重构方法是使用循环,该循环继续打印指令并读取输入,直到给出可接受的输入:
def testcaseOutput():
while True:
print '1. Add. 2. Subtract. 3. Divide. 4. Multiply'
try:
answer = int(raw_input('Enter a value (1 - 4) >. '))
except ValueError:
print 'Invalid input. Enter a value between 1 -4 .'
continue
if not answer in range(1, 5):
print 'Invalid input. Enter a value between 1 - 4.'
continue
return answer
一种可能的重构方法是使用循环,该循环继续打印指令并读取输入,直到给出可接受的输入:
def testcaseOutput():
while True:
print '1. Add. 2. Subtract. 3. Divide. 4. Multiply'
try:
answer = int(raw_input('Enter a value (1 - 4) >. '))
except ValueError:
print 'Invalid input. Enter a value between 1 -4 .'
continue
if not answer in range(1, 5):
print 'Invalid input. Enter a value between 1 - 4.'
continue
return answer
将整个函数体放入
while True:
循环(当然是删除递归调用)。将整个函数体放入while True:
循环(当然是删除递归调用)。谢谢。我想用一个循环,但不知道怎么做。谢谢。我想使用循环,但不知道如何进行。相关:相关: