Zadania powtórzeniowe
-
Napisz funkcję, która przyjmuje liczbę całkowitą z zakresu 1-3999 i zwraca napis z liczbą zapisaną w rzymskim systemie liczbowym. Jeśli podana zostanie liczba spoza zakładanego zakresu, powinien być zgłoszony wyjątek
ValueError
. -
Napisz funkcję, która przyjmuje liczbę całkowitą z zakresu 0-100 000 000 000 i zwraca napis z jej słownym zapisem. Preferowany jest zapis jak najbardziej zgodny z językiem codziennym: na przykład dla argumentu
1000020
wynikiem powinien być napis'milion dwadzieścia'
zamiast'jeden milion zero tysięcy dwadzieścia'
.Jak zaimplementować tę funkcję, jeśli byłaby dostępna poniższa lista?
nazwy = [ (u'', u'', u''), (u'tysiac', u'tysiące', u'tysięcy'), (u'milion', u'miliony', u'milionów'), (u'miliard', u'miliardy', u'miliardów'), (u'bilion', u'biliony', u'bilionów'), (u'biliard', u'biliardy', u'biliardów'), (u'trylion', u'tryliony', u'tryliardów'), # i tak dalej... ]
-
Napisz funkcję odwrotną do tej z zadania 2.
-
Napisz funkcję, która przyjmuje liczbę całkowitą
n
i zwraca listę krotek[(p1, w1), (p2, w2), ..., (pk, wk)]
reprezentującą rozkład liczbyn
na czynniki pierwsze tak, żen = p1^w1 * p2^w2 * ... * pk^wk
. Rozważ użyciedefaultdict
lubCounter
. -
Napisz funkcję, która otrzymuje zdanie w postaci napisu i zwraca napis, w którym wszystkie słowa występują w odwrotnej kolejności.
-
Napisz funkcję
labels()
, która zwraca generator zwracający nieskończoną sekwencję etykiet kolumn w arkuszu kalkulacyjnym.for i, label in enumerate(labels('ABC')): if i > 15: break print(label) A B C AA AB AC BA BB BC CA CB CC AAA AAB AAC ABA