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
f2c
orazc2f
. 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ę
XYZ
oraz jej odwrócenieZYX
, obliczamy i zwracamywynik = XYZ + ZYX
(198 + 891 = 1089)
Proszę sprawdzić taki algorytm dla kilku liczb. Jeżeli cyfry w oryginalnej liczbie
ABC
bę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*
,2We3345
powinien wybrać tylkoABd1234@1
.- Zadanie 308
Zbuduj funkcję, która sprawdza, czy podana jako parametr sekwencja
seq
skł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