用户输入的Python控制流程

时间:2018-01-31 05:38:54

标签: python json

我正在尝试编写一个字典应用程序,包含用户输入字,返回定义。此外,如果输入错误,程序会循环输入3个最接近的匹配项并询问用户是否是他们的意思。我的控制流未正确运行,因为'y'不会突破循环或返回定义。我没有收到任何错误消息。有人能告诉我如何解决?如果3个建议都不是用户的意思,我还能够返回“没有接近的匹配”。

因此在函数中有3个场景:单词,非单词与紧密匹配(可能是拼写错误),非单词没有紧密匹配(可能是随机输入)。这是我有的第二个场景问题。

    key=input('Enter the word: ')
    key=key.lower()
    dym=get_close_matches(key,data.keys())

    def find_meaning():
        if key in data:
            return data[key]
        elif len(dym)>0:
            for i in dym:
                choice=input('Did you mean '+i + ' Y/N ')
                if choice=='Y' or 'y':
                    break
                    return data[i]
                elif choice=='N' or 'n':
                    continue

        else:
            return 'Word does not exist!'

    print(find_meaning())

从上面的脚本中删除'break'后,我在运行时得到了这个输出:

Tokas-MBP:Python_Mega_Course tzhu9$ python3 dictionary.py
Enter the word: rainn
Did you mean rain Y/N n
['Precipitation in the form of liquid water drops with diameters greater than 0.5 millimetre
s.', 'To fall from the clouds in drops of water.']

我打算看到的结果是程序会问第二个最接近的匹配'你是不是意味着',而不是输出我不想要问的单词的定义。

1 个答案:

答案 0 :(得分:0)

试试这个:

if choice=='Y' or choice=='y':
        break
        return data[i]
elif choice=='N' or choice=='n':
        continue

我不明白为什么如果你要回来那么休息。