[Tutor] Defining functions

Jacob S. keridee at jayco.net
Sun Mar 27 05:54:17 CEST 2005


Try this.

import sys

def my_raw_input(prompt):
    sys.stdout.write(prompt)        ## Since they're thinking of bonking off 
print as well.
    a = sys.stdin.readline()
    if a.startswith(prompt):
        return a[:len(prompt)]
    return a

It leaves the '\n' on the end... so it sucks.

I know there is a better way... Someone else-help?

Jacob

> So, as a newbie, I see this thread and I check out the PEP and I see
> that for future compatibility we should use sys.stdin.readline().  So
> I import sys to see how it works.  Of course, sys.stdin.readline('type
> anything: ') doesn't work in quite the same way as raw_input('type
> anything: ') does.  The closest I can get after a few newbie stabs is:
>
>>>>print 'type anything: ', sys.stdin.readline()
> type anything: hello
> hello
>
>>>>
>
> What is the easiest way to get the exact functionality of raw_input()
> (i.e. a prompt, no whitespace at the front, and no trailing \n) using
> sys.stdin.readline()?
>
> gabe
>
>
> On Fri, Mar 25, 2005 at 11:02:43AM -0500, Jacob S. wrote:
>> Yeah. And they're thinking of removing raw_input() too.  I think it's 
>> good
>> to have a __builtin__ user input function.  Why should we have to import
>> sys everytime we want user input? Almost every program that newbies write
>> uses it, and advanced programmers also if they're using console programs.
>> IMHO, I see no reason to remove it.
>> ## end rant
>>
>> Jacob
>>
>>
>> >Michael Dunn wrote:
>> >>Something I've always wondered: if input() is so dangerous, why is it
>> >>there? What valid uses does it have in the wild?
>> >
>> >It's a mistake planned to be removed in Python 3.0, the "hypothetical
>> >future release of Python that can break backwards compatibility with the
>> >existing body of Python code."
>> >
>> >Python tries very hard to maintain backward compatibility so things like
>> >input() are not removed.
>> >
>> >http://www.python.org/peps/pep-3000.html#built-ins
>> >
>> >Kent
>> >
>> >_______________________________________________
>> >Tutor maillist  -  Tutor at python.org
>> >http://mail.python.org/mailman/listinfo/tutor
>> >
>> >
>>
>> _______________________________________________
>> Tutor maillist  -  Tutor at python.org
>> http://mail.python.org/mailman/listinfo/tutor
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
> 



More information about the Tutor mailing list