On 16/12/2015 19:37, Ken Hammer wrote:
Intent is to print "Jack, Kack, ...." with "O" and "Q" delivering a longer suffix.  Instead, I get 
the printout shown with duplicates and a second deviation with "O" and "Q" as shown.
Why?

That's what you've told the code to do :)


prefixes = 'JKLMNOPQ'   ###FAILS WITH REPEATS

### OH NO IT DOESN'T - nothing personal but it's pantomine season in the UK :)

suffix = 'ack'
suffixb= 'uack'

for letter in prefixes:
     if letter == "O":
         print letter + suffixb
     if letter == "Q":
         print letter + suffixb
     else:
         print letter + suffix


You test for "O", but then follow with a test for "Q" and an else clause. You could write :-

elif letter == "Q"

but the cleanest way of doing this is:-

for letter in prefixes:
    if letter in ("O", "Q"):
        print letter + suffixb
    else:
        print letter + suffix

--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to