大家好,我是一名大一學生,現在在學習Python,可能問題對于大家有些許簡單,勞煩各位朋友,先感謝大家幫我解惑!
題目內容:
統計在某字串中各個字母出現的次數
str=input("請輸入一串字母") #將輸入字母保存在str中
vocabulary={} #建立空字典vocabulary
value=https://bbs.csdn.net/topics/0
for i in str: #遍歷字串str
while i in vocabulary: #如果i在字典里就更新value
value = value + 1
vocabulary.update({i: value})
else: #不在就創建新字典{i:value}
value = 1
vocabulary.update({i: value})
for item in vocabulary.items(): #列印字典
print(item)
我遇到的問題是while回圈不能運行,但是沒有報錯,所以非常疑惑,希望有人可以指點,十分感謝!
如果大家能有更好的方法解決問題,也可以提出來,十分感謝!
uj5u.com熱心網友回復:
不懂這個語言,從代碼上來看,while 應該是 if 吧,回圈是由 for 實作的才對。另外,value 是個單純的變數好像也不對,不能統計出每個字母的出現次數,它應該是個字母表對應的陣列或表,或定義為字母表內的一個元素。uj5u.com熱心網友回復:
感謝
,就把while改成if就好了,剛開始學就一下卡住了哈哈
uj5u.com熱心網友回復:
好像這里if和else里不能都用value了
uj5u.com熱心網友回復:
樓主,你好像把問題想復雜了吧?這么寫就能達到你的目的:
#將輸入字母保存在str中
str1=input("請輸入一串字母:")
dict1={} #建立空字典dict1
for s in str1:
cnt = dict1.get(s,0) #出現了字符s則取對應的統計值,未出現則回傳默認值0
cnt += 1
dict1.update({s:cnt}) #根據key:value的方式進行更新字典
print(dict1)
uj5u.com熱心網友回復:
樓主,你好像把問題想復雜了吧?
這么寫就能達到你的目的:
#將輸入字母保存在str中
str1=input("請輸入一串字母:")
dict1={} #建立空字典dict1
for s in str1:
cnt = dict1.get(s,0) #出現了字符s則取對應的統計值,未出現則回傳默認值0
cnt += 1
dict1.update({s:cnt}) #根據key:value的方式進行更新字典
print(dict1)
哈哈十分感謝你了,我現在已經解決了,十分感謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/86674.html
標籤:匯編語言
