Easy questions from a python beginner
Chris Rebert
clp2 at rebertia.com
Sun Jul 11 17:16:01 EDT 2010
On Sun, Jul 11, 2010 at 2:08 PM, News123 <news1234 at free.fr> wrote:
> Carl Banks wrote:
>> On Jul 11, 10:48 am, wheres pythonmonks <wherespythonmo... at gmail.com>
>> wrote:
>>> I'm an old Perl-hacker, and am trying to Dive in Python.
>>
>> Welcome to the light.
>>
>>
>>> I have some
>>> easy issues (Python 2.6)
>>> which probably can be answered in two seconds:
>>>
>>> 1. Why is it that I cannot use print in booleans?? e.g.:
>>>
>>>>>> True and print "It is true!"
>>> I found a nice work-around using eval(compile(.....,"<string>","exec"))...
>>> Seems ugly to this Perl Programmer -- certainly Python has something better?
>>
>> I'll repeat other people's sentiments: if you drop nothing else from
>> your perl habits, drop this one.
>>
>>
>>> 2. How can I write a function, "def swap(x,y):..." so that "x = 3; y
>>> = 7; swap(x,y);" given x=7,y=3??
>>> (I want to use Perl's Ref "\" operator, or C's &).
>>> (And if I cannot do this [other than creating an Int class], is this
>>> behavior limited to strings,
>>> tuples, and numbers)
>>
>> Can't do it, but you can get reference-like behavior if you don't mind
>> a level of indirection. For example:
>>
>> def swap(x,y):
>> t = y[0]
>> y[0] = x[0]
>> x[0] = t
>>
>> a = [1]
>> b = [2]
>> swap(a,b)
>
> or
> def swap[x,y]:
> x[0],y[0] = y[0],x[0]
>>> def swap[x,y]:
File "<stdin>", line 1
def swap[x,y]:
^
SyntaxError: invalid syntax
Cheers,
Chris
More information about the Python-list
mailing list