Oto następny artykuł dotyczący Pythona dla wszystkich początkujących - zarówno dla tych, którzy uczą się Pythona jako pierwszego, jak i dla tych, którzy już znają dowolny inny język 🔔! Jak mogłeś(-aś) się zorientować, Python jest bardzo oryginalny jeśli chodzi o zasady w pisaniu poszczególnych instrukcji i mocno odbiega od standardów znanych z większości innych popularnych języków programowania 🤨. Czas pokazać 5 najczęściej popełnianych błędów w języku Python, na jakie warto zwrócić uwagę, niezależnie od tego, czy Python to Twój pierwszy język którego się uczysz, czy właśnie zacząłeś/zaczęłaś się go uczyć, a już umiesz jakiś inny 🔥!

PRZEDSTAWIAM 5 NAJCZĘŚCIEJ POPEŁNIANYCH BŁĘDÓW W JĘZYKU PYTHON!

Jak wszyscy doskonale wiedzą, Python wymaga od nas stosowania się do takiego zapisu kodu, jakiego nie ujrzymy w większości innych języków 💥. Sam miewałem problemy, aby stale pamiętać o dwukropku, wcięciu czy innym słowie kluczowym 🙂. Dlatego też ten materiał ma na celu przykucie Twojej uwagi na drobne szczegóły składniowe, które są na tyle istotne, że niewłaściwe ich wprowadzenie (lub ich brak) powoduje błąd składniowy, czyli niemożność uruchomienia programu 🚫!

Zatem, poznajmy te pułapki składniowe, które nieraz mogą doprowadzić do szału 😅.

JAKIE WYSTĘPUJĄ NAJCZĘŚCIEJ POPEŁNIANE BŁĘDY W JĘZYKU PYTHON?

Oto 5 najczęściej popełnianych błędów w Pythonie jakie dotykają zarówno początkujących, jak i ludzi będących po innym języku programowania 👇:

  1. brak znaku dwukropka po instrukcji warunkowej/pętli/nagłówku funkcji/nagłówku klasy,
  2. brak wcięcia dla bloku kodu instrukcji warunkowej/pętli/funkcji/klasy,
  3. brak konwersji liczby na łańcuch znaków w momencie konkatenacji (próba połączenia łańcucha z wartością liczbową),
  4. brak importu modułu lub błędny zapis importu modułu,
  5. próba odwołania się do zmiennej lokalnej spoza zakresu jej istnienia.

Poszczególne inne tematy Pythona, zostały opisane w odrębnych materiałach ℹ️. Teraz szybka prezentacja każdej z sytuacji 🚀!

BRAK ZNAKU DWUKROPKA PO INSTRUKCJI WARUNKOWEJ/PĘTLI/NAGŁÓWKU FUNKCJI/NAGŁÓWKU KLASY

Jeden z tych "chochlików" jaki zostawisz wiele razy, zanim zaczniesz dopisywać go automatycznie 😏. W Pythonie obowiązuje postawienie znaku dwukropka jako ostatni znak w momencie definicji jednej z następujących konstrukcji 👇:

  1. instrukcji warunkowej,
  2. pętli (for lub while),
  3. nagłówku funkcji,
  4. nagłówku klasy.

W każdym z tych przypadków, koniecznie musi się znaleźć ten znak 👇:

if rating >= 3: # <- znak dwukropka

for number in numbers: # <- znak dwukropka

def my_function(): # <- znak dwukropka

class MyClass: # <- znak dwukropka

Brak dwukropka w którymkolwiek z powyższych przypadków zostanie potraktowane jak błęd składniowy typu "SyntaxError", który uniemożliwi Tobie uruchomienie programu 🚫!

BRAK WCIĘCIA DLA BLOKU KODU INSTRUKCJI WARUNKOWEJ/PĘTLI/FUNKCJI/KLASY

Wcięcie bloku kodu jest drugim niezbędnym elementem jaki musi się znaleźć pod tymi samymi konstrukcjami wymienionymi wyżej, czyli 👇:

  1. pod instrukcją warunkową,
  2. pod pętlą (for lub while),
  3. pod funkcją,
  4. pod klasą.

Chodzi o dodanie spacji lub tabulatora przed wierszem z instrukcją, aby podkreślić jego "przynależność" do danej konstrukcji 👇:

if rating >= 3:
	# instrukcje razem z wcięciem

for number in numbers:
	# instrukcje razem z wcięciem

def my_function():
	# instrukcje razem z wcięciem

class MyClass:
	# instrukcje razem z wcięciem

W Pythonie wcięcia nie robi się na pokaz, tylko aby "wiedział", że instrukcja podlega pod daną konstrukcję 👀. Jeżeli instrukcja znajdujące się tuż pod jedną z tych konstrukcji nie jest wcięta, Python zgłosi błąd, że spodziewał się takiego wcięcia ("IndentationError" ℹ️) i odmówi wykonania kodu 🚫.

BRAK KONWERSJI LICZBY NA ŁAŃCUCH ZNAKÓW W MOMENCIE KONKATENACJI

Najczęstszy błąd nr 3 to przypadek, w którym mamy wartość liczbową i chcemy ją wstawić do środka łańcucha znaków poprzez konkatenację (połączenie dwóch lub więcej łańcuchów w jeden ℹ️). Python wymusza konieczność konwersji liczby na łańcuch znaków, aby dopuścić do takiej operacji 💥. To również jeden z błędów jakie często będziesz popełniać, tym bardziej jeśli już znasz jakiś język, bo są takie, które nie wymagają konwersji na łańcuch znaków i zezwalają na wstawienie liczby jako argumentu np. Java 💡.

Tutaj trzeba najpierw skonwertować wartość na łańcuch, aby doszło do poprawnej konkatenacji 👇:

score = 5000

print('Gracz uzyskał ' + str(score) + ' punktów.')

Zapomnisz o konwersji, to Python zgłosi błąd typu "TypeError" i sprzeciwi się wykonaniu takiego programu 🚫!

BRAK IMPORTU MODUŁU LUB BŁĘDNY ZAPIS IMPORTU MODUŁU

Kolejny częsty błąd na liście, to brak zaimportowanego modułu (lub jego błędny zapis), a próbujesz skorzystać z metody lub wartości, która się w nim znajduje 🔒. To może być częściej lub rzadziej popełniany błąd, w zależności od tego, czy już umiesz jakiś język, który również wymagał podobnych instrukcji odwołujących się do jakiejś zawartości z zewnątrz. Natomiast nawet wtedy Python może przyprawić o zawrót głowy, gdyż posiada 2 różne sposoby importu, a one wpływają na sposób zapisu uzyskiwania do dostępu 😱!

To także może Tobie na początku sprawiać niemałe problemy 🙂.

W obu przypadkach korzystamy ze wspólnego słowa kluczowego, "import" ℹ️. Natomiast możemy także skorzystać z dodatkowego hasła "from" i tu już robi się karuzela 😅.

Gdy napiszemy tak 👇:

import random

to po polsku oznacza to: "zaimportuj cały moduł jak leci" 😄. To wtedy pozwala na odwoływanie się do składowych w taki sposób 👇:

print(random.randint(1, 5))

czyli taki "pełny" 👇:

  • nazwa modułu,
  • kropka,
  • nazwa metody lub wartości.

Gdy napiszemy tak 👇:

from random import randint

to wtedy to oznacza: "zaimportuj wyłącznie metodę randint" 💥. Taki zapis z kolei pozwala na odwołanie się tylko do tej metody, lecz w sposób "skrócony" 😱, jakby ta metoda znajdowała się w tym samym skrypcie 👇:

print(randint(1, 5))

i wtedy nie piszemy przedrostka w postaci nazwy modułu i kropki, bo Python stwierdzi, że nie wie o jaką metodę nam chodzi ❌!

Niezależnie od tego, w którym miejscu popełnimy błąd, Python odmówi uruchomienia programu, a typem błędu będzie "NameError" 🚫.

PRÓBA ODWOŁANIA SIĘ DO ZMIENNEJ LOKALNEJ SPOZA ZAKRESU JEJ ISTNIENIA

Ostatni najczęstszy błąd: próba odwołania się do zmiennej z innego bloku kodu, w którym się znajduje (zmienna lokalna) 💥. Jeżeli mamy zmienną znajdującą się w jakimś bloku kodu np. funkcji 👇:

def my_function():
	x = 10

to zakres tej zmiennej jest lokalny 😳. Lokalny zakres oznacza występowanie tej zmiennej wyłącznie w obrębie tego bloku 😲! To oznacza, że próba odwołania się do niej spoza tego bloku zakończy się błędem typu "NameError", bo Python nie będzie "widział" tej zmiennej poza zakresem funkcji 🚫.

W Pythonie, domyślnie wszystkie zmienne są lokalne 🔥. Gdy chcemy mieć zmienną "widoczną" w całym skrypcie, musimy uczynić ją globalną wewnątrz funkcji 👇:

def my_function():
	global x

	x = 10

my_function()
print(x)

Co więcej, zanim skorzystamy z tej zmiennej, musimy najpierw wywołać funkcję, w której znajduje się oznaczenie zmiennej globalnej 😱! Tylko wtedy Python zacznie "dostrzegać" tę zmienną i program zakończy się pomyślnie ✅.

5 najczęściej popełnianych błędów w języku Python

Oto 5 najczęściej popełnianych błędów w języku Python mogących sprawiać największe problemy!


To koniec tego materiału 😊. Oto 5 najczęściej popełnianych błędów w języku Python, z jakimi możesz mieć największe problemy podczas uczenia się składni 🙂. Obyś potknął/potknęła się o nie jak najmniej razy w swoim życiu 😉.

PODOBNE ARTYKUŁY