forked from tdwojak/Python2019
Add solutions
This commit is contained in:
parent
451572cac4
commit
c8a65f2b90
190
labs02/zadania_3_solved.py
Executable file
190
labs02/zadania_3_solved.py
Executable file
@ -0,0 +1,190 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
Zadania na rozgrzewkę.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 1
|
||||||
|
* Stwórz listę składającą się z dowolnych 100 elementów, np. może być
|
||||||
|
to listę kwadratów liczb.
|
||||||
|
* Sprawdź za pomocą funkcji len liczbę elementów tej listy.
|
||||||
|
* Usuń trzeci, element.
|
||||||
|
* Usuń przedostatni element.
|
||||||
|
* Wyświetl pierwsze 10 elementów.
|
||||||
|
"""
|
||||||
|
|
||||||
|
print("zad. 1")
|
||||||
|
kw = []
|
||||||
|
for i in range(100):
|
||||||
|
kw.append(i ** 2)
|
||||||
|
|
||||||
|
kw.pop(2)
|
||||||
|
kw.pop(-2)
|
||||||
|
print(kw[:10])
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 2
|
||||||
|
Znajdz najmniejsz element w poniższej liście.
|
||||||
|
"""
|
||||||
|
print("zad. 2")
|
||||||
|
l = [0, 6, 9, -10, -5, 9, 8, -6]
|
||||||
|
|
||||||
|
print(min(l))
|
||||||
|
|
||||||
|
m = l[0]
|
||||||
|
for i in l:
|
||||||
|
if i < m:
|
||||||
|
m = i
|
||||||
|
print(m)
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 3
|
||||||
|
Wyświetl poniższy słownik, tak, aby każda para klucz: wartość
|
||||||
|
była w osobnej linii.
|
||||||
|
"""
|
||||||
|
print("zad. 3")
|
||||||
|
s = {'Tomasz': [3, 4, 5, 4], 'Agata': [5, 5, 5, 4]}
|
||||||
|
|
||||||
|
for k, v in s.items():
|
||||||
|
print(k, ':', v)
|
||||||
|
|
||||||
|
for k in s:
|
||||||
|
print(k, ':', s[k])
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 4
|
||||||
|
Poniżej jest podana lista liczby. Stwórz słownik <counter>, którego kluczami
|
||||||
|
będą wartości występujące w liście <liczby>, a wartościami ile dany element
|
||||||
|
wystąpił w liście <liczby>.
|
||||||
|
"""
|
||||||
|
print("zad. 4")
|
||||||
|
liczby = [3, 4, 3, 3, 4, 7, 9]
|
||||||
|
counter = {}
|
||||||
|
for i in liczby:
|
||||||
|
counter[i] = liczby.count(i)
|
||||||
|
|
||||||
|
print(counter)
|
||||||
|
|
||||||
|
counter = {}
|
||||||
|
for i in liczby:
|
||||||
|
if i not in counter:
|
||||||
|
counter[i] = 1
|
||||||
|
else:
|
||||||
|
counter[i] += 1
|
||||||
|
print(counter)
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 5
|
||||||
|
Poniższy słownik oceny dwóch osób. Stwórz nowy słownik z takimi samymi kluczami,
|
||||||
|
ale wartościami tego słownika będą średnie oceń.
|
||||||
|
"""
|
||||||
|
print("zad. 5")
|
||||||
|
s = {'Tomasz': [3, 4, 5, 4], 'Agata': [5, 5, 5, 4]}
|
||||||
|
|
||||||
|
srednie = {}
|
||||||
|
|
||||||
|
for k, v in s.items():
|
||||||
|
srednie[k] = sum(v) / len(v)
|
||||||
|
print(srednie)
|
||||||
|
|
||||||
|
for k, v in s.items():
|
||||||
|
suma = 0
|
||||||
|
for i in v:
|
||||||
|
suma += i
|
||||||
|
srednie[k] = suma / len(v)
|
||||||
|
|
||||||
|
print(srednie)
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 6
|
||||||
|
Dla podanego poniże słownika S, stwórz nowy słownik, którego kluczami będą
|
||||||
|
wartości słownika S, a wartościami: odpowiadające im klucze z S.
|
||||||
|
"""
|
||||||
|
S = {'Klucz1': "Wartosc1", 'Klucz2': "Wartosc2", 'Klucz3': "Wartosc3"}
|
||||||
|
|
||||||
|
print("zad. 6")
|
||||||
|
odw = {}
|
||||||
|
|
||||||
|
for k, v in S.items():
|
||||||
|
odw[v] = k
|
||||||
|
print(odw)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 7
|
||||||
|
Napisz kod, który wypisze na ekran elementy, które występnują w obu poniżej
|
||||||
|
podanych listach.
|
||||||
|
"""
|
||||||
|
l1 = [99, 8, 7, 55]
|
||||||
|
l2 = [55, 111, 11, 99, 8]
|
||||||
|
|
||||||
|
print("zad. 7")
|
||||||
|
common = []
|
||||||
|
for i in l1:
|
||||||
|
if i in l2:
|
||||||
|
common.append(i)
|
||||||
|
print(common)
|
||||||
|
|
||||||
|
print([i for i in l1 if i in l2])
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 8
|
||||||
|
Napisz kod, który znajdzie najdroższy produkt w poniższym słowniku.
|
||||||
|
"""
|
||||||
|
print("zad. 8")
|
||||||
|
|
||||||
|
zakupy = {'telefon': 1000, 'ładowarka': 35, 'chleb': 4.30, 'kawa': 55, 'gramofon': 240}
|
||||||
|
maxi = list(zakupy.keys())[0]
|
||||||
|
for k, v in zakupy.items():
|
||||||
|
if zakupy[maxi] < v:
|
||||||
|
maxi = k
|
||||||
|
print(maxi)
|
||||||
|
|
||||||
|
print(max(zakupy.items(), key=lambda x: x[1])[0])
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 9
|
||||||
|
Stwórz listę składającą się z wartości słownika zakupy.
|
||||||
|
"""
|
||||||
|
print("zad. 9")
|
||||||
|
zakupy = {'telefon': 1000, 'ładowarka': 35, 'chleb': 4.30, 'kawa': 55, 'gramofon': 240}
|
||||||
|
|
||||||
|
values = []
|
||||||
|
for k, v in zakupy.items():
|
||||||
|
values.append(v)
|
||||||
|
print(values)
|
||||||
|
|
||||||
|
print(list(zakupy.values()))
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 10
|
||||||
|
Wyświetl na ekranie poniższy wzór:
|
||||||
|
*
|
||||||
|
* *
|
||||||
|
* * *
|
||||||
|
* * * *
|
||||||
|
* * * * *
|
||||||
|
* * * *
|
||||||
|
* * *
|
||||||
|
* *
|
||||||
|
*
|
||||||
|
"""
|
||||||
|
print("zad. 10")
|
||||||
|
for i in range(9):
|
||||||
|
stars = []
|
||||||
|
if i <= 4:
|
||||||
|
for k in range(i + 1):
|
||||||
|
stars.append('*')
|
||||||
|
print(' '.join(stars))
|
||||||
|
else:
|
||||||
|
for k in range(9 - i):
|
||||||
|
stars.append('*')
|
||||||
|
print(' '.join(stars))
|
||||||
|
|
110
labs02/zadania_4_solved.py
Normal file
110
labs02/zadania_4_solved.py
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 1
|
||||||
|
Napisz funkcję, która zwróci sumę elementów w liście.
|
||||||
|
"""
|
||||||
|
def suma(lista):
|
||||||
|
s = 0
|
||||||
|
for item in lista:
|
||||||
|
s += item
|
||||||
|
return s
|
||||||
|
print(suma([1, 2, 3]))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 2
|
||||||
|
Napisz funkcje, która dla przekazanej listy, zwróci listę z niepowtarzającymi
|
||||||
|
się wartościami.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def unique(lista):
|
||||||
|
pojedyncze = []
|
||||||
|
for item in lista:
|
||||||
|
if item not in pojedyncze:
|
||||||
|
pojedyncze.append(item)
|
||||||
|
return pojedyncze
|
||||||
|
print(unique([1, 1, 2, 1, 2, 3]))
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 3
|
||||||
|
Napisz funkcję, która dla przekazanej listy zwróci listę skłdajacą się
|
||||||
|
z elementów na parzystych indeksach.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def parzyste(lista):
|
||||||
|
return lista[::2]
|
||||||
|
print(parzyste([0, 1, 2, 3, 4, 5]))
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 4
|
||||||
|
Napisz funkcję, która sprawdzi, czy podany napis (String) jest palindromem,
|
||||||
|
czyli wyrazem, który czytany od końca jest tym samym słowem, np. kajak.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def is_palindrom(text):
|
||||||
|
for i in range(len(text)):
|
||||||
|
if text[i] != text[-1 - i]:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
print(is_palindrom("kajak"))
|
||||||
|
print(is_palindrom("antykajak"))
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 5
|
||||||
|
Napisz generator, który będzie zwracał n kolejnych liczb ciągu fibonacciego,
|
||||||
|
gdzie n to argument funkcji.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def fib(n):
|
||||||
|
last = None
|
||||||
|
last_last = None
|
||||||
|
for i in range(n):
|
||||||
|
if i <= 1:
|
||||||
|
last_last = last
|
||||||
|
last = 1
|
||||||
|
yield 1
|
||||||
|
else:
|
||||||
|
curr = last_last + last
|
||||||
|
last_last = last
|
||||||
|
last = curr
|
||||||
|
yield curr
|
||||||
|
|
||||||
|
for i in fib(10):
|
||||||
|
print(i)
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 6
|
||||||
|
Zainstaluj bibliotekę ``weather-api`` (https://pypi.python.org/pypi/weather-api). Korzystając z niej:
|
||||||
|
* Wypisz informacje o aktualnej pogodzie.
|
||||||
|
* Napisz funkcję, która zamieni stopnie ``F`` na ``C``.
|
||||||
|
* Korzystając z prognozy, znajdź dzień, w którym będzie najzimniej. Wypisz nazwę tygodnia (w języku polskim) i temperaturę w C.
|
||||||
|
"""
|
||||||
|
|
||||||
|
"""
|
||||||
|
zad. 7
|
||||||
|
Katalog scores zawiera 64 pliki tekstowe, które posiadają informacje o wysokości miary ``BLEU`` na różnych etapach trenowania modelu. Nazwa każdego pliku na postać ``model.iterXXXXXXX.npz.bleu``, gdzie ``XXXXXXX``, to liczba iteracji.Zaw>
|
||||||
|
* Wykorzystaj bibliotekę ``glob`` (https://docs.python.org/2/library/glob.html)
|
||||||
|
* Wyświetl tylko pełną nazwe pliku (wraz z ścieżką).
|
||||||
|
"""
|
||||||
|
import glob
|
||||||
|
|
||||||
|
values = {}
|
||||||
|
for path in glob.glob("./scores/*"):
|
||||||
|
with open(path) as ff:
|
||||||
|
value = float(ff.read().strip().split(' ')[2][:-1])
|
||||||
|
values[path] = value
|
||||||
|
|
||||||
|
print(values)
|
||||||
|
max_key = None
|
||||||
|
for k, v in values.items():
|
||||||
|
if max_key is None:
|
||||||
|
max_key = k
|
||||||
|
else:
|
||||||
|
if values[max_key] < v:
|
||||||
|
max_key = k
|
||||||
|
print(max_key)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user