[Edu-sig] Pre-PEP was: The fate of raw_input() in Python 3000

Andrew Harrington aharrin at luc.edu
Thu Sep 14 19:53:34 CEST 2006


Andre,
Your English and your organization and rationale are excellent.
I would be happy to be added as a signer.

Thanks,
Andrew Harrington

Andre Roberge wrote:
> Hi-all,
>
> Having had a look at the discussion on the Python-3000 mailing list, I thought
> it was appropriate to write a draft PEP with the intent of eventually posting
> it on the Python 3000 list for "serious" discussion/future decision.
>
> This proposal could most certainly be strengthened, and the wording improved
> by a native English speaker with stronger CS background than I have.
> I have attempted
> to follow the standard recommended format (including providing both a motivation
> and rationale ... which seemed a bit redundant and an artificial split...)
> Feel free to make comments for improvement and even take over the "ownership"
> of this PEP.
>
> André
>
> =========================================
> PEP: XXX
> Title: Simple input built-in in Python 3000
> Version: $Revision: 0.1 $
> Last-Modified: $Date: 2006/09/13 20:00:00 $
> Author: André Roberge <andre.roberge at gmail.com>
> Status: Draft
> Type: Standards Track
> Content-Type: text/x-rst
> Created: 13-Sep-2006
> Python-Version: 3.0
> Post-History:
>
> Abstract
> ========
>
> Input and output are core features of computer programs.  Currently,
> Python provides a simple means of output through the print keyword
> and two simple means of input throught the input() and raw_input()
> built-in functions.
>
> Python 3.0 will introduces various incompatible changes with previous
> Python versions[1].  Among the proposed changes, print will become a built-in
> function, print(), while input() and raw_input() would be removed completely
> from the built-in namespace, requiring importing some module to provide
> even the most basic input capability.
>
> This PEP proposes that Python 3.0 retains some simple user input capability,
> equivalent to raw_input(), within the built-in namespace.
>
> Motivation
> ==========
>
> With its easy readability and its support for many programming styles
> (e.g. procedural, object-oriented, etc.) among others, Python is perhaps
> the best computer language to use in introductory programming classes.
> Simple programs most often need to contain a means to provide information to
> a user (output) as well as obtaining information from that user (input).
> Any computer language intended to be used in an educational setting should
> provide straightforward methods for both input and output.
>
> The current proposals for Python 3.0 [1] include a simple output pathway
> via a built-in function named print(), but a more complicated method for
> input [e.g. via sys.stdin.readline()], one that requires importing an external
> module.  Current versions of Python (pre-3.0) include raw_input() as a built-in
> function.  With the availability of such a function, programs that
> require simple
> input/output can be written from day one, without requiring discussions of
> importing modules, streams, etc.
>
> Rationale
> =========
>
> Current built-in functions, like input() and raw_input(), are found to be
> extremely useful in traditional teaching settings. (For more details,
> see the discussion that followed [3].)  While the BDFL has clearly stated [3]
> that input() was not to be kept in Python 3000, he has also stated that he
> was not against revising the decision of killing raw_input().
>
> raw_input() provides a simple mean to ask a question and obtain information
> from a user.  The proposed plans for Python 3.0 would require the replacement
> of the single statement
>
> speed = raw_input("What is the average airspeed velocity of an unladed
> swallow?")
>
> by the more complicated
>
> import sys
> print("What is the average airspeed velocity of an unladed swallow?")
> speed = sys.stdin.readline()
>
> The removal of raw_input (or equivalent) would not significantly reduce the
> built-in namespace while it would steepen significantly the learning
> curve for beginners.
>
>
> Specification
> =============
>
> The built-in input function should be totally equivalent to the existing
> raw_input() function.
>
> Open issues
> ===========
>
> With input() effectively removed from the language, the name raw_input()
> makes much less sense and alternatives should be considered.  The
> various possibilities mentioned in various forums include:
>
> ask()
> ask_user()
> get_string()
> input()  # rejected by Guido
> prompt()
> read()
> user_input()
>
>
> References
> ==========
>
> .. [1] Miscellaneous Python 3.0 Plans
> (http://www.python.org/dev/peps/pep-3100/)
> ..[2] The fate of raw_input() in Python 3000
> (http://mail.python.org/pipermail/edu-sig/2006-September/006967.html)
> .. [3] educational aspects of Python 3000
> http://mail.python.org/pipermail/python-3000/2006-September/003589.html
>
>
> Copyright
> =========
>
> This document has been placed in the public domain.
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>   


-- 
  Andrew N. Harrington
  Computer Science Department      Director of Academic Programs
  Loyola University Chicago        http://www.cs.luc.edu/~anh
  512B Lewis Towers (office)       Office Phone: 312-915-7982
  Snail mail to Lewis Towers 416   Dept. Fax:    312-915-7998
  820 North Michigan Avenue        aharrin at luc.edu
  Chicago, Illinois 60611          



More information about the Edu-sig mailing list