Python if语句中的Pass语句

Python if语句中的Pass语句,python,python-2.7,loops,if-statement,for-loop,Python,Python 2.7,Loops,If Statement,For Loop,我试图理解,在这段代码中,python为什么要打印字母w?我使用python 2.7.8: LetterNum = 1 for Letter in 'Howdy!': if Letter == 'w': pass print 'Encountered w, not processed.' print ('Letter', LetterNum, 'is', Letter) LetterNum+= 1 我得到这个结果: >>&g

我试图理解,在这段代码中,python为什么要打印字母w?我使用python 2.7.8:

LetterNum = 1

for Letter in 'Howdy!':
    if Letter == 'w':
        pass
        print 'Encountered w, not processed.'
    print ('Letter', LetterNum, 'is', Letter)
    LetterNum+= 1
我得到这个结果:

>>> 
('Letter', 1, 'is', 'H')
('Letter', 2, 'is', 'o')
Encountered w, not processed.
('Letter', 3, 'is', 'w')
('Letter', 4, 'is', 'd')
('Letter', 5, 'is', 'y')
('Letter', 6, 'is', '!')
虽然我认为我应该得到这个结果:

>>> 
('Letter', 1, 'is', 'H')
('Letter', 2, 'is', 'o')
Encountered w, not processed.
('Letter', 4, 'is', 'd')
('Letter', 5, 'is', 'y')
('Letter', 6, 'is', '!')
>>>  

您正在尝试使用pass,好像它是在继续。Pass不执行任何操作,而continue跳过当前迭代。以下是正确使用continue执行所需操作的代码:

LetterNum = 1

for Letter in 'Howdy!':
    if Letter == 'w':
        print 'Encountered w, not processed.'
        continue
    print ('Letter', LetterNum, 'is', Letter)
    LetterNum+= 1

您正在尝试使用pass,好像它是在继续。Pass不执行任何操作,而continue跳过当前迭代。以下是正确使用continue执行所需操作的代码:

LetterNum = 1

for Letter in 'Howdy!':
    if Letter == 'w':
        print 'Encountered w, not processed.'
        continue
    print ('Letter', LetterNum, 'is', Letter)
    LetterNum+= 1

我希望通过@DanDoe的回答,你能得到代码中的逻辑错误。 但如果您只需要所需的输出,另一种解决方案是使用else语句

LetterNum = 1
for Letter in 'Howdy!':
    if Letter == 'w':
        print 'Encountered w, not processed.'
    else:
        print ('Letter', LetterNum, 'is', Letter)
        LetterNum+= 1

这将提高代码的效率。

我希望通过@DanDoe的回答,您可以得到代码中的逻辑错误。 但如果您只需要所需的输出,另一种解决方案是使用else语句

LetterNum = 1
for Letter in 'Howdy!':
    if Letter == 'w':
        print 'Encountered w, not processed.'
    else:
        print ('Letter', LetterNum, 'is', Letter)
        LetterNum+= 1

这将提高代码的效率。

如果需要跟踪for循环中的索引/循环号,则应使用。因此,您可以使用LetterNum,枚举'Howdy!'中的字母:请注意,默认情况下这是零索引的。如果需要跟踪for循环中的索引/循环号,则应使用。因此,您可以使用LetterNum,枚举'Howdy!'中的字母:请注意,默认情况下这是零索引。