question on "input"

B

b83503104

Hi,

I want to accept the user's answer yes or no.
If I do this:

answer = input('y or n?')

and type y on the keyboard, python complains

Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<string>", line 0, in ?
NameError: name 'y' is not defined

It seems like input only accepts numerals, or strings with quotes.
Need solutions, thanks.
 
D

Devan L

Use raw_input instead. It returns a string of whatever was typed. Input
expects a valid python expression.
 
M

Michael Hoffman

Devan said:
Use raw_input instead. It returns a string of whatever was typed. Input
expects a valid python expression.

Who actually uses this? It's equivalent to eval(raw_input(prompt)) but
causes a lot of newbie confusion. Python-dev archives revealed that
someone tried to get this deprecated but Guido disagreed.
 
T

Terry Hancock

Who actually uses this? It's equivalent to eval(raw_input(prompt)) but
causes a lot of newbie confusion. Python-dev archives revealed that
someone tried to get this deprecated but Guido disagreed.

I don't think it should disappear, but it *does* seem more sensible for
"raw_input" to be called "input" (or "readstring" or some such thing) and
"input" to vanish into greater obscurity as "eval_input" or something.

Unfortunately, that would break code if anything relied on "input", so I
guess that would be a Py3K idea, and maybe the whole I/O concept
will be rethought then (if the "print" statement is going to go away,
anyway).
 
S

Stephen Thorne

I don't think it should disappear, but it *does* seem more sensible for
"raw_input" to be called "input" (or "readstring" or some such thing) and
"input" to vanish into greater obscurity as "eval_input" or something.

Unfortunately, that would break code if anything relied on "input", so I
guess that would be a Py3K idea, and maybe the whole I/O concept
will be rethought then (if the "print" statement is going to go away,
anyway).

I don't see as "break input() using code" -> "not until py3k" as a
logical cause/effect. No one should be using input() anyway, the only
place it's at-all appropriate is in a python tutorial, with the 'guess
the number' game.
 
N

Nathan Pinno

I use input() all the time. I know many people say it ain't safe, but
whose going to use it to crash their own comp? Only an insane person would,
or a criminal trying to cover his/her tracks.

Sorry if I waded into the debate, but this debate originated from one of
my posts.

Nathan Pinno
----- Original Message -----
From: "Stephen Thorne" <[email protected]>
To: <[email protected]>
Cc: <[email protected]>
Sent: Sunday, July 17, 2005 11:12 PM
Subject: Re: Who uses input()? [was Re: question on "input"]
 
T

Terry Reedy

Nathan Pinno said:
I use input() all the time. I know many people say it ain't safe, but
whose going to use it to crash their own comp? Only an insane person
would,

This is usage Guido intended it for, not for production apps distributed to
world.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,261
Messages
2,571,308
Members
47,976
Latest member
AlanaKeech

Latest Threads

Top