繁体   English   中英

运行包含两个while循环的此函数时,如何解决不必要的打印语句被打印的问题?

[英]How can I fix unnecessary print statements from being printed while i run this function containing two while loops?

如您所见,我还很新,我甚至很难措辞我的问题,但是我的问题是,当退出循环时,类型是“ A”,当我只需要项目和总计时,它打印出项目并总计两次。 其次,当type为“ T”时,我只希望在退出循环时打印总计,但它会打印出我的第一个循环所需的上述语句。

def ar(type):
    total = 0
    items = ""
    print("Input an integer to add to the total or \"Q\" to quit")
    while type == "A":
        user_input = input("Enter an integer or \"Q\": ")
        if user_input.isdigit():
            items += user_input + "\n"
            total += int(user_input)
        elif user_input == "q":
            break
        elif user_input == "Q":
            break
        else:
            print(user_input, " is not an invalid input")
    print("Items \n" + items) 
    print("\nTotal \n" + str(total))          
    while type == "T":
        user_input = input("Enter an integer or \"Q\": ")
        if user_input.isdigit():
            total += int(user_input)
        elif user_input == "q":
            break
        elif user_input == "Q":
            break
        else:
            print(user_input, " is not an invalid input")
    print("\nTotal \n" + str(total))

输出结果如下所示:

输入一个整数加到总数上或输入“ Q”退出

输入整数或“ Q”:3

输入一个整数或“ Q”:6

输入整数或“ Q”:24

输入整数或“ Q”:17

输入整数或“ Q”:61

输入整数或“ Q”:九

九个无效输入

输入整数或“ Q”:q

物品

3

6

24

17

61

111

呼叫“ T”(仅打印总计)

输入一个整数加到总数上或输入“ Q”退出

输入整数或“ Q”:5

输入整数或“ Q”:7

输入整数或“ Q”:退出

12

这是我的输出结果:

如果我叫ar(“ A”)

输入一个整数加到总数上或输入“ Q”退出

输入整数或“ Q”:3

输入一个整数或“ Q”:6

输入整数或“ Q”:24

输入整数或“ Q”:17

输入整数或“ Q”:61

输入整数或“ Q”:九

九个无效输入

输入整数或“ Q”:q

物品

3

6

24

17

61

111

111

如果我打电话给ar(“ T”)

输入一个整数加到总数上或输入“ Q”退出

物品

0

输入整数或“ Q”:5

输入整数或“ Q”:7

输入整数或“ Q”:退出

12

ps这不是硬件,我正在上edx的免费课程,这只是练习。

一些事情:

print("\nTotal \n" + str(total))

在你的代码中出现两次-每一次后while 如果在两种情况下都需要打印总计,则在第一个记录后删除一个while并在文件末尾仅保留一个。

你可以改变

elif user_input == "q": break elif user_input == "Q": break

elif user_input == "q" or user_input == "Q":
    break

type是函数接收的变量,并且在函数中不会更改。 没有理由使用while ,可以使用if type == 'A': ... elif type == 'T': ...命令

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM