[Tutor] parsing x is y statements from stdin

Scott Fallin saf@scottfallin.com
Fri Jul 18 12:42:02 2003


Michael and Blake,

Thank you both for your suggestions.  They'll do the trick!

I appreciate it very much.

s.


> > I'm wondering if I can't treat each line of stdin as a list where 
list
> > [0] is the key, list[1] is the verb, list[2] is the right hand 
> > side 'target'.  I'm just completely unsure of how to go about doing 
> > that.
> 
> Here's what I did, so that you can see my train of thought.
> (If you're using an earlier version of Python, and you can't copy
>  the following example, email me, and I'll show you the backwards-
>  compatible way to do it.)
> 
> Python 2.2.3 (#42, May 30 2003, 18:12:08) [MSC 32 bit (Intel)] on 
win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> x = "He is a python programmer"
> >>> help( x.split )
> Help on built-in function split:
> 
> split(...)
>     S.split([sep [,maxsplit]]) -> list of strings
> 
>     Return a list of the words in the string S, using sep as the
>     delimiter string.  If maxsplit is given, at most maxsplit
>     splits are done. If sep is not specified or is None, any
>     whitespace string is a separator.
> 
> >>> x.split( 3 )
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> TypeError: expected a character buffer object
> >>> x.split( None, 3 )
> ['He', 'is', 'a', 'python programmer']
> >>> x.split( None, 2 )
> ['He', 'is', 'a python programmer']
> 
> 
> >>> import sys
> >>> x = sys.stdin.readline()
> You get the idea now.
> >>> x.split( None, 2 )
> ['You', 'get', 'the idea now.\n']
> >>> help( x.strip )
> Help on built-in function strip:
> 
> strip(...)
>     S.strip([chars]) -> string or unicode
> 
>     Return a copy of the string S with leading and trailing
>     whitespace removed.
>     If chars is given and not None, remove characters in chars 
instead.
>     If chars is unicode, S will be converted to unicode before 
stripping
> >>> x.strip().split( None, 2 )
> ['You', 'get', 'the idea now.']
> 
> How does that look to you?  Mostly what you wanted?
> 
> Later,
> Blake.
> 
> 
> 

--