giganciprogramowania

l17 Kalkulator_podstawowy

May 19th, 2023 (edited)
1,064
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. zero = ["0","zero", "zera", "zerem"]
  2. jeden = ["1","jeden", "jedynka", "jedynkę"]
  3. dwa = ["2", "dwa", "dwójkę", "dwójka"]
  4. trzy = ["3", "trzy", "trójkę", "trójka"]
  5. cztery = ["4", "cztery", "czwórkę", "czwórka"]
  6. piec = ["5", "pięć", "piątkę", "piątka"]
  7. szesc = ["6", "sześć", "szóstkę", "szóstka"]
  8. siedem = ["7", "siedem", "siódemkę", "siódemka"]
  9. osiem = ["8", "osiem", "ósemkę", "ósemka"]
  10. dziewiec = ["9", "dziewięć", "dziewiątkę", "dziewiątka"]
  11. dziesiec = ["10", "dziesięć", "dziesiątka", "dziesiątkę", "dychę"]
  12. jedenascie = ["11","jedenaście", "jedenastkę", "jedenastu"]
  13. dwanascie = ["12", "dwanaście", "dwunastu", "dwunastkę"]
  14. trzynascie = ["13", "trzynaście","trzynastu","trzynastkę"]
  15. czternascie = ["14", "czternaście", "czternastu", "czternastkę"]
  16. pietnascie = ["15", "piętnaście","piętnastu", "piętnastkę"]
  17. szesnascie = ["16", "szesnaście","szesnastu","szesnastkę"]
  18. siedemnascie = ["17","siedemnaście", "siedemnastu", "siedemnastkę"]
  19. osiemnasice = ["18", "osiemnaście","osiemnastu","osiemnastkę"]
  20. dziewietnascie = ["19","dziewiętnaście", "dziewiętnastu","dziewiętnastkę"]
  21. plus = ["+", "dodaj", "plus", "dodać"]
  22. minus = ["-", "odejmij", "minus", "odjąć"]
  23. gwiazdka = ["*", "x", "razy", "mnożone", "pomnożone", "pomnożyć"]
  24. ukosnik = ["/", ":", "dzielone", "podziel"]
  25. baza = [zero, jeden,dwa,trzy, cztery, piec, szesc,siedem, osiem, dziewiec,
  26.         dziesiec,jedenascie,dwanascie,trzynascie,czternascie,pietnascie,szesnascie,siedemnascie,osiemnasice,dziewietnascie,
  27.         plus, minus, gwiazdka, ukosnik]
  28.  
  29.  
  30. def przetlumacz(slowo):
  31.     for baza_symbolu in baza:
  32.         for slowo_bazy_symbolu in baza_symbolu:
  33.             if slowo == slowo_bazy_symbolu:
  34.                 return baza_symbolu[0] #zwracamy pierwszy element listy w której znaleźliśmy pasujące słowo
  35.     return '' #jeśli słowo które próbujemy przetłumaczyć na liczbę lub operator nie występuje w naszych tablicach to je pomijamy
  36.  
  37. def oblicz(liczba1, liczba2, operacja):
  38.     if operacja == '+':
  39.         return liczba1 + liczba2
  40.     elif operacja == '-':
  41.         return liczba1 - liczba2
  42.     elif operacja == '*':
  43.         return liczba1 * liczba2
  44.     elif operacja == '/':
  45.         return liczba1 / liczba2
  46.  
  47. def oblicz_z_tekstu(tekst):
  48.     wynik = 0
  49.     liczba = ''
  50.     operacja = ''
  51.     for znak in tekst:
  52.         if znak.isdigit():
  53.             liczba += znak
  54.         elif liczba:
  55.             if operacja == '':
  56.                 wynik = int(liczba)
  57.             else:
  58.                 wynik = oblicz(wynik, int(liczba), operacja)
  59.             liczba = ''
  60.             operacja = znak
  61.     if liczba:
  62.         wynik = oblicz(wynik, int(liczba), operacja)
  63.     return wynik
  64.  
  65.  
  66.  
  67. dzialanie = ""
  68. tekst = input("podaj tekst: ")
  69. for slowo in tekst.split(" "):
  70.     dzialanie += przetlumacz(slowo)
  71. print(dzialanie)
  72. print(oblicz_z_tekstu(dzialanie))
  73.  
  74.  
  75.  
Add Comment
Please, Sign In to add comment