[英]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.