我对Python和编程非常陌生。
我一直在浏览如何执行此操作,如果来自用户的输入无效,则重新启动用户定义的函数,并且我遇到的大多数答案都是while循环的功能,我似乎无法正确实现该功能我的代码。
我的代码如下:
mchoices = input('Enter A or B or C or D or E or F: ')
def getRate(choices):
if choices == 'A':
return 'Rate = ' + str(options[0]) + '%'
elif choices == 'B':
return 'Rate = ' + str(options[1]) + '%'
elif choices == 'C':
return 'Rate = ' + str(options[2]) + '%'
elif choices == 'D':
return 'Rate = ' + str(options[3]) + '%'
elif choices == 'E':
return 'Rate = ' + str(options[4]) + '%'
elif choices == 'F':
return 'Rate = ' + str(options[5]) + '%'
else:
return 'Please enter a valid option'
print(getRate(mchoices))
options等于范围(1,20)和radint(2,6),我认为这与我的问题无关,但是如果您对它的含义感到困惑,我想提一下。如果相关的话,我也会把那部分代码也放进去。
我遇到的主要问题是,在代码的“其他”部分的最下方,使其返回“请输入有效选项”。我也希望它重新启动程序,以便用户可以执行其他输入。
我希望答案可以使用while循环来完成某件事,这很好,我似乎无法自己完成。
答案 0 :(得分:0)
定义一种获取用户输入的方法。
$ cat askuser.py
#!/usr/bin/python3
# here's you getRate() method.
def getRate(choices):
# I can only guess at what options is meant to be.
options = [10,20,30,40,50,60]
if choices == 'A':
return 'Rate = ' + str(options[0]) + '%'
elif choices == 'B':
return 'Rate = ' + str(options[1]) + '%'
elif choices == 'C':
return 'Rate = ' + str(options[2]) + '%'
elif choices == 'D':
return 'Rate = ' + str(options[3]) + '%'
elif choices == 'E':
return 'Rate = ' + str(options[4]) + '%'
elif choices == 'F':
return 'Rate = ' + str(options[5]) + '%'
else:
return 'Please enter a valid option'
def ask():
user_input = 'None'
while user_input not in ['A','B','C','D','E','F']:
user_input = input("Enter A, B, C, D or E: ")
return(user_input)
# voila!
print(getRate(ask())
在运行此脚本时会发生以下情况:
$ ./askuser.py
Enter A, B, C, D or E: i
Enter A, B, C, D or E: 0
Enter A, B, C, D or E: XXXXX
Enter A, B, C, D or E: e
Enter A, B, C, D or E: E
Rate = 50%