首页 > 解决方案 > 如果满足 else 条件,则循环 if 语句

问题描述

所以我有一个 If-elif 语句,如果满足 else 条件,我想打印一些文本并循环。这是代码:

print("Search Options:\n1. s - Search by keyword in general\n2. u - Search for specific user data\n3. kwin - Search a keyword in a specific user\n4. allin - Search for all data by and mentioning a user")

search_mode = input("How would you like to search?: ")

if "s" in search_mode:
    kwsearch = input("What Keyword do you want to use?: ")
elif "u" in search_mode:
    username = input("What is the username?: ")
elif "kwin" in search_mode:
    kwinuser = input("What is the username?: ")
    kwinword = input("What is the keyword?: ")
elif "allin" in search_mode:
    allinuser = input("What is the username?: ")
else:
    print("Error. Please check spelling and capitalization")

当人们搞砸并且没有正确放置选项之一时,我想循环回到 if 语句,以便当他们输入正确的选项时,循环将结束,其余代码将继续。

我尝试了一个 for 循环并将其全部包装为一个函数,但它最终会进入打印错误消息的无限循环。有没有办法用while循环来做到这一点?我是否需要阻止它以重复它的功能?

提前致谢!

标签: pythonloopsif-statement

解决方案


在 Python 中,我看到的最惯用的东西是while True

while True:
    search_mode = input("How would you like to search?: ")
    if "s" in search_mode:
        kwsearch = input("What Keyword do you want to use?: ")
    elif "u" in search_mode:
        username = input("What is the username?: ")
    elif "kwin" in search_mode:
        kwinuser = input("What is the username?: ")
        kwinword = input("What is the keyword?: ")
    elif "allin" in search_mode:
        allinuser = input("What is the username?: ")
    else:
        print("Error. Please check spelling and capitalization")
        continue
    break

推荐阅读