Back to posts Edit this post
Copy content

09 Mar 16:41

Bazy danych, języki skryptowe i opisu danych Laboratorium 2 W tym laboratorium przedstawione zostaną następujące zagadnienia: podstawy programowania w języku Python, w szczególności: tworzenie zmiennych i ich typy wyświetlanie wartości listy (tworzenie, modyfikacja, wyświetlanie, sortowanie) krotki (tworzenie, wyświetlanie) słowniki (tworzenie, modyfikacja, wyświetlanie) instrukcja warunkowa if, elif, else pętla for oraz pętla while funkcje (tworzenie, wywołanie) obsługa wyjątków - instrukcja try except obsługa czasu (daty), losowe wartości i operacje matematyczne obsługa plików tekstowych (zapis i odczyt) klasy (tworzenie obiektów, wywoływanie metod) instalacja dodatkowych pakietów wirtualne środowisko programistyczne (tworzenie i używanie) Treść zajęć Podstawowe zmienne zwróć uwagę, że typy są domniemane (pomaga to podczas pisania kodu, jednak w ogólności nie trzeba go podawać) zmienna_int: int = 4 zmienna_float: float = 1.2 zmienna_bool: bool = True zmienna_dowolnego_typu = 1234 print(zmienna_float) # wyświetlenie zmiennej zmienna_float += 2.54 # dodanie do zmiennej float wartości print(zmienna_float) zmienna_str_a: str = 'Hello' zmienna_str_b: str = "World" print(zmienna_str_a + ' ' + zmienna_str_b + '!') 1.2 3.74 Hello World! wprowadzanie danych do programu (przez terminal) imie = input("(opcjonalnie) Podaj imie: ") print(f'Witaj {imie}') Witaj Adam Listy lista = [1, 'abcd', ['a', 2]] print('Lista dowolnych zmiennych:', lista) print('Dlugosc listy:', len(lista)) print('Dostep do elementu listy: ', lista[1]) lista[0] = 2 # modyfikacja elementu listy print('Lista dowolnych zmiennych:', lista) Lista dowolnych zmiennych: [1, 'abcd', ['a', 2]] Dlugosc listy: 3 Dostep do elementu listy: abcd Lista dowolnych zmiennych: [2, 'abcd', ['a', 2]] lista = [100, 2, 3, 4, 9, 14] print('Lista liczb calkowitych:', lista) print('Ostatni element listy liczb calkowitych (indeks -1):', lista[-1]) print('Lista liczb calkowitych (indeksy od 1 do 3):', lista[1:3]) print('Lista liczb calkowitych (indeksy od 1 do konca):', lista[1:]) print('Lista liczb calkowitych (indeksy od 1 do konca - 1):', lista[1:-1]) lista.append(22) # dodanie wartosci do listy del lista[2] # suwanie z listy print('Lista liczb calkowitych (po dodaniu):', lista) lista = sorted(lista) print('Posortowana lista:', lista) print('Suma wartosci:', sum(lista)) Lista liczb calkowitych: [100, 2, 3, 4, 9, 14] Ostatni element listy liczb calkowitych (indeks -1): 14 Lista liczb calkowitych (indeksy od 1 do 3): [2, 3] Lista liczb calkowitych (indeksy od 1 do konca): [2, 3, 4, 9, 14] Lista liczb calkowitych (indeksy od 1 do konca - 1): [2, 3, 4, 9] Lista liczb calkowitych (po dodaniu): [100, 2, 4, 9, 14, 22] Posortowana lista: [2, 4, 9, 14, 22, 100] Suma wartosci: 151 Krotki krotka = (1.2, 2.3, 'dane') print('Krotka:', krotka) print('Element krotki (indeks 0):', krotka[0]) # krotka[0] = 1 # brak możliwości modyfikacji Krotka: (1.2, 2.3, 'dane') Element krotki (indeks 0): 1.2 Słowniki slownik = {"imie": "Jan", "nazwisko": "Nowak", "wiek": 18} print('Slownik:', slownik) print('Element slownika (klucz imie):', slownik['imie']) print('Czy slownik ma klucz wzrost:', 'wzrost' in slownik) slownik['imie'] = 'Artur' # modyfikacja slownika slownik['waga'] = 80 # dodanie do slownika del slownik['nazwisko'] # usuwanie ze slownika print('Slownik (po modyfikacji i dodaniu):', slownik) Slownik: {'imie': 'Jan', 'nazwisko': 'Nowak', 'wiek': 18} Element slownika (klucz imie): Jan Czy slownik ma klucz wzrost: False Slownik (po modyfikacji i dodaniu): {'imie': 'Artur', 'wiek': 18, 'waga': 80} Instrukcje warunkowe number = 5 if number >= 3: print('W srodku if-a') elif 3.5 <= number < 9: print('W srodku elif-a') else: pass # nic nie rob W srodku if-a Pętle pętla for for i in range(4): print('Petla for: ', i) for i in range(4, 10): if i in (5, 6): continue if i == 8: break print('Inna petla for: ', i) Petla for: 0 Petla for: 1 Petla for: 2 Petla for: 3 Inna petla for: 4 Inna petla for: 7 pętla while index = 5 while index > 0: print('Petla while:', index) index -= 1 Petla while: 5 Petla while: 4 Petla while: 3 Petla while: 2 Petla while: 1 użycie pętli z listami lista = [1, 24, 4, 12, 52.4] for i in range(len(lista)): print('Element', i, 'na liscie:', lista[i]) for i in lista: print('Element listy:', i) for i, v in enumerate(lista): print('Element', i, 'na liscie:', v) Element 0 na liscie: 1 Element 1 na liscie: 24 Element 2 na liscie: 4 Element 3 na liscie: 12 Element 4 na liscie: 52.4 Element listy: 1 Element listy: 24 Element listy: 4 Element listy: 12 Element listy: 52.4 Element 0 na liscie: 1 Element 1 na liscie: 24 Element 2 na liscie: 4 Element 3 na liscie: 12 Element 4 na liscie: 52.4 Funkcje def oblicz_sume(a, b): return a + b wynik = oblicz_sume(21, 5) print('Suma 21 + 5:', wynik) Suma 21 + 5: 26 def podnies_do_potegi(wartosc, wykladnik=2.0): return pow(wartosc, wykladnik) print('3 do kwadratu:', podnies_do_potegi(3)) print('2 do szescianu:', podnies_do_potegi(2, 3)) 3 do kwadratu: 9.0 2 do szescianu: 8 lista = [] def dodaj_do_listy(lista, imie: str, nazwisko: str): wpis = { "imie": imie, "nazwisko": nazwisko } lista.append(wpis) wizytowka = 'Jestem ' + imie + ' ' + nazwisko return lista, wizytowka print(lista) lista, nowa_osoba = dodaj_do_listy(lista, 'Jan', 'Nowak') print('Lista:', lista) print('Nowa osoba:', nowa_osoba) [] Lista: [{'imie': 'Jan', 'nazwisko': 'Nowak'}] Nowa osoba: Jestem Jan Nowak Obsługa wyjątków try: x = 10 / 0 except ZeroDivisionError: x = 1e9 print(x) 1000000000.0 Użycie domyślnych pakietów obsługa czasu import datetime teraz = datetime.datetime.now() print('Czas:', teraz) Czas: 2024-01-26 16:16:10.579890 wartości losowe import random losowa_wartosc = random.random() print('Losowa wartosc:', losowa_wartosc) Losowa wartosc: 0.7987674033653681 obliczenia matematyczne import math wynik = math.log10(0.4214) print('log10(0.4214):', wynik) log10(0.4214): -0.37530546872791865 Obsługa plików plik = open('testowy.txt', 'w') # utworzenie pliku (otworzenie w trybie zapisu) plik.write('dzien dobry') # dodanie dwóch słów do pliku plik.close() # zamknięcie pliku with open('testowy.txt', 'r') as plik: print(plik.read()) # automatycznie zamyka plik dzien dobry import os os.remove('testowy.txt') # usuwanie pliku Klasy class Student: def __init__(self, imie): self.imie = imie self.wiek = 18 def przedstaw_sie(self): print(f'Jestem {self.imie} mam {self.wiek} lat.') def czy_pelnoletni(self): return self.wiek >= 18 def zmien_wiek(self, wiek): self.wiek = wiek student_a = Student(imie='Jan') student_a.przedstaw_sie() student_a.wiek = 30 student_a.przedstaw_sie() student_b = Student('Kasia') student_b.przedstaw_sie() Jestem Jan mam 18 lat. Jestem Jan mam 30 lat. Jestem Kasia mam 18 lat. Wirtualne środowisko programowania wirtualne środowisko to lokalna "kopia" określonej wersji Python wraz z dodatkowymi zainstalowanymi pakietami tworzymy wirtualne środowisko przez (nazwa wirtualnego środowiska to w tym przypadku "venv") python -m venv venv aktywujemy wirtualne środowisko przez na Linuxie source venv/bin/activate na Windowsie venv\Scripts\activate VS Code (i inne IDE) pozwalają na wybór wirtualnego środowiska przez GUI sprawdzamy zainstlowane pakiety przez pip freeze instalujemy pakiety przez pip install nazwa_pakietu # do uruchmienia tego kodu niezbędna jest instalacja "numpy" import numpy as np x_data = np.ones((9, 1)) y_data = np.linspace(0.0, 14, 9) print('x_data:') print(x_data) print('y_data:') print(y_data) print('x_data * y_data (transponowane):') print(x_data * np.transpose(y_data)) x_data: [[1.] [1.] [1.] [1.] [1.] [1.] [1.] [1.] [1.]] y_data: [ 0. 1.75 3.5 5.25 7. 8.75 10.5 12.25 14. ] x_data * y_data (transponowane): [[ 0. 1.75 3.5 5.25 7. 8.75 10.5 12.25 14. ] [ 0. 1.75 3.5 5.25 7. 8.75 10.5 12.25 14. ] [ 0. 1.75 3.5 5.25 7. 8.75 10.5 12.25 14. ] [ 0. 1.75 3.5 5.25 7. 8.75 10.5 12.25 14. ] [ 0. 1.75 3.5 5.25 7. 8.75 10.5 12.25 14. ] [ 0. 1.75 3.5 5.25 7. 8.75 10.5 12.25 14. ] [ 0. 1.75 3.5 5.25 7. 8.75 10.5 12.25 14. ] [ 0. 1.75 3.5 5.25 7. 8.75 10.5 12.25 14. ] [ 0. 1.75 3.5 5.25 7. 8.75 10.5 12.25 14. ]]

No files