User Tools

Site Tools


other:python:misc_by_jyp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
other:python:misc_by_jyp [2024/08/27 09:56] – [Extra tutorials] new medium link jypeterother:python:misc_by_jyp [2024/11/04 15:01] (current) – [Extra tutorials] Added links to ruff and flake8 jypeter
Line 9: Line 9:
 Only **when you have already read all the content of this page several times**, and you are looking for new ideas Only **when you have already read all the content of this page several times**, and you are looking for new ideas
  
 +  * [[https://medium.com/pythons-gurus/clean-code-in-python-good-vs-bad-practices-examples-2df344bddacc|Clean Code in Python: Good vs. Bad Practices Examples]]
 +  * [[https://peps.python.org/pep-0008/|PEP 8 – Style Guide for Python Code]]
 +    * [[https://realpython.com/python-pep8/|How to Write Beautiful Python Code With PEP 8]]
 +    * [[https://www.datacamp.com/tutorial/pep8-tutorial-python-code|PEP-8 Tutorial: Code Standards in Python]]
 +    * Some checkers/linters: [[https://docs.astral.sh/ruff/|ruff]], [[https://flake8.pycqa.org/en/stable/|flake8]]
   * [[https://medium.com/@yaduvanshineelam09/ultimate-python-cheat-sheet-practical-python-for-everyday-tasks-8a33abc0892f|Ultimate Python Cheat Sheet: Practical Python For Everyday Tasks]]   * [[https://medium.com/@yaduvanshineelam09/ultimate-python-cheat-sheet-practical-python-for-everyday-tasks-8a33abc0892f|Ultimate Python Cheat Sheet: Practical Python For Everyday Tasks]]
   * [[https://medium.com/pythoneers/16-hacks-that-will-take-your-python-skills-to-the-next-level-12e7a9b97421|16 Hacks That Will Take Your Python Skills to the Next Level]]   * [[https://medium.com/pythoneers/16-hacks-that-will-take-your-python-skills-to-the-next-level-12e7a9b97421|16 Hacks That Will Take Your Python Skills to the Next Level]]
 +  * [[https://levelup.gitconnected.com/modular-coding-in-python-finally-solve-your-import-errors-af2fd172fcf7|Modular Coding in Python: Finally Solve your Import Errors]] (understanding and fixing ModuleNotFoundError and ImportError)
 +  * [[https://medium.com/@moraneus/understanding-multithreading-and-multiprocessing-in-python-1ed39bb078d5|Understanding Multithreading and Multiprocessing in Python]]
 ===== Reading/setting environments variables ===== ===== Reading/setting environments variables =====
  
Line 31: Line 38:
  
  
 +===== Using log files (aka logging) =====
 +
 +It is always possible to display information messages using the ''print()'' command, but it is more efficient to use //logging// tools when you want to **display correctly a lot of information about a script progress
 +**
 +  * [[https://loguru.readthedocs.io/|Loguru]] is a library which aims to bring enjoyable logging in Python
 +    * See also [[https://betterstack.com/community/guides/logging/loguru/|A Complete Guide to Logging in Python with Loguru]]
 +  * More on [[https://betterstack.com/community/guides/logging/#python|logging with python]]
 +  * The default (but not easy to use) Python ''[[https://docs.python.org/3/library/logging.html|logging]]'' module
 ===== Stopping a script ===== ===== Stopping a script =====
  
Line 46: Line 61:
 ===== Playing with strings ===== ===== Playing with strings =====
  
 +==== String formatting ====
 +
 +  * Knowing how to display/print a string correctly is always useful for information and debugging purpose
 +  * There are lots of different ways to display strings
 +
 +=== String formatting examples ===
 +
 +You will find below some examples of //quick printing//, as well as using //old style formatting//, //formatted string literals (f-strings)// and the //String ''format()'' Method//. More details in the next section
 +
 +<code python>
 +>>> # Basic (but quick and efficient) printing
 +
 +>>> year = 1984
 +>>> print(year)
 +1984
 +>>> print('[', year, 'is a famous book ]')
 +[ 1984 is a famous book ]
 +
 +>>> # Old style formatting
 +
 +>>> print('[ %i is a famous book ]' % (year,))
 +[ 1984 is a famous book ]
 +>>> print('[ %10i is a famous book ]' % (year,))
 +[       1984 is a famous book ]
 +>>> print('[ %-10i is a famous book ]' % (year,))
 +[ 1984       is a famous book ]
 +>>> print('[ %010i is a famous book ]' % (year,))
 +[ 0000001984 is a famous book ]
 +
 +>>> # Formatted string literals (f-strings)
 +
 +>>> print(f'[ {year} is a famous book ]'
 +[ 1984 is a famous book ]
 +>>> print(f'[ {year=} is a famous book ]')
 +[ year=1984 is a famous book ]
 +>>> print(f'[ {year:10} is a famous book ]')
 +[       1984 is a famous book ]
 +>>> print(f'[ {year:<10} is a famous book ]')
 +[ 1984       is a famous book ]
 +>>> print(f'[ {year:010} is a famous book ]')
 +[ 0000001984 is a famous book ]
 +>>> print(f'[ {year:10.2f} is a famous book (yes, {year}!) ]')
 +[    1984.00 is a famous book (yes, 1984!) ]
 +
 +>>> # The String format() Method
 +
 +>>> print('[ {} is a famous book ]'.format(year))
 +[ 1984 is a famous book ]
 +>>> print('[ {:10} is a famous book ]'.format(year))
 +[       1984 is a famous book ]
 +>>> print('[ {:<10} is a famous book ]'.format(year))
 +[ 1984       is a famous book ]
 +>>> print('[ {:010} is a famous book ]'.format(year))
 +[ 0000001984 is a famous book ]
 +>>> print('[ {:10.2f} is a famous book  (yes, {}!) ]'.format(year, year))
 +[    1984.00 is a famous book  (yes, 1984!) ]
 +>>> print('[ {title:10.2f} is a famous book  (yes, {title}!) ]'.format(title=year))
 +[    1984.00 is a famous book  (yes, 1984!) ]
 +>>> print('[ {title:10.2e} is a famous book ]'.format(title=year))
 +[   1.98e+03 is a famous book ]</code>
 +
 +=== String formatting references ===
 +
 +  * [[https://docs.python.org/3/tutorial/inputoutput.html#formatted-string-literals|Formatted String Literals]] (//f-strings//)
 +    * Available in Python >= 3.6
 +    * [[https://docs.python.org/3/reference/lexical_analysis.html#f-strings|More documentation]]
 +    * [[https://docs.python.org/3/library/string.html#formatspec|Format Specification Mini-Language]]
 +      * See also the [[https://pyformat.info/|PyFormat site]]
 +
 +  * [[https://docs.python.org/3/tutorial/inputoutput.html#the-string-format-method|The String format() Method]]
 +    * [[https://docs.python.org/3/library/string.html#formatspec|Format Specification Mini-Language]]
 +      * See also the [[https://pyformat.info/|PyFormat site]]
 +
 +  * [[https://pyformat.info/|PyFormat site]]: string formatting using the //old style// and the //String ''format()'' method//
 +    * <wrap hi>Hint</wrap>: this can also be used as an **easy documentation for //f-strings// format**!
  
 +  * [[https://docs.python.org/3/tutorial/inputoutput.html#the-string-format-method|Old string formatting]]
 ==== Splitting (complex) strings ==== ==== Splitting (complex) strings ====
  
other/python/misc_by_jyp.1724745381.txt.gz · Last modified: 2024/08/27 09:56 by jypeter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki