mirror of
https://github.com/szymon-jozef/ZUT-notatki.git
synced 2026-09-07 12:10:40 +02:00
xd
This commit is contained in:
105
uczelnia/2_semestr/python/laby/czwarty_lab.py
Normal file
105
uczelnia/2_semestr/python/laby/czwarty_lab.py
Normal file
@@ -0,0 +1,105 @@
|
||||
from math import sqrt
|
||||
from collections import namedtuple
|
||||
import random
|
||||
|
||||
# zadanie 1
|
||||
def getDistance(A: tuple[int, int], B: tuple[int,int]) -> float:
|
||||
return sqrt((A[0] - B[0])**2 + (A[1] - B[1])**2)
|
||||
|
||||
def analizujProstokat(A: tuple[int, int], B: tuple[int, int]) -> tuple[float, float]:
|
||||
a = getDistance((A[0], A[1]), (B[0], A[1]))
|
||||
b = getDistance((B[0], A[1]), (B[0], B[1]))
|
||||
|
||||
circuit = a * 2 + b * 2
|
||||
field = a * b
|
||||
|
||||
return (circuit, field)
|
||||
|
||||
# zadanie 2
|
||||
def analizujProstokat2(prostokat) -> tuple[float, float]:
|
||||
a = getDistance((prostokat.x1, prostokat.y1), (prostokat.x2, prostokat.y1))
|
||||
b = getDistance((prostokat.x2, prostokat.y1), (prostokat.x2, prostokat.y2))
|
||||
|
||||
circuit = a * 2 + b * 2
|
||||
field = a * b
|
||||
|
||||
return (circuit, field)
|
||||
|
||||
def pobieraj_liczby() -> list:
|
||||
liczby: list[int] = []
|
||||
while True:
|
||||
answer = input("Podaj liczbę lub napisz koniec: ")
|
||||
if answer == "koniec":
|
||||
break
|
||||
liczby.append(int(answer))
|
||||
liczby.sort(reverse=True)
|
||||
return liczby
|
||||
|
||||
# zadanie 8
|
||||
def levenshtein(s: str, t: str):
|
||||
d = [[0 for _ in range(len(s))], [0 for _ in range(len(t))]]
|
||||
for i in range(1, len(s) + 1):
|
||||
d[i][0] = i
|
||||
d[0][i] = i
|
||||
for j in range(1, len(t)):
|
||||
for i in range(1, len(s)):
|
||||
if s[i] == t[j]:
|
||||
subsitutionCost = 0
|
||||
else:
|
||||
subsitutionCost = 1
|
||||
d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + subsitutionCost)
|
||||
return d
|
||||
|
||||
if __name__ == "__main__":
|
||||
# zad 1
|
||||
print("=== Zadanie 1 ===")
|
||||
circuit, field = analizujProstokat((1, 2), (3, 4))
|
||||
print(f"Obwód wynosi: {circuit}, a pole: {field}")
|
||||
|
||||
# zad 2
|
||||
print("=== Zadanie 2 ===")
|
||||
prostokat = namedtuple('prostokat', ['x1', 'y1', 'x2', 'y2'])
|
||||
p = prostokat(1, 2, 3, 4)
|
||||
circuit, field = analizujProstokat2(p)
|
||||
print(f"Obwód wynosi: {circuit}, a pole: {field}")
|
||||
|
||||
# zad 3
|
||||
print("=== Zadanie 3 ===")
|
||||
lista: list = [i for i in range(1, 6)]
|
||||
print(f"Lista przed zamianą: {lista}")
|
||||
lista[0], lista[4] = (lista[2], lista[1])
|
||||
print(f"Lista po zamianie: {lista}")
|
||||
|
||||
# zad 4
|
||||
print("=== Zadanie 4 ===")
|
||||
inna_lista: list = [i for i in range(1, 1002, 2)]
|
||||
print(f"Inna lista: {inna_lista}")
|
||||
|
||||
# zad 5
|
||||
print("=== Zadanie 5 ===")
|
||||
print(pobieraj_liczby())
|
||||
|
||||
# zad 6
|
||||
print("=== Zadanie 6 ===")
|
||||
lista1: list[int] = [i for i in range(0, 11)]
|
||||
lista2 = lista1.copy()
|
||||
lista2[3] = 234
|
||||
print(f"Lista 1: {lista1}")
|
||||
print(f"Lista 2: {lista2}")
|
||||
|
||||
# zad 7
|
||||
print("=== Zadanie 7 ===")
|
||||
lista1 = []
|
||||
lista2 = []
|
||||
for i in range(10):
|
||||
lista1.append(random.randint(0, 10))
|
||||
lista2.append(random.random())
|
||||
print(lista1)
|
||||
print(lista2)
|
||||
lista1.extend(lista2)
|
||||
print(f"Lista po dodaniu {lista1}")
|
||||
print("Próbkowanie:")
|
||||
print(random.sample(lista1, 3))
|
||||
|
||||
# zad 8
|
||||
|
||||
141
uczelnia/2_semestr/python/laby/piaty_lab.py
Normal file
141
uczelnia/2_semestr/python/laby/piaty_lab.py
Normal file
@@ -0,0 +1,141 @@
|
||||
from itertools import product
|
||||
from collections import Counter, defaultdict, deque
|
||||
|
||||
# zadanie 1
|
||||
|
||||
def zad1():
|
||||
tekst = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
|
||||
ut labore et dolore magna aliqua. Dolor sed viverra ipsum nunc aliquet bibendum enim. In
|
||||
massa tempor nec feugiat. Nunc aliquet bibendum enim facilisis gravida. Nisl nunc mi ipsum
|
||||
faucibus vitae aliquet nec ullamcorper. Amet luctus venenatis lectus magna fringilla. Volut-
|
||||
pat maecenas volutpat blandit aliquam etiam erat velit scelerisque in. Egestas egestas fringilla
|
||||
phasellus faucibus scelerisque eleifend. Sagittis orci a scelerisque purus semper eget duis. Nulla
|
||||
pharetra diam sit amet nisl suscipit. Sed adipiscing diam donec adipiscing tristique risus nec
|
||||
feugiat in. Fusce ut placerat orci nulla. Pharetra vel turpis nunc eget lorem dolor. Tristique
|
||||
senectus et netus et malesuada.
|
||||
"""
|
||||
wyrazy: set = set()
|
||||
|
||||
for word in tekst.lower().replace(".", "").replace(",", "").strip().split(" "):
|
||||
wyrazy.add(word)
|
||||
print(wyrazy)
|
||||
|
||||
# zadanie 2
|
||||
|
||||
def zad2():
|
||||
A = {1, 2, 3, 4, 5}
|
||||
B = {2, 4, 5}
|
||||
|
||||
if A < B: print("A jest podzbiorem B")
|
||||
if A > B: print("A jest nadzbiorem B")
|
||||
|
||||
print(f"Przecięcie: {A.intersection(B)}")
|
||||
print(f"Suma: {A.union(B)}")
|
||||
print(f"Różnica: {A.difference(B)}")
|
||||
print(f"Różnica symetryczna: {A.symmetric_difference(B)}")
|
||||
|
||||
# zadanie 3
|
||||
def zad3():
|
||||
A = {1, 2, 3, 4, 5}
|
||||
B = {2, 4, 5}
|
||||
print(f"Iloczyn kartezjański: {list(product(A, B))}")
|
||||
|
||||
def zad3_wlasne():
|
||||
A = {1, 2, 3, 4, 5}
|
||||
B = {2, 4, 5}
|
||||
iloczyn: set = set()
|
||||
for x in A:
|
||||
for y in B:
|
||||
iloczyn.add((x,y))
|
||||
print(f"Iloczyn kartezjański: {iloczyn}")
|
||||
|
||||
|
||||
|
||||
# zadanie 4
|
||||
def zad4():
|
||||
urodziny: dict = {}
|
||||
while True:
|
||||
name = input("Podaj nazwisko (lub wpisz koniec by zakończyć): ")
|
||||
if name == "koniec":
|
||||
return
|
||||
|
||||
if name in urodziny:
|
||||
print(f"Urodziny odbędą się: {urodziny[name]}")
|
||||
else:
|
||||
urodziny[name] = input("Taki wpis nie istnieje. Podaj datę urodzin: ")
|
||||
|
||||
# zadanie 5
|
||||
def zad5():
|
||||
slownik: dict = {
|
||||
"1" : "jeden",
|
||||
"2" : "dwa",
|
||||
"3" : "trzy",
|
||||
"4" : "cztery",
|
||||
"5" : "pięć",
|
||||
"6" : "sześć",
|
||||
"7" : "siedem",
|
||||
"8" : "osiem",
|
||||
"9" : "dziewięć",
|
||||
}
|
||||
tekst = input("Podaj liczbę od 1 do 99: ")
|
||||
if tekst == "10":
|
||||
result = "dziesięć"
|
||||
print(result)
|
||||
return
|
||||
|
||||
result = slownik[tekst[0]]
|
||||
if len(tekst) > 1:
|
||||
match tekst[0]:
|
||||
case "1":
|
||||
result = f"{slownik[tekst[1]]}naście"
|
||||
print(result)
|
||||
return
|
||||
case "2":
|
||||
result += "dzieścia"
|
||||
case "3" | "4":
|
||||
result += "dzieści"
|
||||
case "5" | "6" | "7" | "8" | "9":
|
||||
result += "dziesiąt"
|
||||
|
||||
if tekst[1] != "0":
|
||||
result += f" {slownik[tekst[1]]}"
|
||||
print(result)
|
||||
|
||||
# zadanie 6
|
||||
def zad6():
|
||||
tekst = """Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
|
||||
ut labore et dolore magna aliqua. Dolor sed viverra ipsum nunc aliquet bibendum enim. In
|
||||
massa tempor nec feugiat. Nunc aliquet bibendum enim facilisis gravida. Nisl nunc mi ipsum
|
||||
faucibus vitae aliquet nec ullamcorper. Amet luctus venenatis lectus magna fringilla. Volut-
|
||||
pat maecenas volutpat blandit aliquam etiam erat velit scelerisque in. Egestas egestas fringilla
|
||||
phasellus faucibus scelerisque eleifend. Sagittis orci a scelerisque purus semper eget duis. Nulla
|
||||
pharetra diam sit amet nisl suscipit. Sed adipiscing diam donec adipiscing tristique risus nec
|
||||
feugiat in. Fusce ut placerat orci nulla. Pharetra vel turpis nunc eget lorem dolor. Tristique
|
||||
senectus et netus et malesuada.
|
||||
"""
|
||||
wyrazy: Counter = Counter()
|
||||
|
||||
for word in tekst.lower().replace(".", "").replace(",", "").strip().split(" "):
|
||||
wyrazy[word] += 1
|
||||
print(wyrazy)
|
||||
|
||||
# zadanie 7
|
||||
def zad7():
|
||||
slownik: defaultdict = defaultdict(lambda: 5)
|
||||
for _ in range(5):
|
||||
klucz = input("Podaj klucz: ")
|
||||
print(f"Aktualna wartość pod kluczem: {klucz} to: {slownik[klucz]}")
|
||||
slownik[klucz] += 1
|
||||
|
||||
# zadanie 8
|
||||
def zad8():
|
||||
wyrazy: deque = deque(input("Podaj wyraz: "))
|
||||
if wyrazy.popleft() != wyrazy.pop():
|
||||
print("Wyraz nie jest palindromem!")
|
||||
return
|
||||
print("Wyraz jest palindromem")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
zad3()
|
||||
zad3_wlasne()
|
||||
Reference in New Issue
Block a user