5 zlozvyků Python začátečníků, které pokročilí nedělají
Pokud nechcete, aby si každý při prohlédnutí vašeho kódu řekl, že jste určitě začátečník, vyhněte se následujícím zlozvykům. Váš kód tak bude vypadat mnohem elegantněji a čitelněji.
1. Nepoužití konstrukce with open()
při práci se soubory
Konstrukce with open() as soubor:
je v Pythonu užitečná při práci se soubory. Slouží k otevření souboru a automatickému uzavření po skončení bloku with
. To znamená, že nemusíte ručně volat metodu close()
na souboru.
Výhody použití with open()
:
Soubor je automaticky uzavřen po skončení bloku
with
.Kód je čitelnější a kratší.
Je to výkonnější, protože soubor se otevírá pouze jednou a v paměti se udržuje dokud není uzavřen.
# původní způsob
soubor = open("soubor.txt")
data = soubor.read()
soubor.close()
# lepší způsob
with open("soubor.txt") as soubor:
data = soubor.read()
2. Nepoužívání f-stringu
F-stringy jsou způsob formátování řetězců v Pythonu, který je rychlý a jednoduchý. Jsou to řetězce, které jsou ohraničené znaky f
, ve kterých můžete zapsat proměnné za pomocí konstrukce {}
. Proměnná se vloží do složených závorek a Python ji nahradí hodnotou proměnné.
jméno = "Pavel"
# původní způsob
print("Ahoj, jmenuji se" + jméno)
# lepší způsob - použití f-stringů
print(f"Ahoj, jmenuji se {jméno}")
3. Nepoužívání list comprehensions
List comprehensions jsou v Pythonu krátké a jednoduché konstrukce sloužící k vytvoření nového seznamu na základě určitého vzorce. Jsou zapsány jako jeden řádek kódu a skládají se ze tří částí:
Výstupní výraz: Toto je výraz, který se použije pro vytvoření prvků seznamu. Může to být například aritmetický výraz.
Klíčové slovo
for
: Toto slovo označuje začátek cyklu, ve kterém se prochází určitý seznam nebo rozsah čísel.Vstupní seznam: Toto je seznam nebo rozsah čísel, který se prochází v cyklu.
# původní způsob
seznam = []
for i in range(10):
seznam.append(i**2)
# lepší způsob
seznam = [i**2 for i in range(10)]
4. Příkaz except
bez zadání konkrétní výjimky
Příkaz except
se v Pythonu používá k ošetření výjimek, tedy chyb, které se mohou vyskytnout během běhu programu. Je tedy důležité, abyste u příkazu except
uvedli konkrétní typ výjimky, kterou chcete ošetřit. Pokud totiž uvedete pouze except
bez uvedení konkrétní výjimky, ošetříte všechny výjimky.
# původní způsob
try:
print(x)
except:
print("Chyba")
# lepší způsob
try:
print(x)
except NameError:
print("Proměnná není definována")
5. Použití konstrukce len(seznam) == 0
pro ověření prázdného seznamu
Pokud chcete zjistit, zda je seznam nebo řetězec prázdný, použijte operátor not
. Tento operátor vrátí hodnotu True
pro prázdný seznam nebo řetězec a False
pro seznam nebo řetězec s nějakými prvky. Tento způsob je mnohem více čitelnější (více Pythonic).
# původní způsob
seznam = []
if len(seznam) == 0:
print("Seznam je prázdný.")
# lepší způsob
seznam = []
if not seznam:
print("Seznam je prázdný.")
retezec = ""
if not retezec:
print("Řetězec je prázdný.")