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 :(得分: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()
),甚至用法是一般气馁。