Ten plik jest zasadniczo notesikiem, który będę sobie pisał podczas prostych zajęć z informatyki prowadzonymi przez Janusza.
Podstawowy Syntax
Funkcje built-it
Funkcja
Co robi
Przykład
print()
Pokazuje tekst w konsolii
print('elo')
len()
Zwraca długość obiektu
len([1,2]) = 2
type()
Pokazuje jaki rodzaj danych to jest
type(5) = int
str()
Zamienia dane na stringa
str(100) = “100”
int()
Zamienia dane na liczbę całkowitą
int("32") = 32
list()
Zamienia dane na liste
list("abc") = [a, b, c]
Atrybuty
Funkcja
Co robi
.val
Pokazuje wartość
.next
Zwraca pointer
.shape
Np. w Pandas zwraca liczbę wymiarów
Akcje (Methods)
Funkcja
Co robi
Przykład
.append()
Dodaje item do końca listy
lista.append(2)
.pop()
Usuwa ostatni item z listy i go zwraca
lista.pop()
.lower()
Zmienia wszystkie litery string na małe
"HELLO".lower()
.split()
Rozdziela tekst na listę słów
"raz dwa trzy".split()
.keys()
Zwraca wszystkie dane w słownik
slownik.key()
Z zajęć 11.03.2026
Zajęcia 25/02
Algorytm Euklidesa - szuka największe wspólnego dzielnika (Greatest Common Divisor)
while n is different from k if n > k n = n - k else k = k - nGCD = n
A tutaj jest kod do rozwiązywania równania kwadratowego ;)
import math#Program rozwiązujący równanie kwadratowe# ax^2+bx+c = 0#inf. dla użytkownikaprint("Rozwiązywanie równania kwadratowego ax^2 + bx + c = 0")# Inicjalizacja zmiennycha=2 # wsp. przy x^2b=10c=6#Inf dla uż.print("Rozwiązywanie równania kwadratowego " + str(a) + "*x^2 + " + str(b) + " *x + " + str(c) + "= 0")if a == 0: if b == 0: if c == 0: print("Niekończenie wiele rozwiązań") else: print("Sprzeczne") else: #b!= 0 print("x = " + str(-b / 2 * a))else: delta = b ** 2 - 4 * a * c if delta < 0: print("Sprzeczne") elif delta == 0: print("x = " + str(-c/b)) else: x1 = (-b + math.sqrt(delta)) / (2 * a) x2 = (-b - math.sqrt(delta)) / (2 * a) print("x = " + str(x1)) print("x = " + str(x2))
Zajęcia 04/03
W sumie to nic się nie działo 😴
Zajęcia 11/03
Janusz programuje a ja patrzę na funkcje i inne w Pythonie3
Stworzyłem prostą tabelkę z prostszymi funkcjami do którego będę dodawał w przyszłości nowe rzeczy.
# Najprostrze pętle # Dla każdego i w danym zakresie (liczymy od 0), bez samego ograniczenia górnego for i in range(10): print(i, end=", ") # Zwraca 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
Zajęcia 18/03
Funkcja
Co robi
Przykład
len(lista)
Zwraca długość listy
-||-
lista[i]
Zwraca wartość na i miejscu indeksu
-||-
range(k,n)
k,k+1,...,n−1! BEZ n !
-||-
range(k,n,m)
k,k+m,k+2⋅m,...,k+j⋅m,largestthat<n
range(-5,5,2) = -5, -3, -1, 1, 3
list(range(n))
Zwraca listę z elementami range
list(range(3)) = [0,1,2]
Zajęcia 25/03
Dzisiaj na zajęciach omawiamy listy z Januszem, znowu dużo gada :P
Listy można zagnieżdżać w sobie (nested) list_1 = [1, 2, [3, 4, 5]]
Pętla for in→ możemy np. iterować w pętli po każdej wartości danej listy
for x in [1, 2, 3, 10]: print(x, end = ', ')# otrzymamy wyniki 1, 2, 3, 10, #nawet kiedy mamy drugą listęfor x in [1, 2, 3, 10, [11,12,13]]: if type(x) == list: for y in x: priynt(y, end = ', ') else: print(x, end = ', ')# otrzymamy wynik 1, 2, 3, 10, 11, 12, 13,
Mamy też polecenie in gdzie, <element> in <list>
3 in [1, 2, 3, 4] # TRUE[1, 2] in [1, 2, 3] # FALSE[1, 2] in [[1, 2], 3] # TRUE
Prosty program, który samoczynnie odgaduje liczbę w danym zakresie
from random import randint dół = 0góra = 1000000lewy, prawy = dół, góra szukana = randint(dół, góra) liczbapytań = 0print("Gra w zgadywankę") while liczbapytań <= 20: # print("Podaj liczbę z zakresu " + str(dół) + "-" + str(góra)) strzał = (prawy+lewy)//2 print(strzał) # odp = int(input(f"Podaj liczbę z zakresu {dół}-{góra}: ")) # print(f"{type(szukana)}, {type(odp)}") liczbapytań += 1 if szukana == strzał: print (f"Trafiłeś !!!! Zgadłeś za {liczbapytań} razem") break # else: # szukane != odp print("Pudło") if szukana > odp: print("za mało") else: # szukane < odp print("za dużo") elif szukana > strzał: print("za mało") lewy = strzał else: # szukane < odp print("za dużo") prawy = strzał if liczbapytań == 21: print("Skończyły się pytania")
Wynik:
> Gra w zgadywankę500000za dużo250000za mało375000za dużo312500za dużo281250za dużo265625za mało273437za mało277343za dużo275390za dużo274413za mało274901za mało275145za mało275267za dużo275206za dużo275175za mało275190za dużo275182za dużo275178za mało275180Trafiłeś !!!! Zgadłeś za 19 razem
Zajęcia 22/04
Tym razem, programujemy proste funkcje i opieramy się głównie na listach itp. z ciekawych rzeczy Janusz przedstawia użycie wbudowanego modłu doctest w Pythonie. DocTest jest wywoływant przez >>> otoczone w komentarzu """ , gdzie syntax widać w przykładzie. Funkcja ta jest przydatna, ponieważ zwraca nam powiadomienie czy naszy przypusczalny wynik (który chcemy otrzymać) się zgadza lub nie. np.
def suma(lista): """ >>> suma([1,2,3]) 5 """ suma = 0 for elem in lista: suma += elem return suma
Sprawdzamy czy def suma() zwróci nam sumę 1+2+3=6 , a my się spodziewamy 5, więc dostajemy powiadomienie w konsoli
Failure**********************************************************************File "C:\Users\drewn\PycharmProjects\PythonProject2\listy.py", line 5, in listy.sumaFailed example: suma([1,2,3])Expected: 5Got: 6
Zajęcia 29/04
Dzisiaj uczymy się o I/O w Pythonie, czyli o Standard Input and Output, gdzie mamy możliwość:
Otwierania plików
Pisania w pliku
Zamykania pliku
Ogólnego edytowania pliku
Otwieranie pliku
Podstawową komendą otwierania pliku w Pythonie jest komenda open()
file = open(path, mode)# path - odpowiada za ścieżke, czyli lokalizacja pliku# mode - czyli tryb otwierania pliku
Wyróżniamy 7 trybów:
1. r - reading, czyli czytanie pliku, bazowy tryb jeśli nie podamy innego
2. w - writing, usuwa zawartość pliku albo tworzy nowy
3. x - writing, tworzy nowy plik
4. a - writing, ustawia “pozycję kursora” na samym końcu pliku albo tworzy nowy plik
5. + (r+, w+, x+, a+) - umożliwia dodatkowo czytanie albo pisanie
6. b - tryb binarny
7. t - tryb tekstowy, bazowy tryb jeśli nie podamy innego
Przykłady
# Pełny SYNTAXfile = open(file, mode='r', buffering=-1, encoding=None, \ errors=None, newline=None, closefd=True, opener=None)'w' # Usuwa zawartość pliku jeśli już istniał'w+' # Writing and reading mode, text mode -> Pisanie oraz zczytywanie, tryb tekstowy
Zamykanie pliku
Podstawową komendą jest komenda .close()
file.close()# Zamyka tylko już otwarty plik
Praca z plikami
Jest wiele sposobów czytania plików (reading):
file.read() # Czyta w całym pliku, zwraca STRINGfile.read(size) # Czyta maksymalnie 'size' znaków (nie bajtów!) z plikufile.readline() # Czyta następną linijkę z pliku# Pętlefor line in file: # Robi coś z linijkąfile.readlines() # Czyta wszystkie linijki pliku - zwraca listęlist(file) # Robi dokładnie to samo
Jeśli chodzi o pisanie w pliku:
file.write(string) # Dopisuje string do plikuwhile there_is_next_line(): file.write(generate_next_line())
Uwaga!
W pythonie “Program” zapamiętuje aktualny stan czytania i pisania pliku, co ma swoje konsekwencje np.
contents1 = file.read()contents2 = file.read()# W tym przypadku contents2 BĘDZIE PUSTE!!!
Zajęcia 06.05
Powierzchowne wprowadzenie biblioteki Module os , która odpowiada za manipulacjami na folderach i plikach (directories), m. in.:
chdir(path) - zmienia katalog do podane w path
getcwd() - zwraca aktualny folder w którym pracujemy (cwd - current working directory)
mkdir(path, mode) - tworzy katalog z podaną nazwą path
remove(path) - usuwa plik/folder podany w path
rename(old,new) - zmienia nazwę pliku/katalog z old na new, (są to ścieżki)
walk(start) - przeszukuję wszystkie sub-foldery od podanego początkowego start (uproszczona wersja)
Przykład użycia:
def file_sizes(path): import os # path, walk from os.path import join, getsize # illustration of the different ways to use the modules for directory, subdirectories, files in os.walk(path): print(f"{directory:50} has {sum(getsize(join(directory, name)) for name in files):10,} bytes in {len(files):5,} files.")