Providing Default Value for User Input

N

N?ant Humain

I have just begun learning Python so that I can write a simple script
to make modification of a file used by another Python script easier.
This file is basically a list of regular expressions. What I want to
do is allow the user to select one of these regular expressions to
modify, but I've realized I know of no way to provide a default value
for user input. I could choose to show the regular expression the user
has chosen and simply allow the user to retype it and modify it from
there, but that is time consuming and error prone. Does Python support
a way to do this? If worse comes to worst, is there a way I could
write such code on my own without having to write a C-based module
(I'd like to stick to Python code only since some users will be
running this script on Windows without a C compiler)?
 
F

Francis Avila

N?ant Humain wrote in message ...
I have just begun learning Python so that I can write a simple script
to make modification of a file used by another Python script easier.
This file is basically a list of regular expressions. What I want to
do is allow the user to select one of these regular expressions to
modify, but I've realized I know of no way to provide a default value
for user input. I could choose to show the regular expression the user
has chosen and simply allow the user to retype it and modify it from
there, but that is time consuming and error prone. Does Python support
a way to do this? If worse comes to worst, is there a way I could
write such code on my own without having to write a C-based module
(I'd like to stick to Python code only since some users will be
running this script on Windows without a C compiler)?

This question is entirely too vague, because the answer depends entirely
upon your implementation and has nothing to do with Python per se. I
imagine the answer is pretty simple unless your design is horrible.

As a shot in the dark, why not just look at what the user types? If it's
something you want to interpret as 'use default' (like just an empty line,
or the letter 'd' or something), then use a default!

E.g.:

choices = dict(a=1, b=2, default=100)
while True:
print 'Please select:'
for k,v in choices.items():
print '%-10s%s' % (k,v)
input = raw_input('?> ').lower()
if input == 'd':
input = 'default'
try:
print 'Value of %s is %s' % (input, choices[input])
except KeyError:
print 'Item %r not found.' % input
print


If you're doing a lot of command-oriented input loops, look at the cmd
module, which is pretty handy (I use it quite a bit).
 
M

Miki Tebeka

Hello,
I have just begun learning Python so that I can write a simple script
to make modification of a file used by another Python script easier.
This file is basically a list of regular expressions. What I want to
do is allow the user to select one of these regular expressions to
modify, but I've realized I know of no way to provide a default value
for user input.
Which user input? raw_input, Tkinter, wxPython ...
I could choose to show the regular expression the user
has chosen and simply allow the user to retype it and modify it from
there, but that is time consuming and error prone. Does Python support
a way to do this?
To do what? I don't understand your question. Maybe an example will
help.
If worse comes to worst, is there a way I could
write such code on my own without having to write a C-based module
(I'd like to stick to Python code only since some users will be
running this script on Windows without a C compiler)?
If you create a C extension you can distribute just the binary so your
users won't need a C compiler. (They might need some required DLL's
but you can ship them as well).

HTH.
Miki
 
F

Francis Avila

Francis Avila wrote in message said:
This question is entirely too vague, because the answer depends entirely
upon your implementation and has nothing to do with Python per se. ....

As a shot in the dark, why not just look at what the user types? If it's

As Miki showed me, even is saying the question is too vague, I *already*
assumed too much in my answer to you, namely, that you were using a CLI. I
don't even know that.

So you see the problem with your question? We're glad to help, but you need
to give us more specific information.
 

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

Staff online

Members online

Forum statistics

Threads
473,995
Messages
2,570,228
Members
46,818
Latest member
SapanaCarpetStudio

Latest Threads

Top