嵌套和断开循环

2024-09-28 05:23:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在我询问用户的输入中搜索关键字,如果关键字在输入中,我希望我的代码打开特定的文本文件(我以蛋糕为例)。但如果没有找到关键字,我希望它再问一次问题。你知道吗

然而,我有麻烦结束循环,因为它一直在问这个问题。我一直试图保持我的代码到最低限度,但我总是可以张贴更多,如果需要的。你知道吗

keywords1 = ['jam', 'victoria', 'sponge', 'recipe', 'ingredients']
keywords2 = ['chocolate', 'cake']
keywords3 = ['tiramisu']

def test1():
    global keywords1, keywords2, keywords3, query

    for i in keywords1:
        if i in query:
            f=open('Victoria.txt','r')
            f.read = f.read()
            for i in range(0,1):
                print(f.read)
            f.close()

    for i in keywords1:
        if i not in query:
            question1()
        break

def question1():
    global query
    query = input("\nWhat ingredients do you want?\nmake sure to include the keywords\n")
    test1()

if __name__ == "__main__":
    question1()

然后我想再次使用它n次,因为它只使用一个循环,任何帮助都将不胜感激。你知道吗


Tags: 代码inforreadifdef关键字query
3条回答

如果我没弄错你的问题,你会想要这样的东西:

if __name__ == "__main__":
    n = 5
    for _ in range(0, n+1):  # Loop is called n times
        question1()

或者你是说这部分代码:

for i in keywords1:
    if i in query:
        f=open('Victoria.txt','r')
        f.read = f.read()
        for i in range(0,1):
            print(f.read)
        f.close()

for i in keywords1:
    if i not in query:
        question1()
    break

可以这样做:

for i in keywords1:
    if i in query:
        f=open('Victoria.txt','r')
        f.read = f.read()
        for i in range(0,1):
            print(f.read)
        f.close()
    else:
        question1()
    break

希望这有帮助!你知道吗

你只需要问一次问题

should_ask = true
for i in keywords1:
    if i in query:
        should_ask = false
if should_ask:
    question1()

当然,您可以在第一个循环中集成这些代码

您曾写道,只有在未找到任何关键字时才应提出问题,但对于查询中不存在的每个关键字都应提出问题。我想你需要这样的东西:

def test1():
    if any(keyword in query for keyword in keywords1):
        with open('Victoria.txt','r') as f:
            f_read = f.read()
            for _ in range(0, 1):
                print(f_read)
    else:
        question1()

相关问题 更多 >

    热门问题