Commit 58b42eb2 by Patryk Czarnik

palindor

parent 7e15bb7f
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# silnia(1) = 1 # silnia(1) = 1
def silnia(n): def silnia(n):
wynik = 1 wynik = 1
for i in range(1, n+1): for i in range(2, n+1):
wynik = wynik * i wynik = wynik * i
return wynik return wynik
......
...@@ -9,6 +9,7 @@ def aaa(): ...@@ -9,6 +9,7 @@ def aaa():
print('Funkcja aaa została zdefiniowana.', aaa) print('Funkcja aaa została zdefiniowana.', aaa)
print('Teraz wywołam funkcję aaa:') print('Teraz wywołam funkcję aaa:')
aaa() aaa()
# wywołanie funkcji - invoke, call
# teraz wykonała się zawartość tej funkcji # teraz wykonała się zawartość tej funkcji
# Funkcja może mieć zadeklarowane parametry. # Funkcja może mieć zadeklarowane parametry.
......
...@@ -2,13 +2,11 @@ def ile_sekund_do_konca_minuty(): ...@@ -2,13 +2,11 @@ def ile_sekund_do_konca_minuty():
from datetime import datetime from datetime import datetime
return 60 - datetime.now().second return 60 - datetime.now().second
# Przykład typowej funkcji matematycznej: argument i wynik są liczbami # Przykład typowej funkcji matematycznej: argument i wynik są liczbami
# Dla podanej liczby x wynikiem jest x do kwadratu # Dla podanej liczby x wynikiem jest x do kwadratu
def kwadrat(x): def kwadrat(x):
return x*x return x*x
# Wewnątrz funkcji return nie musi być ostatnią instrukcją i może występować w kilku miejscach. # Wewnątrz funkcji return nie musi być ostatnią instrukcją i może występować w kilku miejscach.
# Wtedy, gdy funkcja dojdzie do linii, w której jest return, zwraca podany wynik i natychmiast się kończy. # Wtedy, gdy funkcja dojdzie do linii, w której jest return, zwraca podany wynik i natychmiast się kończy.
def stawka_za_prace(stawka_podstawowa, dzien_tygodnia): def stawka_za_prace(stawka_podstawowa, dzien_tygodnia):
...@@ -19,14 +17,12 @@ def stawka_za_prace(stawka_podstawowa, dzien_tygodnia): ...@@ -19,14 +17,12 @@ def stawka_za_prace(stawka_podstawowa, dzien_tygodnia):
if dzien_tygodnia == 7: if dzien_tygodnia == 7:
return 2 * stawka_podstawowa return 2 * stawka_podstawowa
# W Pythonie bardzo łatwo pisze się funkcje, które 'na intuicję' zwracają kilka wartości na raz # W Pythonie bardzo łatwo pisze się funkcje, które 'na intuicję' zwracają kilka wartości na raz
# Technicznie zwracana jest krotka (tuple) # Technicznie zwracana jest krotka (tuple)
def dzielenie_z_reszta(x, y): def dzielenie_z_reszta(x, y):
return x // y, x % y return x // y, x % y
print('Funkcje zdefiniowane, początek właściwego programu') print('Funkcje zdefiniowane, początek właściwego programu')
print('Uruchomię teraz funkcję ile_sekund_do_konca_minuty po raz pierwszy:') print('Uruchomię teraz funkcję ile_sekund_do_konca_minuty po raz pierwszy:')
# Jeśli tylko wywołamy fukcję, która zwraca wynik, ale niczego z tym wynikiem nie zrobimy, # Jeśli tylko wywołamy fukcję, która zwraca wynik, ale niczego z tym wynikiem nie zrobimy,
......
# Funkcja odpowiada na pytanie, czy podany napis jest palindromem, czyli czy od lewej czyta się tak samo jak od prawej
# np "kajak" jest , a "baba" nie jest
def palindrom(napis):
for i in range(len(napis) // 2):
if napis[i] != napis[-i - 1]:
return False
return True
def palindrom_v2(napis:str) -> bool:
return napis == napis[::-1]
def zdanie_palindrom(napis:str) -> bool:
return palindrom_v2(napis.replace(' ', '').lower())
while True:
napis = input('Podaj napis: ')
if not napis:
break
if zdanie_palindrom(napis):
print(f'Napis "{napis}" jest palindromem')
else:
print(f'Napis "{napis}" nie jest palindromem')
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment