Py3.6 is likely your base target, feature wise. 3.7 has some improvements and more features but 3.6 still has more explicit support. However they are mostly compatible. 3.8 is the newest. 3.9 is in alpha.
If you're looking for asyncio support you would really need 3.5+, but ideally 3.6+.
Good type hint/annotation support is really 3.6+, though 3.5 has some support.
3.6+ has f-strings (f"hi {name}").
3.7 has official built in dataclass support (3.6 has a PyPI package), which is for helping reduce class boilerplate but also helping with memory management.
And 3.8 has those ever-so-controversial (but adorable) walruses. ;)
My own recommendation is for new projects to support Python 3.6 through 3.8, as much as is practical. Python 3.7 is a good "middle ground", as it's available on most (if not all) modern operating systems. Ubuntu 19.04 and onward use 3.7 as the base version, and don't even ship 3.6.
And, of course, Python 2 is at official End Of Life, and thus should be considered dead for all practical intents and purposes.
Python 3.7 is my version of choice. 3.8 doesn't really have anything I need, except for the walrus, and 3rd libraries take a while to add support. 3.7 also had a good deal of performance improvements over 3.6.
I am waiting for 3.9 before leaving 3.7
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Py3.6 is likely your base target, feature wise. 3.7 has some improvements and more features but 3.6 still has more explicit support. However they are mostly compatible. 3.8 is the newest. 3.9 is in alpha.
If you're looking for asyncio support you would really need 3.5+, but ideally 3.6+.
Good type hint/annotation support is really 3.6+, though 3.5 has some support.
3.6+ has f-strings (f"hi {name}").
3.7 has official built in dataclass support (3.6 has a PyPI package), which is for helping reduce class boilerplate but also helping with memory management.
And 3.8 has those ever-so-controversial (but adorable) walruses. ;)
My own recommendation is for new projects to support Python 3.6 through 3.8, as much as is practical. Python 3.7 is a good "middle ground", as it's available on most (if not all) modern operating systems. Ubuntu 19.04 and onward use 3.7 as the base version, and don't even ship 3.6.
And, of course, Python 2 is at official End Of Life, and thus should be considered dead for all practical intents and purposes.
Python 3.7 is my version of choice. 3.8 doesn't really have anything I need, except for the walrus, and 3rd libraries take a while to add support. 3.7 also had a good deal of performance improvements over 3.6.
I am waiting for 3.9 before leaving 3.7