sprad a écrit :
I've done a good bit of Perl, but I'm new to Python.

I find myself doing a lot of typecasting (or whatever this thing I'm
about to show you is called),

Actually, it's just plain object instanciation.

and I'm wondering if it's normal, or if
I'm missing an important idiom.

For example:

bet = raw_input("Enter your bet")
if int(bet) == 0:
    # respond to a zero bet

raw_input() returns a string. If you want an int and the string is supposed to contain a legitimate string representation of an integer, then yes, passing the string to the int object constructor is the right thing to do. I'd just write it a bit diffently:

bet = int(raw_input("Enter your bet"))
if bet == 0:
   # code here

or even better:

def read_int(prompt, err="Sorry, '%s' is not a valid integer"):
   while True:
      answer = raw_input(prompt)
      try:
           return int(answer)
      except ValueError:
           print err % answer

bet = read_int("Enter your bet")
if bet == 0:
    # code here

Or later, I'll have an integer, and I end up doing something like
this:

print "You still have $" + str(money) + " remaining"

May suggest learning about string formatting ?

   print "You still have $%s remaining" % money


But indeed, you obviously cannot add strings with numerics nor concatenate numerics with strings. This would make no sense.

All the time, I'm going int(this) and str(that). Am I supposed to?

Depends on the context.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to