Zadania do lekcji 3¶
Na początek kilka bardzo typowych funkcji. Jest to standard programowania - znajdziecie je na każdym kursie...
- Zadanie 301
- Napisz funkcję
suma(L)sumującą wszystkie elementy listyL. Przetestuj ją porównując, czy dostaniesz taki sam wynik jak dla wbudowanej funkcjisum(L). - Zadanie 302
- Średnia arytmetyczna zdefiniowana jest jako suma elementów zbioru podzielona przez ilość tych
elementów. Napisz funkcję
srednia(L)obliczającą wartość średnią liczb w liścieL. Uważaj na pułapkę dzielenia w obrębie typuint. Posłuż się też funkcją z zadania 301. - Zadanie 303
Napisz funkcję
silnia(n)obliczającą silnię z liczby n\[n! = 1 \cdot 2 \cdot 3 \cdot \dots \cdot n-1 \cdot n\]- Zadanie 304
- Napisz funkcje
f2corazc2f. Pierwsza powinna przeliczać stopnie fahrenheita na celsiusa, a druga odwrotnie. - Zadanie 305
Proszę napisać funkcję która dla konkretnej trzycyfrowej
ABC(np: 543) liczby oblicza po kolei- odwraca cyfry liczby oryginalnej
CBA(345) - odejmuje liczbę odwróconą od oryginalnej
XYZ = ABC - CBA(543 - 345 = 198) - odwracamy cyfry obliczonej różnicy
ZYX(891) - dodajemy do siebie różnicę
XYZoraz jej odwrócenieZYX, obliczamy i zwracamywynik = XYZ + ZYX(198 + 891 = 1089)
Proszę sprawdzić taki algorytm dla kilku liczb. Jeżeli cyfry w oryginalnej liczbie
ABCbędą ułożone malejąco (jak w powyższym przykładzie), to wynik obliczeń będzie wynosił zawsze 1089.- odwraca cyfry liczby oryginalnej
- Zadanie 306
- Używając informacji o wycinaniu sekwencji napisz funkcję sprawdzającą, czy dana sekwencja (lista,
krotka czy łańcuch) jest palindromem. Funkcja powinna zwracać literał
bool. - Zadanie 307
Napisz program, który będzie sprawdzał, które z podanych kandydatów na hasła spełniają kryteria
- przynajmniej jeden znak jest małą literą
- przynajmniej jeden znak jest dużą literą
- przynajmniej jeden znak jest cyfrą
[0-9] - przynajmniej jeden znak jest z grupy znaków
!, @, #, $
Z podanej jako argument listy możliwych haseł funkcja ma zwracać tylko te, które spełniają powyższe kryteria, np z grupy
Bd1234@1,a,F1#,2w3E*,2We3345powinien wybrać tylkoABd1234@1.- Zadanie 308
Zbuduj funkcję, która sprawdza, czy podana jako parametr sekwencja
seqskłada się z samych liczb. Jeżeli tak, to powinna zwracaćTrue, jeżeli nie toFalse:def jest_sek_liczbowa(seq): ... >>> jest_sek_liczbowa([1, 2, 3]) True >>> jest_sek_liczbowa((3, 'a', None)) False >>> jest_sek_liczbowa("1234") True
- Zadanie 309
Ciąg rosnący to taki, którego kolejne elementy są większe od poprzednich. Zaprogramuj funkcję sprawdzającą, czy podana lista zawiera liczbowe elementy będące ciągiem rosnącym
>>> jest_rosnacy([20, 30, 31]) True >>> jest_rosnacy([100, 10, 1]) False >>> jest_rosnacy([20, 20, 30]) False
Uwaga: wykorzystaj funkcję z zadania 308 aby sprawdzić, czy elementy listy są liczbami.
- Zadanie 310
Jeżeli poradziłeś sobie z zadaniem 309, to napisz podobne funkcje, sprawdzajace, czy podane sekwencje stanowią
- ciąg malejący
- ciąg niemalejący
- ciąg nierosnący
- ciąg stały