Carl Banks wrote: > On Jul 11, 10:48 am, wheres pythonmonks <wherespythonmo...@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] -- http://mail.python.org/mailman/listinfo/python-list