Easy questions from a python beginner

News123 news1234 at free.fr
Sun Jul 11 17:08:31 EDT 2010


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]




More information about the Python-list mailing list