9 czerwca 2021

Python a C++

Wielu przyszłych maturzystów zadaje sobie pytanie: Python czy C++. W ciągu ostatnich lat Python znacznie nabrał na popularności i coraz więcej uczniów zaczyna wybierać właśnie jego. Ten artykuł jest napisany specjalnie dla tych z Was, którzy jeszcze nie mogą się zdecydować. Zaprezentuję główne różnice miedzy C++ i Pythonem, a przynajmniej takie, które dotykają tematów stricte maturalnych.

python czy c++
Python staje się coraz bardziej popularny, zwłaszcza wśród maturzystów.

Kompilacja

Zacznijmy od najbardziej podstawowej różnicy między tymi językami. C++ w przeciwieństwie do Pythona jest językiem kompilowanym. Co to oznacza? W dużym uogólnieniu kod napisany w C++ musi zostać wpierw skompilowany do postaci kodu maszynowego, który zostanie odpowiednio wykonany przez maszynę. Z kolei Python jest językiem interpretowanym, kod za pomocą interpretera jest interpretowany linia po linii. Można go porównać z językami maszynowymi, takimi jak na przykład Assembler. Jednak jaki ma wpływ widoczny dla nas, prostych użytkowników?

c++ czy python
C++ to jeden z języków kompilowanych.

Po pierwsze przez brak kompilacji kody napisane w Pythonie są wolniejsze od ich wersji z C++. Ponadto, dzięki kompilacji jesteśmy w stanie wykryć więcej błędów, których Python może nie wykryć. W przypadku programów na poziomie maturalnym nie ma to większego znaczenia, jednak już przy tworzeniu bardziej zaawansowanych aplikacji trzeba mieć to na uwadze. Przez to programy w Pythonie wymagają większej ilości testów niż napisane w C++, aby mieć pewność, że nie zauważymy żadnego małego błędu krytycznego, który mógłby uśmiercić działanie naszej aplikacji. Jednak tak jak już wspomniałem, żadna z tych rzeczy nie będzie interesować nas na maturze, więc na poziomie licealnym nie trzeba się tym przejmować. To jakie w takim układzie są mocniejsze strony Pythona od C++? Otóż przez brak kompilatora język pozwala nam na bardziej elastyczne pisanie kodów. Jest więcej możliwości, a ponadto nie trzeba się martwić o wiele rzeczy i można radośnie, prawie bezmyślnie "klepać kod". Dla przykładu w C++ gdy tworzymy tablicę, to musimy zadeklarować odgórnie jej rozmiar:

const int rozmiar = 1000;
int tab[rozmiar];

Ponadto tablica tab jest z góry zainicjowana "śmieciami", znajdują się w niej różne wartości, na które nie mamy pierwotnie wpływu, więc musimy dodatkowo wyzerować ją przed rozpoczęciem jakiegoś zadania.

Z kolei w Pythonie możemy dowolnie dodawać nowe elementy do listy, nie martwiąc się o pamięć, a nawet dodawać elementy różnych typów, na przykład:

list = []
list.append(1)
list.append("abcd")

Tablice

Tak jak już wspomniałem wyżej, tablice w C++ i Python znacznie się od siebie różnią. Jednak nie jest to tylko kwestia typów elementów i rozmiaru tablicy. Dodatkową rzeczą udostępnioną przez twórców Pythona, której w C++ nie spotkamy to indeksowanie ujemne. Dokładniej -1 odpowiada ostatniemu znakowi, -2 przedostatniemu itd. Może być to bardzo przydatne w zadaniach, w których musimy sprawdzić parzystość liczb:

number = '321'

if int(number[-1]) mod 2:
	print('Odd')
else:
	print('Even')

gdzie w C++ musielibyśmy skorzystać z:

number[number.size()-1]

co jest oczywiście nieco mniej wygodne. Ponadto, w Pythonie możemy partycjować tekst i brać tylko jego część, na przykład kod:

text = 'abcdef'
print(text[1:3])

wypisze na ekranie znaki od indeksu 1 włącznie do 3, czyli: ’bc’.  Na domiar, możemy wyświetlać cały tekst co daną liczbę znaków:

text = 'abcdef'
print(text[::2])

W ten sposób wyświetli się zawartość zmiennej text co drugi znak: ’ace’. Na pierwszy rzut oka może się to wydawać całkiem niepotrzebne, jednak diametralnie skraca nam kod sprawdzający, czy np. tekst jest palindromem. A jak wiadomo, palindromy bardzo często lubią pojawiać się na maturze.  Poniżej prezentuję funkcje w Python a C++:

def isPalindrome(text):
	if text==text[::-1]: return true
	return false
bool isPalindrome(text) {
	int n = text.size();
	for(int i=0; i<n/2; i++)
		if(text[i] != text[n-i-1]) return false;
	return true;
}

Jak widać, różnica jest ogromna. W C++ musimy wykonać pętlę, która porównuje nam kolejne pary znaków, zaś w Pythonie operator [::-1] odwraca nam tekst jednym wywołaniem funkcji.

Podsumowanie

To jest tylko jedna z wielu różnic między językami C++ Python. Podsumowując, Python posiada łatwiejszy dostęp do większości funkcji bez includowania bibliotek. Ponadto oferuje więcej funkcji niż C++. Python jest znacznie łatwiejszym w nauce językiem i ułatwia pisanie matury. Odpowiadając na pytanie Python czy C++, polecałbym wybrać zloty środek. Wybrać Pythona jako język maturalny, lecz nie rezygnować z C++. Warto się uczyć C++ dodatkowo lub ewentualnie sięgnąć po język C, aby mieć później łatwiejszy start na studiach, czy przy nauce nowych języków.

python c++ różnice
Python świetnie sprawdzi się jako język maturalny, jednak C++ również się przydaje - warto więc się go uczyć.
Najnowsze wpisy

Jak pomóc dziecku w nauce programowania? Poradnik dla rodziców

Przeczytaj >>

Dlaczego warto uczyć dzieci programowania? – jakie umiejętności rozwija programowanie?

Przeczytaj >>

Python a C++

Przeczytaj >>

Algorytm Euklidesa w języku Python

Przeczytaj >>

10 podstawowych funkcji Excela, które trzeba znać

Przeczytaj >>

JESTEŚ AMBITNY?

Dołącz do nas jeszcze dziś i rozwijaj się w swojej ulubionej dziedzinie we współpracy z nauczycielami, którzy są autorami artykułów na naszym blogu!
POZNAJ OFERTĘ KUSÓW
© Ambitni Szkoła Informatyki 011111100101(2) | jesteś niemal gotowy!
crossmenu