python - 返回从列表中选择的选项

标签 python list if-statement return

我在返回列表选项时遇到问题。

例如:

 Fruits = {
     'Apple': Apple, 'Banana': Banana, 'Orange': Orange}

 def Choose_Fruit():
   Choice = input('Choose a fruit: ')
   if Choice not in Fruits:
     Choose_Fruit()
   return Choice

如果我输入“Appppple”,它会迫使我再次选择。如果我随后输入“Apple”,它会成功返回 Choice,但如果我要打印,它将返回“Appppple”而不是“Apple”。它打印第一个输入,而不是满足 if 语句的输入。

最佳答案

最简单的修复方法是从递归调用返回到 Choose_Fruit

# there isnt much point this being a dict.
Fruits = {'Apple': 'Apple', 'Banana': 'Banana', 'Orange': 'Orange'}

def Choose_Fruit():
    Choice = input('Choose a fruit: ')
    if Choice not in Fruits:
        return Choose_Fruit()
    return Choice

print(Choose_Fruit())

目前,任何递归调用的返回值都会被丢弃,并且在所有情况下都会存储并返回第一次迭代中输入的值。

关于python - 返回从列表中选择的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45806631/

相关文章:

python - 基于变量传递 python3 嵌入式函数未返回正确的值

python - 如何命名将整数列表转换为对列表的函数?

java - 将数据存储到列表中

java - 如何在解析复杂 XML 时尽量减少 XMLStreamReader 中 if else if 的使用

excel - 根据众多标准将值相乘

java - 使用 if 与单选按钮和文本一起归档?

python - Numpy/Scipy求解带积分的联立方程

python - 提高python中的插入速度

Python - 以一种奇怪的方式替换字符串;

python - 按数组python中的字典值排序