2016-09-10 79 views
-5
cnt = 0 
s = 'aghe' 
s_len = len(s) 
s_len = s_len - 1 
while s_len >= 0: 
    if s[s_len] in ('aeiou'): 
     cnt += 1 
    s_len -= 1 
    break; 
print ('numofVowels:'),cnt 

這會打印cnt的值。調試時,cnt具有正確的值!調試時打印的值不同

+0

擺脫';'在'break'後有一件事。你想要幫助什麼問題? – elethan

+2

你的問題是什麼? – RafaelC

+0

Python 2或3?打印,還是不打印? – user2357112

回答

0

你會想擺脫break,並確保包括cnt括號內爲您print調用(有它的括號外將導致其無法在Python 3打印):

cnt = 0 
s = 'aghe' 
s_len = len(s) 
s_len = s_len - 1 

while s_len >= 0: 
    if s[s_len] in ('aeiou'): 
     cnt += 1 
    s_len -= 1 
print('numofVowels:', cnt) 

while循環中的break將確保它只循環一次,然後停止(break s),如果您試圖計算字符串中的所有元音,這可能不是您想要的。另外,如果您必須使用break,請不要使用分號;。這不會在Python中導致語法錯誤,但在這種情況下不是必需的,並且專門用於(AFAIK)在Python中將單個語句放在多個語句中(例如,import pdb; pdb.set_trace()),甚至不鼓勵使用該語法。