【问题标题】:Display the number of times each output was displayed in 'X's显示每个输出在“X”中显示的次数
【发布时间】:2020-11-17 16:08:39
【问题描述】:
while True:
try:
wins = int(input("enter number of wins: "))
draws = int(input("enter number of draws: "))
losses = int(input("enter number of losses: "))
except ValueError:
print('try again')
continue
if wins>3:
print('qualify')
elif losses>3:
print('disqualify')
elif draws>3:
print('try again')
restart = str(input('enter "restart" to restart or "quit" to quit'))
if restart == 'restart':
continue
elif restart == 'quit':
#quit and display number of occurrences of qualify, disqualify and try again in 'X's
【问题讨论】:
标签:
python
loops
if-statement
conditional-statements
【解决方案1】:
首先,您需要跟踪每个结果的计数。您可以使用三个不同的变量来执行此操作,但我认为使用字典会更容易一些,或者更好的是 Counter:
from collections import Counter
counts = Counter()
确保在你的循环之外初始化这个,因为你想在循环的多次迭代中保持相同的计数器;如果你在循环内重置它,它不会跟踪任何东西!
然后跟踪你看到的结果:
if wins > 3:
result = "qualify"
elif losses > 3:
result = "disqualify"
elif draws > 3:
result = "try again"
else:
print("Not enough of anything to produce a result!")
continue
print(result)
counts[result] += 1
最后,你可以通过字符串乘法将计数转换为“X”标记:
for result in counts:
print(f"{result}: {'X' * counts[result]}")
整体看起来像:
from collections import Counter
counts = Counter()
while True:
try:
wins = int(input("enter number of wins: "))
draws = int(input("enter number of draws: "))
losses = int(input("enter number of losses: "))
except ValueError:
print("try again")
continue
if wins > 3:
result = "qualify"
elif losses > 3:
result = "disqualify"
elif draws > 3:
result = "try again"
else:
print("Not enough of anything to produce a result!")
continue
print(result)
counts[result] += 1
if str(input('enter "restart" to restart or "quit" to quit')) == "quit":
break
for result in counts:
print(f"{result}: {'X' * counts[result]}")
【解决方案2】:
我不明白你的问题,但根据我的理解,我构建了一个解决方案。这将向您显示合格和不合格的发生结果
qualifycount=0
disqualifycount=0
while True:
try:
wins = int(input("enter number of wins: "))
draws = int(input("enter number of draws: "))
losses = int(input("enter number of losses: "))
except ValueError:
print('try again')
continue
if wins>3:
print('qualify')
qualifycount+=1
elif losses>3:
print('disqualify')
disqualifycount+=1
elif draws>3:
print('try again')
restart = str(input('enter "restart" to restart or "quit" to quit'))
if restart == 'restart':
continue
elif restart == 'quit':
#quit and display number of occurrences of qualify, disqualify and try again in 'X's
print("Number of qualify:"+str(qualifycount))
print("Number of disqualify:"+str(disqualifycount))
restart= str(input('press X to run again or press enter to quit'))
if restart=='X':
continue
else:
break