正如你所看到的,我很新,我甚至无法解决我的问题,但我的问题是说类型是" 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上学习免费课程,这只是练习。
答案 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': ...
命令