111 lines
2.6 KiB
Python
111 lines
2.6 KiB
Python
#!/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)
|
|
|