当我运行包含两个while循环的函数时,如何修复不必要的打印语句?

时间:2018-02-01 11:17:36

标签: python printing while-loop

正如你所看到的,我很新,我甚至无法解决我的问题,但我的问题是说类型是" A"当你退出循环时,当我只需要项目和总数时,它打印出项目并总计两次。其次,当类型为" 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":9

九是无效输入

输入一个整数或" 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":9

九是无效输入

输入一个整数或" Q":q

产品

3

6

24

17

61

总计

111

总计

111

如果我用ar打电话(" T")

输入一个整数来添加到总数或" Q"退出

产品

总计

0

输入一个整数或" Q":5

输入一个整数或" Q":7

输入一个整数或" Q":退出

总计

12

P.S。这不是HW我在edx上学习免费课程,这只是练习。

1 个答案:

答案 0 :(得分:0)

少数事情:

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': ...命令