[Tutor] Python 3 for Beginners was: (Re: intro book for python)

Chris Warrick kwpolska at gmail.com
Sun Sep 3 11:04:58 EDT 2017


On 3 September 2017 at 12:02, Leam Hall <leamhall at gmail.com> wrote:
mmend anything from the author of LPTHW after he had the
>> audacity to write this https://learnpythonthehardway.org/book/nopython3.html
>> about Python 3, in addition to which there are several vastly superior books
>> and/or tutorials anyway.
>>
>> Kindest regards.
>>
>> Mark Lawrence.
>
>
> There are lots of other books on Python, that's true. "Practical
> Programming" (Gries, Campbell, Montojo) is one I use.
>
> Are you going to toss "Learning Python" since Mark points out some of
> python's drift from it's core values?
>
> I appreciate that link. Zed's right.

Many of Zed’s argument are false and plain BS:
https://eev.ee/blog/2016/11/23/a-rebuttal-for-python-3/

> Python 3 isn't used by the OS tools on Red Hat, and that's that major Linux vendor in the US.

This will change in RHEL 8, whenever that comes out: yum was replaced
by dnf a few versions of Fedora ago, and that’s written in Python 3.

> Anyone that uses python on Linux has to use Python 2. That means Python 3 is
> just one more language that requires work to install and maintain. I'm not
> seeing the benefits. How long has Python 3 been out? How many others are
> seeing the benefits of total change? When will people who say "you should
> upgrade" realize it's weeks or months of work with no real reason to do so?

You’re getting: sane Unicode support, f"strings", type hinting,
pathlib, asyncio, and a few more improvements.

> Yesterday I was coding and had to work around Python 3 dict.keys() returning
> a "dict_keys" type vs a list. Why did we need another type for this? I'm a
> coding beginner.

Performance and resource usage. If you use a list, Python needs to do
some extra work to convert internal data structures of a dict into a
list, and also store that new list in memory.

> I can talk a decent game in a few languages like python but
> I'm not experienced enough or smart enough to deal with these sorts of
> problems easily. Returning a new type, without significant benefit, makes it
> harder for people to progress in the language.

There are a lot of things that return iterators or other fancy types
instead of lists in Python 3 (eg. zip, range, all of itertools). You
can always iterate over those like you would, and if you need a list
for some reason, you can just call list(the_thing).

> Some years ago I wanted to play with an IRC bot sort of thing. Someone on
> Freenode #python mentioned Twisted so I got that and started playing. Half
> an hour, maybe forty five minutes later and my little project did what I was
> trying to do. This was before I really knew any python; the language was
> that clean and easy to learn.

You can still do that with Python 3. (Although you’ll be better off
using asyncio and some IRC lib for that.)

-- 
Chris Warrick <https://chriswarrick.com/>
PGP: 5EAAEA16


More information about the Tutor mailing list