HTTP/2 301
date: Tue, 29 Jul 2025 08:00:19 GMT
content-type: text/html; charset=utf-8
content-length: 0
cf-ray: 966b14f67ae4f313-BLR
cross-origin-opener-policy: same-origin
location: /courses/idiomatic-python-101/
nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
referrer-policy: strict-origin-when-cross-origin,origin
report-to: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=6gVXFOZaI3r0PMVcCFWdkbsFMi1ALdbbfGoONdVSaAk%3D\u0026sid=67ff5de4-ad2b-4112-9289-cf96be89efed\u0026ts=1753776019"}],"max_age":3600}
reporting-endpoints: heroku-nel="https://nel.heroku.com/reports?s=6gVXFOZaI3r0PMVcCFWdkbsFMi1ALdbbfGoONdVSaAk%3D&sid=67ff5de4-ad2b-4112-9289-cf96be89efed&ts=1753776019"
set-cookie: origin=ref-realpython.com; expires=Sun, 23 Apr 2028 08:00:19 GMT; Max-Age=86313600; Path=/
set-cookie: cid=cce5f50c96c4440f8681caf580430b19; expires=Wed, 29 Jul 2026 08:00:19 GMT; Max-Age=31536000; Path=/
strict-transport-security: max-age=31536000; includeSubDomains; preload
vary: Cookie
via: 2.0 heroku-router
x-content-type-options: nosniff
cf-cache-status: DYNAMIC
server: cloudflare
alt-svc: h3=":443"; ma=86400
HTTP/2 200
date: Tue, 29 Jul 2025 08:00:19 GMT
content-type: text/html; charset=utf-8
content-encoding: gzip
cross-origin-opener-policy: same-origin
nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
referrer-policy: strict-origin-when-cross-origin,origin
report-to: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=6gVXFOZaI3r0PMVcCFWdkbsFMi1ALdbbfGoONdVSaAk%3D\u0026sid=67ff5de4-ad2b-4112-9289-cf96be89efed\u0026ts=1753776019"}],"max_age":3600}
reporting-endpoints: heroku-nel="https://nel.heroku.com/reports?s=6gVXFOZaI3r0PMVcCFWdkbsFMi1ALdbbfGoONdVSaAk%3D&sid=67ff5de4-ad2b-4112-9289-cf96be89efed&ts=1753776019"
set-cookie: dwf_exp_google_one_tap_auth=True; expires=Thu, 28 Aug 2025 08:00:19 GMT; Max-Age=2592000; Path=/; Secure
set-cookie: csrftoken=cAOMZUW7W2rgjdYnPQSlWXwVNG93V7BW; expires=Tue, 28 Jul 2026 08:00:19 GMT; Max-Age=31449600; Path=/; SameSite=Lax; Secure
strict-transport-security: max-age=31536000; includeSubDomains; preload
vary: Cookie, Accept-Encoding
via: 2.0 heroku-router
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
cf-cache-status: DYNAMIC
server: cloudflare
cf-ray: 966b14f86a2cf313-BLR
alt-svc: h3=":443"; ma=86400
Idiomatic Python 101 – Real Python
Idiomatic Python 101
Python Idioms for people coming from other languages and how to improve your idiomatic practices with Python. We will cover things to do with string concatenation, dictionary look ups, dealing with Python scripts, encoding, and for
loops.
Note: This course uses Python 2.7 in its coding examples. For Python 3 examples, you can check out the Writing Idiomatic Python video course.
Resources:
What’s Included:
Mahdi is the CTO of Gyroscope, the co-founder of the PyCoder’s Weekly, and a longtime Pythoneer.
» More about Mahdi
Each tutorial at Real Python is created by a team of developers so that it meets our high quality standards. The team members who worked on this tutorial are:
← Browse All Courses
mikesult
Thanks for tips on writing Pythonic code. Very helpful.