Nick,

On teh one hand, I teach a lot of beginners, and I share most of your experience with PEP8 and linters -- indeed, I encourage my studetns to use a linter right off the bat. (I don't require a particular editor, but I do provide recommendations for a handful of common ones (PyCharm, VS Code, Sublime), and I always recommend a linter.

I also agree that the linter can be kind of distracting, and that some "problems" are more important than others, so it makes sense to turn off some particular issues. (not turned off, but I do extend the minimum line length myself)

However, the "is None" recommendation is one I would NOT suggest my students turn off -- for all the reasons posted here. FRankly, I student that learns to write code with some not great spacing or naming conventions is much better shape than one that doesn't learn what `is` means in Python. I"ll say it again: recommending ``is None`` is not just "style" -- it has real different meaning.

Also: it's not the job of the PEP 8 authors to rank the importance of the various recommendations. If you have an idea about a better linter configuration for beginners, then by all means create one, use it in your classes, publish it for other instructors to use, etc.

-CHB

NOTE: you must have different students than I do -- I have more problem with students ignoring a massive amount of cruft the linter is putting on their code ("I just want to get it to work!") than I do students obsessing over getting it lint free.

NOTE 2: David Mertz had a very good point -- you can get very far in Python without using None at all (or at least not checking it - after all, functions do return None by default). Probably the most common use is to mean "not specified" in keyword parameters -- how early do you introduce those?

-CHB

--
Christopher Barker, PhD (Chris)

Python Language Consulting
  - Teaching
  - Scientific Software Development
  - Desktop GUI and Web Development
  - wxPython, numpy, scipy, Cython