所以我正在构建一个基于ASCII的计算器,我想要考虑到用户在输入时的变化(比如在if/else序列中同时接受"Quit“和"quit”、"QUIT“、"q”和"Q“)。这是我想出来的,但可能有更好的方法,因为它只接受列出的第一个输入类型。
elif input == ("j" or "J" or "linear" or "Linear" or "quadratic" or "Quadratic" or "linear and
quadratic" or "Linear and Quadratic" or "Linear and quadratic" or "linear and quadratic" or "LINEAR
AND QUADRATIC"):在这种情况下,如果使用任何其他输入变量,序列将只接受"j“并抛出my else错误消息。有没有更好的方法呢?我使用python 3btw。
发布于 2020-02-07 14:15:16
我建议将期望值/期望值传递给某种函数:
def get_input(message, desired_values, is_int=False):
user_input = input(message)
if user_input in desired_values:
return user_input if not is_int else int(user_input)
else:
return get_input("Wrong input, possible inputs: {}: ".format(
", ".join(desired_values)), desired_values, is_int)
input = get_input("type", ['v1', 'v2'])发布于 2020-02-07 14:20:35
你可能想要
quit = {"q", "quit", ...}
if input in quit:
# actually quit此外,将输入转换为小写可能会更容易(使用input.lower() in quit),所以您不需要编写所有的变体(例如"quit","Quit",“QUIT”……如果这不是问题的话,它也会接受"qUiT“)。
https://stackoverflow.com/questions/60108012
复制相似问题