Słowa kluczowe to zarezerwowane słowa w Pythonie. Nie możemy użyć słowa kluczowego jako nazwy zmiennej, nazwy funkcji ani żadnego innego identyfikatora.
Tutaj jest lista wszystkich słów kluczowych w języku programowania Python
False | await | else | import | pass |
Nonone | break | except | in | raise |
True | class | finally | is | return |
and | continue | for | lambda | try |
as | def | from | nonlocal | while |
assert | del | global | not | with |
async | elif | if | or | yield |
Powyższe słowa kluczowe mogą ulec zmianie w różnych wersjach Pythona. Niektóre dodatkowe mogą zostać dodane lub niektóre mogą zostać usunięte. Listę słów kluczowych w bieżącej wersji można zawsze uzyskać, wpisując następujące polecenie w znaku zachęty.
>>> import keyword>>> print(keyword.kwlist)
Opis słów kluczowych w Pythonie z przykładami
True, False
True
i False
są wartościami prawdy w Pythonie. Są one wynikami operacji porównania lub operacji logicznych (Boolean) w języku Python. Na przykład:
>>> 1 == 1True>>> 5 > 3True>>> True or FalseTrue>>> 10 <= 1False>>> 3 > 7False>>> True and FalseFalse
Widzimy, że pierwsze trzy stwierdzenia są prawdziwe, więc interpreter zwraca True
i zwraca False
dla pozostałych trzech stwierdzeń. True
i False
w pythonie jest takie samo jak 1
i 0
. Można to uzasadnić na następującym przykładzie:
>>> True == 1True>>> False == 0True>>> True + True2
None
None
jest specjalną stałą w Pythonie, która reprezentuje brak wartości lub wartość null.
Jest to obiekt własnego datatypu, czyli NoneType
. Nie możemy tworzyć wielu obiektów None
, ale możemy przypisać go do zmiennych. Zmienne te będą sobie równe.
Musimy zwrócić szczególną uwagę na to, że None
nie implikuje False
, 0
ani żadnej pustej listy, słownika, łańcucha itp. Na przykład:
>>> None == 0False>>> None == False>>> None == FalseFalse>>> x = None>>> y = None>>> x == yTrue
Funkcje puste, które nie zwracają niczego, automatycznie zwrócą obiekt None
. Obiekt None
jest również zwracany przez funkcje, w których przepływ programu nie napotyka na instrukcję return. Na przykład:
def a_void_function(): a = 1 b = 2 c = a + bx = a_void_function()print(x)
Output
None
Ten program ma funkcję, która nie zwraca wartości, chociaż wykonuje pewne operacje wewnątrz. Więc kiedy wydrukujemy x, otrzymamy None
, które jest zwracane automatycznie (implicitly). Podobnie, oto inny przykład:
def improper_return_function(a): if (a % 2) == 0: return Truex = improper_return_function(3)print(x)
Output
None
Ale chociaż ta funkcja ma deklarację return
, nie jest ona osiągana w każdym przypadku. Funkcja zwróci True
tylko wtedy, gdy dane wejściowe są parzyste.
Jeśli podamy funkcji liczbę nieparzystą, None
zostanie zwrócone niejawnie.
and, or , not
and
, or
, not
są operatorami logicznymi w Pythonie. and
będzie skutkować True
tylko wtedy, gdy oba operandy są True
. Tablica prawdy dla and
jest podana poniżej:
A | B | A i B |
---|---|---|
Prawda | Prawda | Prawda |
Prawda | Fałsz | Fałszywy |
Fałszywy | Prawda | Fałszywy |
Fałszywy | Fałsz | Fałsz |
or
da w wyniku True
, jeśli którykolwiek z operandów jest True
. Tablica prawdy dla or
jest podana poniżej:
A | B | A lub B |
---|---|---|
Prawda | Prawda | Prawda |
Prawda | Fałsz | True |
False | True | |
False | False | False |
not
operator służy do odwrócenia wartości prawdy. Tablica prawdy dla not
jest podana poniżej:
A | nie A |
---|---|
True | False |
False | |
False | True |
przykłady ich użycia są podane poniżej
>>> True and FalseFalse>>> True or FalseTrue>>> not FalseTrue
as
as
jest używany do tworzenia aliasów podczas importowania modułu. Oznacza to nadanie innej nazwy (zdefiniowanej przez użytkownika) modułowi podczas importowania go.
Jak na przykład, Python ma standardowy moduł o nazwie math
. Załóżmy, że chcemy obliczyć, jaki jest cosinus pi, używając aliasu. Możemy to zrobić w następujący sposób, używając as
:
>>> import math as myAlias>>>myAlias.cos(myAlias.pi)-1.0
W tym miejscu zaimportowaliśmy moduł math
, nadając mu nazwę myAlias
. Teraz możemy odwoływać się do modułu math
o tej nazwie. Używając tej nazwy obliczyliśmy cos(pi) i otrzymaliśmy -1.0
jako odpowiedź.
assert
assert
jest używany do celów debugowania.
Podczas programowania czasami chcemy poznać stan wewnętrzny lub sprawdzić, czy nasze założenia są prawdziwe. assert
pomaga nam to zrobić i wygodniej znaleźć błędy. Po assert
następuje warunek.
Jeśli warunek jest prawdziwy, nic się nie dzieje. Ale jeśli warunek jest fałszywy, zostanie podniesiony AssertionError
. Na przykład:
>>> a = 4>>> assert a < 5>>> assert a > 5Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>AssertionError
Dla naszego lepszego zrozumienia, możemy również podać komunikat, który zostanie wydrukowany wraz z AssertionError
.
>>> a = 4>>> assert a > 5, "The value of a is too small"Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>AssertionError: The value of a is too small
W tym momencie możemy zauważyć, że,
assert condition, message
jest równoważne,
if not condition: raise AssertionError(message)
async, await
Słowa kluczowe async
i await
są dostarczane przez bibliotekę asyncio
w Pythonie. Służą one do pisania współbieżnego kodu w Pythonie. Na przykład,
import asyncioasync def main(): print('Hello') await asyncio.sleep(1) print('world')
Aby uruchomić program, używamy
asyncio.run(main())
W powyższym programie słowo kluczowe async
określa, że funkcja będzie wykonywana asynchronicznie.
Tutaj wypisywane jest pierwsze Hello. Słowo kluczowe await
powoduje, że program czeka przez 1 sekundę. A następnie wypisywany jest świat.
break, continue
break
i continue
są używane wewnątrz pętli for
i while
, aby zmienić ich normalne zachowanie.
break
zakończy najmniejszą pętlę, w której się znajduje, a sterowanie przepłynie do instrukcji znajdującej się bezpośrednio pod pętlą. continue
powoduje zakończenie bieżącej iteracji pętli, ale nie całej pętli.
Zjawisko to można zilustrować następującymi dwoma przykładami:
for i in range(1,11): if i == 5: break print(i)
Wyjście
1234
Tutaj pętla for
zamierza wypisać liczby od 1 do 10. Ale warunek if
jest spełniony, gdy i jest równe 5 i wyłamujemy się z pętli. Tak więc, tylko zakres od 1 do 4 jest drukowany.
for i in range(1,11): if i == 5: continue print(i)
Wyjście
1234678910
Tutaj używamy continue
do tego samego programu. Tak więc, gdy warunek jest spełniony, ta iteracja jest pomijana. Ale nie wychodzimy z pętli. Stąd wypisywane są wszystkie wartości oprócz 5.
Dowiedz się więcej o Pythonie break i continue statement.
class
class
służy do definiowania nowej klasy zdefiniowanej przez użytkownika w Pythonie.
Klasa jest zbiorem powiązanych atrybutów i metod, które próbują reprezentować sytuację w świecie rzeczywistym. Ta idea łączenia danych i funkcji w klasy jest kluczowa dla koncepcji programowania zorientowanego obiektowo (OOP).
Klasy można definiować w dowolnym miejscu programu. Ale dobrą praktyką jest definiowanie pojedynczej klasy w module. Poniżej przedstawiono przykładowe użycie:
class ExampleClass: def function1(parameters): … def function2(parameters): …
Dowiedz się więcej o obiektach i klasach Pythona.
def
def
jest używany do definiowania funkcji zdefiniowanej przez użytkownika.
Funkcja jest blokiem powiązanych ze sobą instrukcji, które razem wykonują jakieś konkretne zadanie. Pomaga nam organizować kod w łatwe do zarządzania kawałki, a także wykonywać pewne powtarzalne zadania.
Użycie def
jest pokazane poniżej:
def function_name(parameters): …
Dowiedz się więcej o funkcjach Pythona.
del
del
jest używany do usuwania odniesienia do obiektu. W języku Python wszystko jest obiektem. Możemy usunąć odwołanie do zmiennej za pomocą del
>>> a = b = 5>>> del a>>> aTraceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>NameError: name 'a' is not defined>>> b5
Tutaj widzimy, że odwołanie do zmiennej a zostało usunięte. Tak więc, nie jest ona już zdefiniowana. Ale b nadal istnieje.
del
jest również używany do usuwania elementów z listy lub słownika:
>>> a = >>> del a>>> a
if, else, elif
if, else, elif
są używane do warunkowego rozgałęziania lub podejmowania decyzji.
Gdy chcemy przetestować jakiś warunek i wykonać blok tylko wtedy, gdy warunek jest prawdziwy, wtedy używamy if
i elif
. elif
jest skrótem od else if. else
jest blokiem, który jest wykonywany, jeżeli warunek jest fałszywy. Będzie to jasne na następującym przykładzie:
def if_example(a): if a == 1: print('One') elif a == 2: print('Two') else: print('Something else')if_example(2)if_example(4)if_example(1)
Wyjście
TwoSomething elseOne
Tutaj funkcja sprawdza liczbę wejściową i wypisuje wynik, jeśli jest to 1 lub 2. Każde wejście inne niż to spowoduje wykonanie else
części kodu.
Dowiedz się więcej o Pythonie if i if…else Statement.
except, raise, try
except, raise, try
są używane z wyjątkami w Pythonie.
Wyjątki są w zasadzie błędami, które sugerują, że coś poszło nie tak podczas wykonywania naszego programu. IOError
, ValueError
, ZeroDivisionError
, ImportError
, NameError
, TypeError
itp. to kilka przykładów wyjątków w Pythonie. Bloki try...except
są używane do wyłapywania wyjątków w Pythonie.
Możemy zgłosić wyjątek jawnie za pomocą słowa kluczowego raise
. Poniżej znajduje się przykład:
def reciprocal(num): try: r = 1/num except: print('Exception caught') return return rprint(reciprocal(10))print(reciprocal(0))
Wyjście
0.1Exception caughtNone
Tutaj funkcja reciprocal()
zwraca odwrotność liczby wejściowej.
Gdy wprowadzimy 10, otrzymamy normalne wyjście 0,1. Ale kiedy wprowadzamy 0, automatycznie pojawia się ZeroDivisionError
.
Jest to wychwytywane przez nasz blok try…except
i zwracamy None
. Mogliśmy również podnieść ZeroDivisionError
jawnie, sprawdzając dane wejściowe i obsłużyć je gdzie indziej, jak poniżej:
if num == 0: raise ZeroDivisionError('cannot divide')
finally
finally
jest używany z blokiem try…except
do zamykania zasobów lub strumieni plików.
Użycie finally
zapewnia, że blok kodu wewnątrz niego zostanie wykonany, nawet jeśli wystąpi nie obsłużony wyjątek. Na przykład:
try: Try-blockexcept exception1: Exception1-blockexcept exception2: Exception2-blockelse: Else-blockfinally: Finally-block
Tutaj, jeśli w bloku Try-block
wystąpi wyjątek, zostanie on obsłużony w bloku except
lub else
. Niezależnie jednak od tego, w jakiej kolejności przepływa wykonanie, możemy być pewni, że blok Finally-block
zostanie wykonany nawet w przypadku wystąpienia błędu. Jest to przydatne przy czyszczeniu zasobów.
Dowiedz się więcej o obsłudze wyjątków w programowaniu w Pythonie.
for
for
służy do tworzenia pętli. Generalnie używamy for
, gdy znamy liczbę powtórzeń, które chcemy zapętlić.
W Pythonie możemy go używać z dowolnymi typami sekwencji, takimi jak lista czy łańcuch. Oto przykład, w którym for
jest używane do przechodzenia przez listę nazw:
names = for i in names: print('Hello '+i)
Wyjście
Hello JohnHello MonicaHello StevenHello Robin
Dowiedz się więcej o Pythonie dla pętli.
from, import
import
słowo kluczowe jest używane do importowania modułów do bieżącej przestrzeni nazw. from…import
jest używane do importowania określonych atrybutów lub funkcji do bieżącej przestrzeni nazw. Na przykład:
import math
zaimportuje moduł math
. Teraz możemy użyć funkcji cos()
wewnątrz niego jako math.cos()
. Ale jeśli chcemy zaimportować tylko funkcję cos()
, można to zrobić za pomocą from
as
from math import cos
teraz możemy używać funkcji po prostu jako cos()
, nie trzeba pisać math.cos()
.
Dowiedz się więcej o modułach Pythona i instrukcji importu.
global
global
jest używany do zadeklarowania, że zmienna wewnątrz funkcji jest globalna (poza funkcją).
Jeśli potrzebujemy odczytać wartość zmiennej globalnej, nie jest konieczne definiowanie jej jako global
. Jest to zrozumiałe.
Jeśli potrzebujemy zmodyfikować wartość zmiennej globalnej wewnątrz funkcji, to musimy ją zadeklarować z global
. W przeciwnym razie tworzona jest zmienna lokalna o tej nazwie.
Następujący przykład pomoże nam to wyjaśnić.
globvar = 10def read1(): print(globvar)def write1(): global globvar globvar = 5def write2(): globvar = 15read1()write1()read1()write2()read1()
Wyjście
1055
Tutaj funkcja read1()
tylko odczytuje wartość globvar
. Nie musimy więc deklarować jej jako global
. Ale funkcja write1()
modyfikuje wartość, więc musimy zadeklarować zmienną jako global
.
W naszym wyjściu widzimy, że modyfikacja miała miejsce (10 zostało zmienione na 5). Zmienna write2()
również próbuje zmodyfikować tę wartość. Ale nie zadeklarowaliśmy jej jako global
.
Stąd powstaje nowa zmienna lokalna globvar
, która nie jest widoczna poza tą funkcją. Mimo że modyfikujemy tę zmienną lokalną do 15, zmienna globalna pozostaje niezmieniona. Jest to wyraźnie widoczne na naszym wyjściu.
w
in
służy do testowania, czy sekwencja (lista, tuple, string itp.) zawiera wartość. Zwraca True
jeśli wartość jest obecna, w przeciwnym razie zwraca False
. Na przykład:
>>> a = >>> 5 in aTrue>>> 10 in aFalse
Podstawowym zastosowaniem operatora in
jest przemierzanie sekwencji w pętli for
.
for i in 'hello': print(i)
Output
hello
is
is
jest używany w Pythonie do testowania tożsamości obiektów. Podczas gdy operator ==
jest używany do testowania, czy dwie zmienne są równe czy nie, is
jest używany do testowania, czy dwie zmienne odnoszą się do tego samego obiektu.
Zwraca True
, jeśli obiekty są identyczne i False
, jeśli nie.
>>> True is TrueTrue>>> False is FalseTrue>>> None is NoneTrue
Wiemy, że w Pythonie istnieje tylko jedna instancja True
, False
i None
, więc są one identyczne.
>>> == True>>> is False>>> {} == {}True>>> {} is {}False
Pusta lista lub słownik są równe innej pustej liście lub słownikowi. Ale nie są to identyczne obiekty, ponieważ są one zlokalizowane osobno w pamięci. Dzieje się tak dlatego, że lista i słownik są mutowalne (wartość może być zmieniona).
>>> '' == ''True>>> '' is ''True>>> () == ()True>>> () is ()True
W przeciwieństwie do listy i słownika, string i tuple są immutable (wartość nie może być zmieniona raz zdefiniowana). Stąd, dwa równe string lub tuple są również identyczne. Odnoszą się one do tego samego miejsca w pamięci.
lambda
lambda
służy do tworzenia funkcji anonimowej (funkcja bez nazwy). Jest to funkcja inline, która nie zawiera instrukcji return
. Składa się z wyrażenia, które jest obliczane i zwracane. Na przykład:
a = lambda x: x*2for i in range(1,6): print(a(i))
Output
246810
Tutaj, stworzyliśmy funkcję inline, która podwaja wartość, używając instrukcji lambda
. Użyliśmy tego do podwojenia wartości na liście zawierającej od 1 do 5.
Dowiedz się więcej o funkcjach lamda w Pythonie.
nonlocal
Użycie słowa kluczowego nonlocal
jest bardzo podobne do słowa kluczowego global
. nonlocal
służy do zadeklarowania, że zmienna wewnątrz funkcji zagnieżdżonej (funkcja wewnątrz funkcji) nie jest dla niej lokalna, czyli leży w zewnętrznej funkcji dołączającej. Jeśli potrzebujemy zmodyfikować wartość zmiennej nielokalnej wewnątrz funkcji zagnieżdżonej, to musimy ją zadeklarować za pomocą nonlocal
. W przeciwnym razie wewnątrz funkcji zagnieżdżonej zostanie utworzona zmienna lokalna o tej nazwie. Poniższy przykład pomoże nam to wyjaśnić.
def outer_function(): a = 5 def inner_function(): nonlocal a a = 10 print("Inner function: ",a) inner_function() print("Outer function: ",a)outer_function()
Output
Inner function: 10Outer function: 10
Tutaj, inner_function()
jest zagnieżdżone wewnątrz outer_function
.
Zmienna a znajduje się w outer_function()
. Jeśli więc chcemy ją zmodyfikować w inner_function()
, musimy ją zadeklarować jako nonlocal
. Zauważ, że a nie jest zmienną globalną.
Więc, widzimy na wyjściu, że zmienna została pomyślnie zmodyfikowana wewnątrz zagnieżdżonego inner_function()
. Wynik nieużycia słowa kluczowego nonlocal
jest następujący:
def outer_function(): a = 5 def inner_function(): a = 10 print("Inner function: ",a) inner_function() print("Outer function: ",a)outer_function()
Wyjście
Inner function: 10Outer function: 5
Tutaj nie deklarujemy, że zmienna a wewnątrz zagnieżdżonej funkcji jest nonlocal
. W związku z tym tworzona jest nowa zmienna lokalna o tej samej nazwie, ale nielokalna a nie jest modyfikowana, co widać na naszym wyjściu.
pass
pass
jest deklaracją null w Pythonie. Nic się nie dzieje po jego wykonaniu. Jest ona używana jako placeholder.
Załóżmy, że mamy funkcję, która nie jest jeszcze zaimplementowana, ale chcemy ją zaimplementować w przyszłości. Zwykłe napisanie,
def function(args):
w środku programu da nam IndentationError
. Zamiast tego, konstruujemy puste ciało za pomocą instrukcji pass
.
def function(args): pass
To samo możemy zrobić również w pustym class
.
class example: pass
return
return
Konstrukcja return
return
jest używana wewnątrz funkcji w celu wyjścia z niej i zwrócenia wartości.
Jeśli nie zwrócimy wartości jawnie, None
jest zwracane automatycznie. Można to sprawdzić na następującym przykładzie.
def func_return(): a = 10 return adef no_return(): a = 10print(func_return())print(no_return())
Output
10None
while
while
jest używane do tworzenia pętli w Pythonie.
Przekazy wewnątrz pętli while
są wykonywane do momentu, gdy warunek dla pętli while
zostanie oceniony na False
lub napotkana zostanie instrukcja break
. Poniższy program to ilustruje.
i = 5while(i): print(i) i = i – 1
Wyjście
54321
Zauważ, że 0 jest równe False
.
Dowiedz się więcej o pętli while w Pythonie.
with
with
instrukcja służy do zawijania wykonania bloku kodu wewnątrz metod zdefiniowanych przez menedżera kontekstu.
Menedżer kontekstu jest klasą, która implementuje metody __enter__
i __exit__
. Użycie instrukcji with
zapewnia, że metoda __exit__
jest wywoływana na końcu zagnieżdżonego bloku. Koncepcja ta jest podobna do użycia bloku try…finally
. Oto przykład.
with open('example.txt', 'w') as my_file: my_file.write('Hello world!')
Ten przykład zapisuje tekst Hello world!
do pliku example.txt
. Obiekty File mają zdefiniowane w sobie metody __enter__
i __exit__
, więc działają jak własny menedżer kontekstu.
Najpierw wywoływana jest metoda __enter__
, następnie wykonywany jest kod wewnątrz instrukcji with
, a na końcu wywoływana jest metoda __exit__
. Metoda __exit__
jest wywoływana nawet w przypadku wystąpienia błędu. Zasadniczo zamyka ona strumień plików.
yield
yield
jest używane wewnątrz funkcji jak instrukcja return
. Ale yield
zwraca generator.
Generator jest iteratorem, który generuje jeden element na raz. Duża lista wartości będzie zajmować dużo pamięci. Generatory są przydatne w tej sytuacji, ponieważ generują tylko jedną wartość na raz, zamiast przechowywać wszystkie wartości w pamięci. Na przykład,
>>> g = (2**x for x in range(100))
utworzy generator g, który generuje potęgi 2 aż do liczby dwa podniesionej do potęgi 99. Liczby te możemy wygenerować za pomocą funkcji next()
, jak pokazano poniżej.
>>> next(g)1>>> next(g)2>>> next(g)4>>> next(g)8>>> next(g)16
I tak dalej… Ten typ generatora jest zwracany przez instrukcję yield
z funkcji. Oto przykład.
def generator(): for i in range(6): yield i*ig = generator()for i in g: print(i)
Output
.