2017-05-03 128 views
0

我正在學習python,所以我被卡住了,需要你的幫助。我試圖編寫一個允許用戶輸入數字的程序,然後當按'0'退出時,它輸出某個數字出現的次數。如果我想這樣做對已經設定的列表,例如找apearance的數量爲3號:統計一個數字出現在用戶輸入的一系列數字中的次數

list= (2, 400, 3, 40, 100, 3, 3, 10, 0) 
print(list.count(3)) 

能否請你告訴我什麼,我需要做的,如果我想創建此所以它是不到一個列表,但用戶輸入一系列數字並退出以顯示按'0'時的計數?

我的試用結果如下,但明顯錯誤,因爲不循環或輸入'0'結束。請幫忙。

print('Enter the next number(0 to finish)') 
list1 = [int(x) for x in input().split()] 
print(list1.count(3)) 

回答

1

試試這個

l = list() 

curr_number = -1 
while curr_number != 0: 
    curr_number = int(input("Number: ")) 
    l.append(curr_number) 
print("EXITED") 

print(l.count(3)) 
0

我看不到您的輸入結束。您應該製作一個for循環,一次輸入一個輸入,或者讓用戶輸入一次空格分隔符。喜歡的東西:

numbers = input("Enter the numbers") 
list1 = ... 

否則,你將繼續環路input().split()改變每次插入任何東西,它永遠不會結束的時間。

0

這個怎麼樣?

lst = [] 
while True: 
    try: 
     ans = int(input('enter the next number')) 
    except ValueError: 
     print('the value entered is not an integer') 
    else: 
     if ans == 0: 
      print(lst.count(3)) 
      break 
     else: 
      lst.append(ans) 
      continue 

我們正在建設一個無限循環,使我們手動break當傳遞0 while True。只要0未通過,並且輸入是整數或者可以轉換爲一個,則該值將存儲在列表中,並提示用戶提供另一個值。

0

這應該工作:

list1=list() 
print('Enter the next number(0 to finish)') 
while True: 
    nr=input() 
    if nr.isdigit(): 
    if int(nr)!=0: 
     list1.append(int(nr)) 
    else: 
     break 
print(list1.count(3)) 
0

我會嘗試用正則表達式:

from re import match 

user = "" 

while(not match("^(\d+)+0$", user)): 
    user = input("Enter the next number (0 to finish) :") 

user = [int(n) for n in user.split()[:-1]] 

正則表達式:
^...$意味着在開始時開始分析並在結束時完成。
\d意思是'我想要一個號碼'!
+表示我希望我之前的組至少有一次。
(...)定義一個組。

https://regex101.com/r/ShdA3Z/1

0
myList = [] 
while True: 
    number = int(input('Enter your number (0 to quit): ')) 
    if number != 0: 
     myList.append(number) 
    else: 
     break 

choice = int(input('Enter the Number you want to check for occurrence: ')) 
print(myList.count(choice)) 

結果

Enter your number (0 to quit): 1 
Enter your number (0 to quit): 2 
Enter your number (0 to quit): 1 
Enter your number (0 to quit): 3 
Enter your number (0 to quit): 1 
Enter your number (0 to quit): 4 
Enter your number (0 to quit): 0 
Enter the Number you want to check for occurrence: 1 
3 
0
a = [] 

while True: 
    n = int(input()) 
    if number != 0: 
     a.append(number) 
    else: 
     break 

b = int(input()) 
print(a.count(b)) 
相關問題