我正在尝试制作一个程序,用于输出用户输入的一系列数字(没有特定范围)出现数字7的次数。 每个号码都是一个单独的输入,而不是一个。
我搜索的范围很广,但我找到的解决方案涉及来自预制列表的字母,单词或数字,而不是来自用户输入的int,当我尝试修改时出错。我确定我错过了一些非常明显的东西,但我无法弄清楚如何做到这一点。
(我试过Counter,如果num == 100,count(100),i在范围内等等 - 但我显然走错路了)
我的出发点是尝试修改打印最高数字的那个,因为我的目标是采用类似的格式:
x = 0
done = False
while not done:
print("Enter a number (0 to end): ")
y = input()
num = int(y)
if num != 0:
if num > x:
x = num
else:
done = True
print(str(x))
感谢您对此提出的任何建议。
答案 0 :(得分:3)
考虑
from collections import Counter
nums = []
c = Counter()
done = False
while not done:
y = int(input("Enter a number (0 to end): "))
if y == 0:
done = True
else:
c.update([y])
print(c)
示例输出:
Enter a number (0 to end): 1
Counter({1: 1})
Enter a number (0 to end): 2
Counter({1: 1, 2: 1})
Enter a number (0 to end): 2
Counter({2: 2, 1: 1})
Enter a number (0 to end): 2
Counter({2: 3, 1: 1})
Enter a number (0 to end): 0
如果用户输入非整数,这显然会中断。如果需要,请移除int(input..)
或添加try-except
。
答案 1 :(得分:0)
您可以使用以下代码示例。它希望第一个输入作为您要在列表中搜索的数字。其次是每个单独的行列表。
x = 0
done = False
count = 0
i = input("Which number to search: ")
print("Enter list of numbers to search number",i,", enter each on separate line and 0 to end): ")
while not done:
j = input()
num = int(j)
if int(j) == 0 :
print("exitting")
break
else:
if j == i:
count += 1
print("Found number",i,"for",count,"number of times")
答案 2 :(得分:0)
尝试以下方法:
x = ''
done = False
while not done:
print("Enter a number (0 to end): ")
y = input()
if y != '0':
x = x + y
else:
done = True
print(x.count('7'))