[Tutor] recursive function password check

Noriko Tani Noriko.Tani at tomtom.com
Wed Feb 6 15:26:04 CET 2013


Hi Mara,

Several suggestions:

Put the password in a list, then loop each letter to check if it is a vowel like this

password=[]
vowels=['a','e','i','o','u']            #in your message, u is missing, BTW
password=input("Enter a password:")

for p in password:
    if p in vowels:
        return True          #I would use print("the message that you want to display") though.
    else:
        return False

And how about error handling?  You put
    if len(y) ==0:
        return True          #I would use print("woops! You did not enter anything.") and add break

Does this password case sensitive?  If so, add AEIOU in vowels list.

Good luck!

Noriko

________________________________
From: Tutor [mailto:tutor-bounces+noriko.tani=tomtom.com at python.org] On Behalf Of Simon Yan
Sent: Wednesday, February 06, 2013 9:11 AM
To: Mara Kelly
Cc: tutor at python.org
Subject: Re: [Tutor] recursive function password check



On Wed, Feb 6, 2013 at 9:44 PM, Mara Kelly <schooluse1992 at yahoo.com<mailto:schooluse1992 at yahoo.com>> wrote:
Hi everyone, trying to write a program that has the user enter a password, checks if it contains any vowels, and if it does prints ' It is false that password(whatever the user enters) has no vowels,' and if it has no vowels prints it is True that password has no vowels...

Here is what I have so far...
def password(y):
    vowels=["a","e","i","o"]
    if y[0] in vowels:
        return False
    if len(y) ==0:
        return True
    elif(y[len(y)-1] != vowels):
        return False
    else:
        return password(y[1:len(y)-1])
x=input("Enter a password:")
print("It is", password(x),"that",x,"has no vowles")

As of now it just asks for the password, and then prints 'It is False that password(whatever was entered) has no vowles' for any word I enter. I think maybe some of my if statement conditions may be being returned to the function, but then not printing the appropriate one? Can anyone help? Thanks!

It appears that the issue is from this:

elif(y[len(y)-1] != vowels):

This condition will be true because you are comparing a string with a list. Thus causing passwrod() returning False.


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



--
Regards,
YeeYaa (Simon Yan)

http://simonyan.fedorapeople.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20130206/96166170/attachment.html>


More information about the Tutor mailing list