Go Back   Rhinocerus > Newsgroup > Newsgroup comp.lang.python



Reply
 
Thread Tools Display Modes
  #1 (permalink)  
Old 12-01-2009, 02:03 PM
Mark Summerfield
Guest
 
Posts: n/a
Default Moving from Python 2 to Python 3: A 4 page "cheat sheet"

I've produced a 4 page document that provides a very concise summary
of Python 2<->3 differences plus the most commonly used new Python 3
features. It is aimed at existing Python 2 programmers who want to
start writing Python 3 programs and want to use Python 3 idioms rather
than those from Python 2 where the idioms differ.

It uses Python 3.1 syntax since that looks like being the standard for
a few years in view of the language moratorium.

The document is U.S. Letter size but will also print fine on A4
printers.

It is available as a free PDF download (no registration or anything)
from InformIT's website. Here's the direct link:
http://ptgmedia.pearsoncmg.com/impri...on2python3.pdf

And of course, if you want more on Python 3, there's always the
documentation---or my book:-)
"Programming in Python 3 (Second Edition)" ISBN-10: 0321680561.
Reply With Quote
Alt Today
Advertising
Google Adsense
 
and become member of Rhinocerus
Standard Sponsored Links

  #2 (permalink)  
Old 12-01-2009, 02:22 PM
Daniel Fetchinson
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

> I've produced a 4 page document that provides a very concise summary
> of Python 2<->3 differences plus the most commonly used new Python 3
> features. It is aimed at existing Python 2 programmers who want to
> start writing Python 3 programs and want to use Python 3 idioms rather
> than those from Python 2 where the idioms differ.
>
> It uses Python 3.1 syntax since that looks like being the standard for
> a few years in view of the language moratorium.


This really looks very useful, thanks a lot!
I've been wishing something like this existed for a while, really handy.

Cheers,
Daniel



--
Psss, psss, put it down! - http://www.cafepress.com/putitdown
Reply With Quote
  #3 (permalink)  
Old 12-01-2009, 02:42 PM
Gnarlodious
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

On Dec 1, 7:03*am, Mark Summerfield wrote:

> "Programming in Python 3 (Second Edition)" ISBN-10: 0321680561.


I ordered it...

-- Gnarlie
http://Gnarlodious.com
Reply With Quote
  #4 (permalink)  
Old 12-01-2009, 05:50 PM
Mark Dickinson
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

On Dec 1, 2:03*pm, Mark Summerfield <l...@qtrac.plus.com> wrote:
> I've produced a 4 page document that provides a very concise summary
> of Python 2<->3 differences plus the most commonly used new Python 3
> features.


Very nice indeed!

My only quibble is with the statement on the first page that
the 'String % operator is deprecated'. I'm not sure that's
true, for all values of 'deprecated'. There don't appear
to be any definite plans for getting rid of it just yet.

Mark
Reply With Quote
  #5 (permalink)  
Old 12-01-2009, 06:30 PM
Lie Ryan
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

On 12/2/2009 1:03 AM, Mark Summerfield wrote:
> I've produced a 4 page document that provides a very concise summary
> of Python 2<->3 differences plus the most commonly used new Python 3
> features. It is aimed at existing Python 2 programmers who want to
> start writing Python 3 programs and want to use Python 3 idioms rather
> than those from Python 2 where the idioms differ.
>
> It uses Python 3.1 syntax since that looks like being the standard for
> a few years in view of the language moratorium.
>
> The document is U.S. Letter size but will also print fine on A4
> printers.
>
> It is available as a free PDF download (no registration or anything)
> from InformIT's website. Here's the direct link:
> http://ptgmedia.pearsoncmg.com/impri...on2python3.pdf
>
> And of course, if you want more on Python 3, there's always the
> documentation---or my book:-)
> "Programming in Python 3 (Second Edition)" ISBN-10: 0321680561.


Nice.

I suggest changing the lambda example a bit, the current example says:
Python 2 Python 3
lambda (a,b): a + b lambda t: t[0] + t[1]
lambda a, b: a + b

into something like:

Python 2 Python 3
lambda (a,b),c: a + b + c lambda t, c: t[0] + t[1] + c
lambda a, b, c: a + b + c

it is unclear at first sight that it refers to tuple argument unpacking.
There should also some mention that tuple argument unpacking for regular
function (def) is also gone.



Also, I'm not sure what this change is referring to:
Python 2 Python 3
L = list(seq) L = sorted(seq)
L.sort()

L.sort is still available in python, and sorted() have been available
since python 2. Both list.sort() and sorted() are for different purpose,
and neither will be deprecated. What's the change here?

Reply With Quote
  #6 (permalink)  
Old 12-01-2009, 09:55 PM
Terry Reedy
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

Mark Summerfield wrote:
> I've produced a 4 page document that provides a very concise summary
> of Python 2<->3 differences plus the most commonly used new Python 3
> features. It is aimed at existing Python 2 programmers who want to
> start writing Python 3 programs and want to use Python 3 idioms rather
> than those from Python 2 where the idioms differ.
>
> It uses Python 3.1 syntax since that looks like being the standard for
> a few years in view of the language moratorium.
>
> The document is U.S. Letter size but will also print fine on A4
> printers.
>
> It is available as a free PDF download (no registration or anything)
> from InformIT's website. Here's the direct link:
> http://ptgmedia.pearsoncmg.com/impri...on2python3.pdf
>
> And of course, if you want more on Python 3, there's always the
> documentation---or my book:-)
> "Programming in Python 3 (Second Edition)" ISBN-10: 0321680561.


What might be even *more* helpful, with contributions from others
perhaps, would be an indication of which changes are handled
automatically by 2to3.py and which must be done by hand.

tjr

Reply With Quote
  #7 (permalink)  
Old 12-01-2009, 11:52 PM
John Bokma
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

Mark Summerfield <list@qtrac.plus.com> writes:

> It is available as a free PDF download (no registration or anything)
> from InformIT's website. Here's the direct link:
> http://ptgmedia.pearsoncmg.com/impri...on2python3.pdf


Thanks!

> And of course, if you want more on Python 3, there's always the
> documentation---or my book:-)
> "Programming in Python 3 (Second Edition)" ISBN-10: 0321680561.


Meh, second edition already? Haven't read the entire first edition
yet. Which is IMO a good book (I also gave it to my brother as a
present).

Only negative point (to me) so far is that in the beginning (p8-9) the
book mentions placing Python programs in C:\py3eg which gives me the
unpleasant feeling that someone is coding on Windows XP with
Administrator rights...

Anyway, will add the 2nd edition to my wish list and donate the current
one to the library in Xalapa (USBI) if they want it :-)

John

Reply With Quote
  #8 (permalink)  
Old 12-02-2009, 08:01 AM
Mark Summerfield
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

On 1 Dec, 17:50, Mark Dickinson <dicki...@gmail.com> wrote:
> On Dec 1, 2:03*pm, Mark Summerfield <l...@qtrac.plus.com> wrote:
>
> > I've produced a 4 page document that provides a very concise summary
> > of Python 2<->3 differences plus the most commonly used new Python 3
> > features.

>
> Very nice indeed!
>
> My only quibble is with the statement on the first page that
> the 'String % operator is deprecated'. *I'm not sure that's
> true, for all values of 'deprecated'. *There don't appear
> to be any definite plans for getting rid of it just yet.
>
> Mark


I didn't make this up:-)

According to http://docs.python.org/dev/3.0/whatsnew/3.0.html
"The plan is to eventually make this the only API for string
formatting, and to start deprecating the % operator in Python 3.1."
Reply With Quote
  #9 (permalink)  
Old 12-02-2009, 08:10 AM
Mark Summerfield
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

On 1 Dec, 18:30, Lie Ryan <lie.1...@gmail.com> wrote:
> On 12/2/2009 1:03 AM, Mark Summerfield wrote:
>
>
>
> > I've produced a 4 page document that provides a very concise summary
> > of Python 2<->3 differences plus the most commonly used new Python 3
> > features. It is aimed at existing Python 2 programmers who want to
> > start writing Python 3 programs and want to use Python 3 idioms rather
> > than those from Python 2 where the idioms differ.

>
> > It uses Python 3.1 syntax since that looks like being the standard for
> > a few years in view of the language moratorium.

>
> > The document is U.S. Letter size but will also print fine on A4
> > printers.

>
> > It is available as a free PDF download (no registration or anything)
> > from InformIT's website. Here's the direct link:
> >http://ptgmedia.pearsoncmg.com/impri...it/promotions/...

>
> > And of course, if you want more on Python 3, there's always the
> > documentation---or my book:-)
> > "Programming in Python 3 (Second Edition)" ISBN-10: 0321680561.

>
> Nice.


Thanks!

> I suggest changing the lambda example a bit, the current example says:
> Python 2 * * * * * * * * * * *Python 3
> lambda (a,b): a + b * * * * * lambda t: t[0] + t[1]
> * * * * * * * * * * * * * * * *lambda a, b: a + b
>
> into something like:
>
> Python 2 * * * * * * * * * * *Python 3
> lambda (a,b),c: a + b + c * * lambda t, c: t[0] + t[1] + c
> * * * * * * * * * * * * * * * *lambda a, b, c: a + b + c
>
> it is unclear at first sight that it refers to tuple argument unpacking.


Your proposed example is clearer in some respects, but mine is more
minimal. And I think that anyone who _thinks_ about mine will get the
point. (The document is short, but I never claimed it was a quick
read;-)

> There should also some mention that tuple argument unpacking for regular
> function (def) is also gone.


I probably should have, but it is hard to fit any more in... esp.
since I don't want to take anything out.

> Also, I'm not sure what this change is referring to:
> Python 2 * * * * * * * * Python 3
> L = list(seq) * * * * * *L = sorted(seq)
> L.sort()
>
> L.sort is still available in python, and sorted() have been available
> since python 2. Both list.sort() and sorted() are for different purpose,
> and neither will be deprecated. What's the change here?


The document is about idioms as well as changes. In this case both
approaches work in both versions, but it seems that there are still a
lot of people who don't know about sorted(), so I put it in to show it
as an idiom.
Reply With Quote
  #10 (permalink)  
Old 12-02-2009, 08:13 AM
Mark Summerfield
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

On 1 Dec, 21:55, Terry Reedy <tjre...@udel.edu> wrote:
> Mark Summerfield wrote:
> > I've produced a 4 page document that provides a very concise summary
> > of Python 2<->3 differences plus the most commonly used new Python 3
> > features. It is aimed at existing Python 2 programmers who want to
> > start writing Python 3 programs and want to use Python 3 idioms rather
> > than those from Python 2 where the idioms differ.

>
> > It uses Python 3.1 syntax since that looks like being the standard for
> > a few years in view of the language moratorium.

>
> > The document is U.S. Letter size but will also print fine on A4
> > printers.

>
> > It is available as a free PDF download (no registration or anything)
> > from InformIT's website. Here's the direct link:
> >http://ptgmedia.pearsoncmg.com/impri...it/promotions/...

>
> > And of course, if you want more on Python 3, there's always the
> > documentation---or my book:-)
> > "Programming in Python 3 (Second Edition)" ISBN-10: 0321680561.

>
> What might be even *more* helpful, with contributions from others
> perhaps, would be an indication of which changes are handled
> automatically by 2to3.py and which must be done by hand.
>
> tjr


No, that's exactly what I did not want to cover and the document says
so up front. It is aimed at people who want Python 3 to come from
their own brains and fingers!

Also, the kind of info you're talking about is covered elsewhere, for
example:
http://diveintopython3.org/porting-c...with-2to3.html
Reply With Quote
  #11 (permalink)  
Old 12-02-2009, 08:17 AM
Mark Summerfield
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

On 1 Dec, 23:52, John Bokma <j...@castleamber.com> wrote:
> Mark Summerfield <l...@qtrac.plus.com> writes:
> > It is available as a free PDF download (no registration or anything)
> > from InformIT's website. Here's the direct link:
> >http://ptgmedia.pearsoncmg.com/impri...it/promotions/...

>
> Thanks!
>
> > And of course, if you want more on Python 3, there's always the
> > documentation---or my book:-)
> > "Programming in Python 3 (Second Edition)" ISBN-10: 0321680561.

>
> Meh, second edition already? Haven't read the entire first edition
> yet. Which is IMO a good book (I also gave it to my brother as a
> present).


If it is any consolation, the second edition should have a much longer
life, now that we have the language moratorium. (I _really_ wanted to
cover 3.1.)

> Only negative point (to me) so far is that in the beginning (p8-9) the
> book mentions placing Python programs in C:\py3eg which gives me the
> unpleasant feeling that someone is coding on Windows XP with
> Administrator rights...


OK, you got me there, I only use Windows for testing purposes and my
personal logon account does have Administrator rights, which I assumed
was standard for personal machines? Also, the path is short. It is
only a suggestion, it really doesn't matter where you unpack the
examples.

> Anyway, will add the 2nd edition to my wish list and donate the current
> one to the library in Xalapa (USBI) *if they want it :-)
>
> John


Reply With Quote
  #12 (permalink)  
Old 12-02-2009, 08:53 AM
Mark Dickinson
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

On Dec 2, 8:01*am, Mark Summerfield <l...@qtrac.plus.com> wrote:
> On 1 Dec, 17:50, Mark Dickinson <dicki...@gmail.com> wrote:
> > My only quibble is with the statement on the first page that
> > the 'String % operator is deprecated'. *I'm not sure that's
> > true, for all values of 'deprecated'. *There don't appear
> > to be any definite plans for getting rid of it just yet.

>
> I didn't make this up:-)


No, I didn't imagine for a second that you had!

> According to http://docs.python.org/dev/3.0/whatsnew/3.0.html
> "The plan is to eventually make this the only API for string
> formatting, and to start deprecating the % operator in Python 3.1."


I think that's a doc bug. "The plan is to ..." should read: "The plan
was
originally to ...". (Well, at least in the 3.1 version of the
"what's new in 3.0" documentation; the 3.0 version that you linked to
isn't even autogenerated any more, AFAIK, so fixes to the ReST source
for that file never make it to the web site.)

I'm a little confused myself about what's actually happening with
% formatting, but here's a fairly recent python-dev posting from
the BDFL:

http://mail.python.org/pipermail/pyt...er/092399.html

Mark
Reply With Quote
  #13 (permalink)  
Old 12-02-2009, 11:20 AM
Wolodja Wentland
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

On Wed, Dec 02, 2009 at 00:10 -0800, Mark Summerfield wrote:
> On 1 Dec, 18:30, Lie Ryan <lie.1...@gmail.com> wrote:


> > Also, I'm not sure what this change is referring to:
> > Python 2 * * * * * * * * Python 3
> > L = list(seq) * * * * * *L = sorted(seq)
> > L.sort()
> >
> > L.sort is still available in python, and sorted() have been available
> > since python 2. Both list.sort() and sorted() are for different purpose,
> > and neither will be deprecated. What's the change here?

>
> The document is about idioms as well as changes. In this case both
> approaches work in both versions, but it seems that there are still a
> lot of people who don't know about sorted(), so I put it in to show it
> as an idiom.


It would be quite nice if you could mark all the Python 3 idioms that
work in Python 2.X as well. This would allow readers that are still using
Python 2.X and are used to the 'old way' to adapt their coding style
accordingly. You could just add a little (2.X) after the idiom for
example.

And thanks for the nice cheat sheet! :-D

--
.''`. Wolodja Wentland <wentland@cl.uni-heidelberg.de>
: :' :
`. `'` 4096R/CAF14EFC
`- 081C B7CD FF04 2BA9 94EA 36B2 8B7F 7D30 CAF1 4EFC

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQIcBAEBCAAGBQJLFk2BAAoJEIt/fTDK8U78xOwP/3wttqjXXVX2ZCPg+roWPJ8E
/rR1kXj6SBKoHNwehBMVymQhTjaK+JdFDaPyr+mcw3Bfl1KNSJX R52XgsqOs0HA8
7TYE2s0sll0IVY2wEXxNG2Dxz5/fLLzwEC5v2ESj9qMloqVvts/oWDCEgX3KwFKo
zDjH8+biFdoYpio3HPi1P+NP6mPIKlZNG0Q5yNPNOv4wv4fSoM U3Z/uB8reL5F3p
GnyZNqpp2q46DzZsDbu7kf5oDzMhyLRR9WTQtw5fON9FeGkUdI kP3puR7cM9ZNW6
Ykdn7bPFddPknFDyN+/g+DyfjmNwMWvf+eeX4/xnvARhqlkPvp/mK2duKbk5O9ku
arSzXeTvgyqDNwzfbD0QsXjm/JAOaxPrDjUs9ZJYVgooisjYaijtHVBeQE0FnMlM
BGBjeKn2PGBiFqQd9wIh2ucexFEzMTPhfaJzORuS188Ynk8psB bVcN24AzbON9xU
wrpUVyQe0NRrVK5YDPyv/gZfoo6sWLIvSFm3TYh2sqEGpJb/w1QwzeJ5CakgMCJZ
/vUg05SRvpD15bAxiZs+STuo6gbY53lrqmH7WVf/5dya0xy9SCBGGqIJ8lLHt5em
hFlDvtb/U/GZGeb8UFpJOieRhZGnZFeXJkYWqs9kNvstOJlszhcf0CN5WT+V dhFc
WQ60uawEDDPxaqKxHmuH
=uX/C
-----END PGP SIGNATURE-----

Reply With Quote
  #14 (permalink)  
Old 12-02-2009, 11:31 AM
Martin P. Hellwig
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

Mark Summerfield wrote:
<cut>
> It is available as a free PDF download (no registration or anything)
> from InformIT's website. Here's the direct link:
> http://ptgmedia.pearsoncmg.com/impri...on2python3.pdf

<cut>
Very handy! Am I wrong in assuming that you forgot to include that
file() is gone in favour of open()?

--
MPH
http://blog.dcuktec.com
'If consumed, best digested with added seasoning to own preference.'
Reply With Quote
  #15 (permalink)  
Old 12-02-2009, 03:55 PM
Mark Summerfield
Guest
 
Posts: n/a
Default Re: Moving from Python 2 to Python 3: A 4 page "cheat sheet"

On Dec 1, 2:03*pm, Mark Summerfield <l...@qtrac.plus.com> wrote:
> I've produced a 4 page document that provides a very concise summary
> of Python 2<->3 differences plus the most commonly used new Python 3
> features. It is aimed at existing Python 2 programmers who want to
> start writing Python 3 programs and want to use Python 3 idioms rather
> than those from Python 2 where the idioms differ.
>
> It uses Python 3.1 syntax since that looks like being the standard for
> a few years in view of the language moratorium.
>
> The document is U.S. Letter size but will also print fine on A4
> printers.
>
> It is available as a free PDF download (no registration or anything)
> from InformIT's website. Here's the direct link:http://ptgmedia.pearsoncmg.com/impri...it/promotions/...
>
> And of course, if you want more on Python 3, there's always the
> documentation---or my book:-)
> "Programming in Python 3 (Second Edition)" ISBN-10: 0321680561.



I only just found out that I was supposed to give a different URL:
http://www.informit.com/promotions/p...x?promo=137519
This leads to a web page where you can download the document (just by
clicking the "Download Now" button), but if you _choose_ you can also
enter your name and email to win some sort of prize.
Reply With Quote
 
Reply

Popular Tags in the Forum
cheat sheet, moving, page, python

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Python-URL! - weekly Python news and links (Nov 16) Gabriel Genellina Newsgroup comp.lang.python 0 11-16-2009 03:22 PM
Python-URL! - weekly Python news and links (Sep 17) Gabriel Genellina Newsgroup comp.lang.python 1 09-24-2009 08:00 PM
Python-URL! - weekly Python news and links (Aug 6) Gabriel Genellina Newsgroup comp.lang.python 0 08-06-2009 07:21 PM
Python-URL! - weekly Python news and links (Jun 20) Gabriel Genellina Newsgroup comp.lang.python 0 06-20-2009 10:41 PM
Python-URL! - weekly Python news and links (May 22) Gabriel Genellina Newsgroup comp.lang.python 0 05-22-2009 02:13 PM



Language 1 | C | C++ | Php | Python | Lisp | Perl | Ruby | Java | Pascal | Basic | Language 2 | Databases | Oracle | Mysql | Access | Drupal
All times are GMT. The time now is 12:20 AM.


Copyright ©2009

LinkBacks Enabled by vBSEO 3.3.0 RC2 © 2009, Crawlability, Inc.