[Tutor] reading stdin?
D-Man
dsh8290@rit.edu
Fri, 16 Feb 2001 13:30:00 -0500
On Fri, Feb 16, 2001 at 01:17:32PM -0500, Mr 804 wrote:
|
| how do I read stdin?
|
>>> data = raw_input( "Please give me some data: " )
Please give me some data: Hello World
>>> type( data )
<type 'string'>
>>> print data
Hello World
>>>
raw_input is good if you want random stuff or text stuff,
if you want other stuff, input can be helpful
>>> data = input( "Enter some data: " )
Enter some data: 2
>>> type( data )
<type 'int'>
>>> print data
2
>>>
However, be careful how you use input() :
>>> data = input( "Enter some data: " )
Enter some data: foo
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<string>", line 0, in ?
NameError: There is no variable named 'foo'
>>>
>>> i = 2
>>> data = input( "Enter some data: " )
Enter some data: lambda x : x + i
>>> type( data )
<type 'function'>
>>> print data
<function <lambda> at 007A8574>
>>> print data( 3 )
5
>>>
input won't always do what you want, if the user inputs bad stuff.
You can use raw_input, then convert the string how you want to. Ex:
>>> try :
... data = int( raw_input( "Enter a number: " ) )
... except ValueError , err :
... print "You didn't enter a valid number"
...
Enter a number: 3
>>> print data
3
>>>
>>> try :
... data = int( raw_input( "Enter a number: " ) )
... except ValueError , err :
... print "You didn't enter a valid number"
...
Enter a number: asdf
You didn't enter a valid number
>>>
If you have more questions, just ask.
HTH,
-D