调试时打印的值不同

时间:2016-09-10 02:31:02

标签: python

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具有正确的值!

1 个答案:

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