2016-08-05 28 views
0

我必須編寫一個代碼,用於查找最常使用的字母/字符(包括特殊字符,如。,/),同時允許用戶在輸入「!」之前繼續輸入新的輸入。我寫了以下內容,但它只計算輸入的最後一個字符串中最頻繁的字母。有誰知道我如何解決這個問題,以便計算所有輸入中使用最頻繁的信件?謝謝!如何計算在while循環內輸入的各種字符串中最頻繁的字符?

更新:我通過將所有輸入添加到列表中,將列表轉換爲字符串並查找字符串中最常見的值來解決此問題。不知道是否有更有效率的東西,但這工作!

while w.count != 2: 
    w = input("Enter here: ") 
    w.count("!") 
    max_letter = w[0] 
    min_letter = w[0] 
    max = w.count(w[0]) 
    min = w.count(w[0]) 
    for char in w: 
      if char is not " ": 
       if w.count(char) > max: 
         max_letter = char 
         max = w.count(char) 
print(max,max_letter) 
+0

嘗試在'while'循環之前放置'min','max'初始化,然後在每個循環中更新這些值(如果它們需要的話)。 – Julien

+0

我的打印聲明實際上在裏面;我在我的問題上錯了 - 對不起!它仍然在每個while循環後重置。我在while循環中有一堆字符計數器,如「if letter ==」a「:a_counter + = 1」,並且這些不重置,但max_letter事件總是重置。 :( – user6627144

回答

1

使用while循環內的打印語句。

while w.count != 2: 
    w = input("Enter here: ") 
    w.count("!") 
    max_letter = w[0] 
    min_letter = w[0] 
    max = w.count(w[0]) 
    min = w.count(w[0]) 
    for char in w: 
      if char is not " ": 
       if w.count(char) > max: 
         max_letter = char 
         max = w.count(char) 
    print(max,max_letter) 
+0

我實際上在「w = input(...)」和「print(max,max_letter)」之間有一堆計數器,所以這些計數器在每個while循環後都保持計數,但最大字母總是重置。 (我的打印語句實際上是在裏面;我在我的問題中輸入了錯誤 - 對不起! – user6627144