2017-06-07 53 views
1

我試圖使將輸出多少次從一系列數字的數目7出現(無特定範圍的)由輸入的程序用戶每個號碼將是一個單獨的輸入,而不是一個。Python的3.x的來自用戶的輸入計數的特定數量的頻率

我已搜查甚廣,但解決方案,我發現涉及字母,單詞或數字從預先製作的列表,而不是INT從用戶輸入和誤當我試圖修改的目的。我確信我錯過了一些非常明顯的事情,但我無法弄清楚如何做到這一點。

(我想反,如果num = = 100,計數(100),因爲我在範圍內,等等等等 - 但我清楚我在錯誤的道路上)

我的出發點是想修改該一個打印次數最多的,因爲我的目標了類似的格式:

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

嘗試以下操作:

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')) 
+0

這很美!它沒有行李就是我想要的。感謝您的時間和我頭痛的解決方案! – CoderBaby

+0

樂意幫忙。您可以隨時聯繫以獲取其他幫助 –

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") 
+0

不太我一直在尋找,但我會記住它爲今後類似的事情。感謝您的時間和幫助! – CoderBaby

2

考慮

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

+0

不是我正在尋找的東西,而是一些代碼,我會牢記以備將來參考。感謝您的時間和幫助! – CoderBaby