"DarkBlue" <pict...@gmail.com> wrote in message news:b9c0c4ac-5f8f-4133-b928-9e55ab4b2...@x5g2000prf.googlegroups.com...
I am trying to get used to the new print() syntax prior to installing
python 3.1:

test=[["VG", "Virgin Islands, British"],["VI", "Virgin Islands, U.S."],
["WF", "Wallis and Futuna"],["EH", "Western Sahara"],["YE", "Yemen"],
["ZM", "Zambia"],["ZW", "Zimbabwe"],]

#old print

for z in test:
 if z[0].startswith('W'):
    print z[0] ,  z[1]

print


# new print()
# now a list would have to be printed like this to be equal to old
print ?

for z in test:
 if z[0].startswith('W'):
    print('%s %s') % (z[0] ,  z[1])

print

# this output prints the brackets etc. too, not what we want

for z in test:
if z[0].startswith('W'):
   print(z[0] , z[1])

print



on python 2.6 I get following output:

WF Wallis and Futuna

WF Wallis and Futuna

('WF', 'Wallis and Futuna')


Before actually installing python 3.1 my question is if the py2to3
converter also considers this situation ?

Without the following statement, print does not work the "new" way. What you are printing is a tuple of the two list elements.

from __future__ import print_function

test = [
   ["VG", "Virgin Islands, British"],
   ["VI", "Virgin Islands, U.S."],
   ["WF", "Wallis and Futuna"],
   ["EH", "Western Sahara"],
   ["YE", "Yemen"],
   ["ZM", "Zambia"],
   ["ZW", "Zimbabwe"]]

for z in test:
 if z[0].startswith('Z'):
    print(z[0],z[1])
print()

----results----
ZM Zambia
ZW Zimbabwe

Comment out "from __future__ import print_function" and you'll get:


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to