Skip to content

Instantly share code, notes, and snippets.

@MajliTech
Last active June 9, 2025 06:56
Show Gist options
  • Save MajliTech/7b18e38ab084f87ac7a0c5bad7609b1e to your computer and use it in GitHub Desktop.
Save MajliTech/7b18e38ab084f87ac7a0c5bad7609b1e to your computer and use it in GitHub Desktop.
Kartkówka z szalonym Zbysiem
from decimal import Decimal # Opcjonalnie, usuwa błędy niedokładności komputerowej jezeli uzyte
from math import sqrt # Importujemy funkcje na pierwiastek (kwadratowy!)
print("Program oblicza obwód, pole i przekątną kwadratu")
a = input("Wpisz bok: ") # Na koniec spacja aby było ładniej
# Sprawdzqmy poprawność wprowadzonych danych:
try:
# 1. Czy to jest liczba:
a = Decimal(a) # Opcjonanie, prościej (z błędem .004): a = float(a); bez przecinka (liczby całkowite): a = int(a)
# UWAGA!!! W przypadku, gdy korzystamy z metody Decimal(), należy jescze dopisać następujący kod:
if a.is_nan():
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# W przypadku korzystania z float lub int nie musimy (a wręcz nie możemy, skutkuje to błędem) dodawać wyżej wymienionego if'a.
# 2. Sprawdzić, czy podano liczbę rzeczywistą (większą od zera)
if not a>0: # Jeżeli a lub b nie jest większe od zer
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# Liczby całkowite: jeżeli program ma pracować tylko na liczbach całkowitych, korzystamy z int() zamiast Decimal lub float.
except:
# Co tutaj możemy zrobić?
# 1. Zamknąć program:
"""
print("Nie jestem w stanie pracować na podanych danych!")
raise SystemExit
"""
# 2. Kazać użytkownikowi pisać liczby do skutku:
while True:
print("Nie jestem w stanie pracować na podanych danych! Prosze je podać ponownie.")
a = input("Wpisz bok: ") # Na koniec spacja aby było ładniej
# Sprawdzamy poprawność wprowadzonych danych:
try:
# Sprawdzqmy poprawność wprowadzonych danych:
# 1. Czy to jest liczba:
a = Decimal(a) # Opcjonanie, prościej (z błędem .004): a = float(a); bez przecinka (liczby całkowite): a = int(a)
# UWAGA!!! W przypadku, gdy korzystamy z metody Decimal(), należy jescze dopisać następujący kod:
if a.is_nan():
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# W przypadku korzystania z float lub int nie musimy (a wręcz nie możemy, skutkuje to błędem) dodawać wyżej wymienionego if'a.
# 2. Sprawdzić, czy podano liczbę rzeczywistą (większą od zera)
if not a>0: # Jeżeli a lub b nie jest większe od zer
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# Liczby całkowite: jeżeli program ma pracować tylko na liczbach całkowitych, korzystamy z int() zamiast Decimal lub float.
break # Musimy w jakiś sposób przerwać pętle, robimy to tutaj gdyż wszystkie dane udało nam się zweryfikować.
except:
continue
# Spokojnie, wdech/wydech, obliczanie będzie prostsze:
# Obwód
obw = a*4 # Dwa boki a + dwa boki b, mamy obwód
# Pole (wzór a²)
pole = a**2
# Przekątna (bok*√2):
przekątna = a*Decimal(sqrt(2)) # Jeżeli koryzstamy z decimal, to również musimy wstawić pierwiastek w to Decimal();
# sqrt z wcześniej zaimportowanej biblioteki (linijka: from math import sqrt, dlatego możemy tego używać)
# Powiedzmy użytkownikowi, co nam wyszło po obliczeniach:
###
### BARDZIEJ ZAAWANSOWANY TEKST
###
# Bardziej zaawansowany tekst pozwala nam dokładnie umieszczać zmienne programu w tekście.
# Robimy go, stawiając przed cudzysłowem `f` a zmienne wpisujemty w tekst w {nazwa_zmienne} np.:
print(f"Na podstawie danych można wyliczyć: Obwód: {obw}; Pole: {pole}; Przekątna: {przekątna}")
# Oczywiście NIC nie stoi na przeszkodzie używać print z przecinkami:
# print("Na podstawie danych można wyliczyć: Obwód:", obw, "; Pole:", pole, "; Przekątna:",przekątna)
from decimal import Decimal # Opcjonalnie, usuwa błędy niedokładności komputerowej jezeli uzyte
from math import sqrt # Importujemy funkcje na pierwiastek (kwadratowy!)
print("Program oblicza obwód, pole i przekątną prostokąta")
a = input("Wpisz bok A: ") # Na koniec spacja aby było ładniej
b = input("Wpisz bok B: ") # Na koniec spacja aby było ładniej
# Sprawdzqmy poprawność wprowadzonych danych:
try:
# 1. Czy to są liczby:
a = Decimal(a) # Opcjonanie, prościej (z błędem .004): a = float(a); bez przecinka (liczby całkowite): a = int(a)
b = Decimal(b) # Opcjonanie, prościej (z błędem .004): b = float(b); bez przecinka (liczby całkowite): b = int(b)
# UWAGA!!! W przypadku, gdy korzystamy z metody Decimal(), należy jescze dopisać następujący kod:
if a.is_nan() or b.is_nan():
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# W przypadku korzystania z float lub int nie musimy (a wręcz nie możemy, skutkuje to błędem) dodawać wyżej wymienionego if'a.
# 2. Sprawdzić, czy podano liczby rzeczywiste (większą od zera)
if not a>0 or not b>0: # Jeżeli a lub b nie jest większe od zer
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# Liczby całkowite: jeżeli program ma pracować tylko na liczbach całkowitych, korzystamy z int() zamiast Decimal lub float.
except:
# Co tutaj możemy zrobić?
# 1. Zamknąć program:
"""
print("Nie jestem w stanie pracować na podanych danych!")
raise SystemExit
"""
# 2. Kazać użytkownikowi pisać liczby do skutku:
while True:
print("Nie jestem w stanie pracować na podanych danych! Prosze je podać ponownie.")
a = input("Wpisz bok A: ") # Na koniec spacja aby było ładniej
b = input("Wpisz bok B: ") # Na koniec spacja aby było ładniej
# Sprawdzamy poprawność wprowadzonych danych:
try:
# 1. Czy to są liczby:
a = Decimal(a) # Każemy programowi rozumieć wpis użytkownika jako liczbę/Opcjonanie, prościej (z błędem .004): a = float(a); bez przecinka (liczby całkowite): a = int(a)
b = Decimal(b) # Każemy programowi rozumieć wpis użytkownika jako liczbę/Opcjonanie, prościej (z błędem .004): b = float(b); bez przecinka (liczby całkowite): b = int(b)
# UWAGA!!! W przypadku, gdy korzystamy z metody Decimal(), należy jescze dopisać następujący kod:
if a.is_nan() or b.is_nan():
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# W przypadku korzystania z float lub int nie musimy (a wręcz nie możemy, skutkuje to błędem) dodawać wyżej wymienionego if'a.
# 2. Sprawdzić, czy podano liczby rzeczywiste (większą od zera)
if not a>0 or not b>0: # Jeżeli a lub b nie jest większe od zer
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# Liczby całkowite: jeżeli program ma pracować tylko na liczbach całkowitych, korzystamy z int() zamiast Decimal lub float.
break # Musimy w jakiś sposób przerwać pętle, robimy to tutaj gdyż wszystkie dane udało nam się zweryfikować.
except:
continue
# Spokojnie, wdech/wydech, obliczanie będzie prostsze:
# Obwód
obw = a*2+b*2 # Dwa boki a + dwa boki b, mamy obwód
# Pole (wzór a*b)
pole = a*b
# Przekątna (pitagoras, ale √(a²+b²) jest naszym wzorem):
przekątna = sqrt(a**2+b**2) # sqrt z wcześniej zaimportowanej biblioteki (linijka: from math import sqrt, dlatego możemy tego używać)
# Powiedzmy użytkownikowi, co nam wyszło po obliczeniach:
###
### BARDZIEJ ZAAWANSOWANY TEKST
###
# Bardziej zaawansowany tekst pozwala nam dokładnie umieszczać zmienne programu w tekście.
# Robimy go, stawiając przed cudzysłowem `f` a zmienne wpisujemty w tekst w {nazwa_zmienne} np.:
print(f"Na podstawie danych można wyliczyć: Obwód: {obw}; Pole: {pole}; Przekątna: {przekątna}")
# Oczywiście NIC nie stoi na przeszkodzie używać print z przecinkami:
# print("Na podstawie danych można wyliczyć: Obwód:", obw, "; Pole:", pole, "; Przekątna:",przekątna)
from decimal import Decimal # Opcjonalnie, usuwa błędy niedokładności komputerowej jezeli uzyte
from math import sqrt # Importujemy funkcje na pierwiastek (kwadratowy!)
print("Program oblicza obwód i pole trójkąta")
a = input("Wpisz bok A: ") # Na koniec spacja aby było ładniej
b = input("Wpisz bok B: ") # Na koniec spacja aby było ładniej
c = input("Wpisz bok C: ") # Na koniec spacja aby było ładniej\
h = input("Wpisz wysokośc opuszczoną na bok A: ") # Na koniec spacja aby było ładniej
# Sprawdzqmy poprawność wprowadzonych danych:
try:
# 1. Czy to są liczby:
a = Decimal(a) # Opcjonanie, prościej (z błędem .004): a = float(a); bez przecinka (liczby całkowite): a = int(a)
b = Decimal(b) # Opcjonanie, prościej (z błędem .004): b = float(b); bez przecinka (liczby całkowite): b = int(b)
c = Decimal(c) # Opcjonanie, prościej (z błędem .004): a = float(a); bez przecinka (liczby całkowite): c = int(c)
h = Decimal(h) # Opcjonanie, prościej (z błędem .004): b = float(b); bez przecinka (liczby całkowite): h = int(h)
# UWAGA!!! W przypadku, gdy korzystamy z metody Decimal(), należy jescze dopisać następujący kod:
if a.is_nan() or b.is_nan() or c.is_nan() or h.is_nan():
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# W przypadku korzystania z float lub int nie musimy (a wręcz nie możemy, skutkuje to błędem) dodawać wyżej wymienionego if'a.
# 2. Sprawdzić, czy podano liczby rzeczywiste (większą od zera)
if not a>0 or not b>0 or not c>0 or not h>0: # Jeżeli a lub b nie jest większe od zer
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# Liczby całkowite: jeżeli program ma pracować tylko na liczbach całkowitych, korzystamy z int() zamiast Decimal lub float.
except:
# Co tutaj możemy zrobić?
# 1. Zamknąć program:
"""
print("Nie jestem w stanie pracować na podanych danych!")
raise SystemExit
"""
# 2. Kazać użytkownikowi pisać liczby do skutku:
while True:
print("Nie jestem w stanie pracować na podanych danych! Prosze je podać ponownie.")
a = input("Wpisz bok A: ") # Na koniec spacja aby było ładniej
b = input("Wpisz bok B: ") # Na koniec spacja aby było ładniej
c = input("Wpisz bok C: ") # Na koniec spacja aby było ładniej\
h = input("Wpisz wysokośc opuszczoną na bok A: ") # Na koniec spacja aby było ładniej
# Sprawdzqmy poprawność wprowadzonych danych:
try:
# 1. Czy to są liczby:
a = Decimal(a) # Opcjonanie, prościej (z błędem .004): a = float(a); bez przecinka (liczby całkowite): a = int(a)
b = Decimal(b) # Opcjonanie, prościej (z błędem .004): b = float(b); bez przecinka (liczby całkowite): b = int(b)
c = Decimal(c) # Opcjonanie, prościej (z błędem .004): a = float(a); bez przecinka (liczby całkowite): c = int(c)
h = Decimal(h) # Opcjonanie, prościej (z błędem .004): b = float(b); bez przecinka (liczby całkowite): h = int(h)
# UWAGA!!! W przypadku, gdy korzystamy z metody Decimal(), należy jescze dopisać następujący kod:
if a.is_nan() or b.is_nan() or c.is_nan() or d.is_nan():
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# W przypadku korzystania z float lub int nie musimy (a wręcz nie możemy, skutkuje to błędem) dodawać wyżej wymienionego if'a.
# 2. Sprawdzić, czy podano liczby rzeczywiste (większą od zera)
if not a>0 or not b>0 or not c>0 or not h>0: # Jeżeli a lub b nie jest większe od zer
raise Exception # To nas wyrzuci do bloku except, zdefiniowanego niżej
# Liczby całkowite: jeżeli program ma pracować tylko na liczbach całkowitych, korzystamy z int() zamiast Decimal lub float.
break # Musimy w jakiś sposób przerwać pętle, robimy to tutaj gdyż wszystkie dane udało nam się zweryfikować.
except:
continue
# Spokojnie, wdech/wydech, obliczanie będzie prostsze:
# Obwód
obw = a+b+c # Trzy boki do siebie
# Pole (wzór (a*h)/2)
pole = (a*h)/2
# Powiedzmy użytkownikowi, co nam wyszło po obliczeniach:
###
### BARDZIEJ ZAAWANSOWANY TEKST
###
# Bardziej zaawansowany tekst pozwala nam dokładnie umieszczać zmienne programu w tekście.
# Robimy go, stawiając przed cudzysłowem `f` a zmienne wpisujemty w tekst w {nazwa_zmienne} np.:
print(f"Na podstawie danych można wyliczyć: Obwód: {obw}; Pole: {pole}")
# Oczywiście NIC nie stoi na przeszkodzie używać print z przecinkami:
# print("Na podstawie danych można wyliczyć: Obwód:", obw, "; Pole:", pole)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment