如何“重新启动”循环,以便在程序结束前完成两个Python列表?

2024-09-28 17:00:34 发布

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

我试图创建一个程序,在其中用户输入3个水果和3个非水果到两个不同的列表。你知道吗

用户首先通过输入“水果”或“非水果”来选择第一个列表。 然后用户输入每个符合条件的项目,直到第一个列表已满。你知道吗

我的问题是,一旦第一个选定的列表已满,程序将结束。 我希望提示用户在另一个列表中输入数据,直到它也已满。你知道吗

我认为添加“while len(fruits)<;3和len(notfruits)<;3:”会起作用,但似乎没有什么区别。你知道吗

我该怎么做?你知道吗

fruits = []
notfruits = []
print(fruits)
print(notfruits)
print("Please enter fruits or notfruits:")
y = str(input(": "))
while len(fruits) < 3 and len(notfruits) < 3:
    if y == "fruits":
        while len(fruits) < 3:
            x = str(input(": "))
            x = x.strip()
            if x in notfruits:
                print(x + " is not a fruit!")
            elif x in fruits:
                print(x + " is already in the list!")
            else:
                fruits.append(x)
                print(fruits)
    elif y == "notfruits":
         while len(notfruits) < 3:
            x = str(input(": "))
            x = x.strip()
            if x in fruits:
                print(x + " is a fruit!")
            elif x in notfruits:
                print(x + " is already in the list!")
            else:
                notfruits.append(x)
                print(notfruits)
    else:
        print("Not a valid option!")

Tags: 用户in列表inputlenifiselse
1条回答
网友
1楼 · 发布于 2024-09-28 17:00:34
  1. 考虑使用or而不是and
  2. 将输入部分移到循环中,否则y永远不会改变

我的意思是:

fruits = []
notfruits = []
print(fruits)
print(notfruits)

while len(fruits) < 3 or len(notfruits) < 3:   # replaced `and` with `or`
    print("Please enter fruits or notfruits:") #
    y = str(input(": "))                       # moved the input here
    if y == "fruits":
        while len(fruits) < 3:
            x = str(input(": "))
            x = x.strip()
            if x in notfruits:
                print(x + " is not a fruit!")
            elif x in fruits:
                print(x + " is already in the list!")
            else:
                fruits.append(x)
                print(fruits)
    elif y == "notfruits":
         while len(notfruits) < 3:
            x = str(input(": "))
            x = x.strip()
            if x in fruits:
                print(x + " is a fruit!")
            elif x in notfruits:
                print(x + " is already in the list!")
            else:
                notfruits.append(x)
                print(notfruits)
    else:
        print("Not a valid option!")

相关问题 更多 >