Quoting Joseph Quigley <[EMAIL PROTECTED]>:

> prefixes = 'JKLMNOPQ'
> suffix = 'ack'
> 
> for letter in prefixes:
>  if letter == ('O') or ('Q'):
>       print letter + 'u' + suffix
>  else:
>       print letter + suffix

Hi Joseph,

This still won't work.  The reason is that your if statement is interpreted like
this:

if letter == 'O':
    print letter + 'u' + suffix
elif 'Q':
    print letter + 'u' + suffic
else:
    print letter + suffix

Do you see?  The == "binds more tightly" than the or.  And, in python, 'Q' is
considered True for the purposes of tests.

So this is what happens:

>>> prefixes = 'JKLMNOPQ'
>>> suffix = 'ack'
>>> 
>>> for letter in prefixes:
...   if letter == ('O') or ('Q'):
...     print letter + 'u' + suffix
...   else:
...     print letter + suffix
... 
Juack
Kuack
Luack
Muack
Nuack
Ouack
Puack
Quack
>>> 

What you can do instead is this:

for letter in prefixes:
    if letter in ['O', 'Q']:
        print letter + 'u' + suffix
    else:
        print letter + suffix

HTH.

-- 
John.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to