On 25/08/2010 12:00, Roelof Wobben wrote:
Hello,

I have this programm :

def remove_letter(letter, strng):
    """
>>> remove_letter('a', 'apple')
      'pple'
>>> remove_letter('a', 'banana')
      'bnn'
>>> remove_letter('z', 'banana')
      'banana'
>>> remove_letter('i', 'Mississippi')
      'Msssspp'
    """
    antwoord=""
    for letter in strng:
        print letter, strng
        if letter in strng:
            print "false"
        else:
            print "true"
    return antwoord

x=remove_letter('a', 'apple')
print x

But now everything is false even a in apple.

What is here wrong ?

Roelof


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

You're rebinding the variable `letter`.
It is an input variable for your function but then you use it as the character store while iterating through your string variable `strng`.

What your control should look like would be more like

for character in strng:
    if letter == character:
print 'false' # this should be true, it is a match just like in your example
    else:
        print 'true'

I'm assuming this function is just for learning purposes because there's a built-in string function you can use called replace and you'd use it as such `'apple'.replace('a', '')`.

PS: Once you've gotten it to work convert it to a list comprehension, they are incredibly useful and a great tool.

--
Kind Regards,
Christian Witts


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

Reply via email to