[Tutor] While Loop?
Sam Ball
samball72 at hotmail.com
Mon May 19 00:44:19 CEST 2014
> Firstly thanks everyone for the help, I definitely learned something.
> The current version of Python I'm using is actually version 3, sorry for not specifying that earlier.
> I ended up going with Alan's suggestion and created the below code which works perfectly fine.
> I however would like to add in another line that tells the user their account is invalid
> before looping around and asking them to re enter their account.
>
> userAccount = ''
> while len (userAccount) !=8:
> userAccount = input ("Please Input Your Account Number:")
> userAccountNumber = int(userAccount)
>
>
> As for users typing in a name like "Charlie" or a float I would like that to spit out
> an error also, but I haven't learned how to accomplish that yet.
>
> Thanks again.
----------------------------------------
> Date: Wed, 14 May 2014 16:16:45 -0400
> From: d at davea.name
> To: tutor at python.org
> Subject: Re: [Tutor] While Loop?
>
> On 05/14/2014 05:45 AM, Sam Ball wrote:
>> I'm attempting to create a program where the user inputs their account number (which must be 8 digits) and if what the user enters is not 8 digits in length I want python to tell the user this is invalid and then keep asking for the account number until a suitable number has been entered.
>> I'm guessing it's a sort of while loop but I'm not 100% sure as I'm quite new to Python.
>>
>
> Welcome to Python, and to the Tutor mailing list. Please post in text
> form, as the html you're now using is quite error prone, especially
> since this is a text list. There's no errors I can see with your
> present message, but it's a good habit to learn early - tell your email
> program to use "plain text".
>
> Next, it's very important to specify what version of Python you're
> using. In particular there are differences between Python version 2.x
> and version 3.x And those differences affect the input statement.
>
> From your print syntax, it appears you're aiming at Python 2.x But
> it's not valid there either, so it's better if you be explicit in your
> question.
>
>
>> So far I have...
>>
>>
>>
>>
>> userAccountNumber = eval(input("Please Input Your Account Number:"))
>
> Since I'm asssuming Python 2.x, you want int(raw_input( instead.
> input() in 2.x is a security mistake, and eval() is for either version
> of Python.
>
>
>> while userAccountNumber> 100000000 or <=9999999:
>
> Syntax error, as you've discovered. Alan has told you how to fix it.
> But it would be much better to get in the habit of quoting the entire
> error message (it's called a traceback) instead of paraphrasing it.
>
>> print userAccountNumber ("Invalid Account Number! Account Must Be Eight Digits")
>
> Once you've fixed the above, you'll get an error on this line. But how
> to fix it depends on what Python version you're using.
> userAccountNumber isn't a function, so why are you trying to call it?
>
> Next problem is that your loop doesn't ask the user again, it just loops
> around trying to print its error message.
>>
>>
>>
>> When I run this however it gives me an invalid syntax and highlights the = in <=9999999:
>>
>> Would appreciate any help with sorting this out.
>>
>
> Once you've gone as far as you can get with these suggestions from Alan,
> Danny, and me, be sure and use reply-list to post your next revision and
> query. (Or, if your email program doesn't support that, use Reply-All,
> and remove from the header everyone you don't want to get the response).
> And of course, you'll tell us what version of Python you're
> taqrgeting. In particular, keep the tutor at python.org recipient.
>
> Once your program works, you need to consider other things, possible
> bugs. For example, what happends if a user types "charlie" instead of
> a number? Or if they type a floating point value? What would you like
> to happen?
>
> --
> DaveA
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list