【问题标题】:Trying to create a program that tracks which inputs I've added but stuck尝试创建一个程序来跟踪我添加但卡住的输入
【发布时间】:2026-01-17 10:35:01
【问题描述】:

基本上,我试图让我的程序在输入屏幕编号后循环回到主屏幕,无限期地重复,直到我按 T 来终止它。同时,P 应该跟踪我在整个会话期间估算了多少数字。这是我到目前为止所拥有的,我只知道如何循环 screen_number。只是不知道如何循环回到 main_screen 或如何制作“P”函数。

main_screen = str(input("Pick W to add a new number, P to show how many numbers, high or low, have been added, or T to terminate: "))
if(main_screen == "W"):
    screen_number = int(input("Input your grade: "))    
    if(screen_number >= 10):
        print("It's high.")
    elif(user_grade < 10):
        print("It's low.")
if(user_menu == "T"):
    print("Terminating system.")
else:
    print("Invalid.")```

【问题讨论】:

  • 您可以尝试将您的代码封装到 while loop 中,并在 T 输入上放置 break

标签: python loops if-statement counter


【解决方案1】:

尝试使用条件循环并在输入正确的输入时中断:

while True:
    main_screen = str(input("Pick W to add a new number, P to show how many numbers, 
    high or low, have been added, or T to terminate: "))
    if(main_screen == "W"):
        screen_number = int(input("Input your grade: "))    
    if(screen_number >= 10):
        print("It's high.")
    elif(user_grade < 10):
        print("It's low.")
    if(user_menu == "T"):
        print("Terminating system.")
        return
    else:
        print("Invalid.")

【讨论】:

  • 您可以使用编辑器中的{} 按钮将所选行格式化为代码。从技术上讲,它只是在行前放了 4 个空格,所以也可以。
  • 对代码本身的注释:return 只在函数内部起作用(并且不仅结束循环,而且结束之后的所有内容),break 可能是更好的选择
【解决方案2】:

试试这个:

while True:
    main_screen = input("Pick W to add a new number\nP to show how many numbers high or low have been added\nT to terminate: ")
    if main_screen == "W":
        user_grade = int(input("Input your grade: "))    
        if user_grade >= 10:
            print("It's high.")
        elif user_grade < 10:
            print("It's low.")
    elif main_screen == "T":
        print("Terminating system.")
        break
    else:
        print("Invalid.")

【讨论】:

    【解决方案3】:

    制作一个列表并将“P”的值存储在其中。使用while循环返回main_screen

    l = []
    while True:
        main_screen = input("Pick W to add a new number, P to show how many numbers, high or low, have been added, or T to terminate: "))
        if (main_screen == "W"):
            screen_number = int(input("Input your grade: "))    
            if (screen_number >= 10):
                print("It's high.")
            elif (user_grade < 10):
                print("It's low.")
            l.append(screen_number)
        elif (user_menu == "T"):
            print("Terminating system.")
            break
        elif (user_menu == "P"):
            print(f"No. of numbers is {len(l)}")
        else:
            print("Invalid.")
    

    【讨论】: