On 04/17/2013 03:27 PM, Danilo Chilene wrote:
Dear Python Tutor,

I have the code below(file.py):

import sys

a = 'This is A'
b = 'This is B'
c = 'This is C'

for i in sys.argv[1]:
     if sys.argv[1] == 'a':
         print a
     if sys.argv[1] == 'b':
         print b
     if sys.argv[1] == 'c':
         print c

Since this is a loop, I'll assume that argv[1] was supposed to permit multiple characters. If so, your loop is buggy. And if not, then you don't want a loop.


I run python file.py a and returns the var a, so far so good.

What do you want to happen if you say
      python file.py  ac



The problem is that i have a bunch of vars(like a to z), how I can handle
this in a pythonic way?


Use a dictionary (dict). Instead of separate 'variables' use one dict. (With version 2.7)

import sys

mystrings = { "a" : "This is A",
              "b" : "This is B",
              "c" : "This is C",
              "d" : "This is some special case D",
            }

for parm in sys.argv[1]:
    if parm in mystrings:
        print mystrings[parm]
    else:
        print "Invalid parm"

If this isn't what you wanted, then you'll have to make it clearer.

1) tell us what version of python
2) supply us with a non-buggy program,
3) be much more specific about what change you want. You don't want more vars, you presumably want a way to avoid having more vars. Danny assumed you wanted those exact strings, for a, b, and c, while i assumed that those were just simple examples.


--
DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to