SHOW:
|
|
- or go back to the newest paste.
1 | zero = ["0","zero", "zera", "zerem"] | |
2 | - | jednen = ["1","jeden", "jedynka", "jedynkę"] |
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, jednen,dwa,trzy, cztery, piec, szesc,siedem, osiem, dziewiec, |
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 | dziesiatki=["dzieścia", "dziesiąt", "dzieści"] | |
29 | ||
30 | byla_dziesiatka = -1 | |
31 | ||
32 | ||
33 | def przetlumacz(slowo): | |
34 | global byla_dziesiatka | |
35 | for koncowka in dziesiatki: | |
36 | if slowo.endswith(koncowka): | |
37 | byla_dziesiatka = 1 | |
38 | slowo = slowo.replace(koncowka,'') | |
39 | ||
40 | for baza_symbolu in baza: | |
41 | for slowo_bazy_symbolu in baza_symbolu: | |
42 | if slowo == slowo_bazy_symbolu: | |
43 | if byla_dziesiatka == 0 and not baza_symbolu[0].isdigit(): | |
44 | byla_dziesiatka = -1 | |
45 | return "0" + baza_symbolu[0] | |
46 | else: | |
47 | byla_dziesiatka -= 1 | |
48 | return baza_symbolu[0] | |
49 | return '' #jeśli słowo które próbujemy przetłumaczyć na liczbę lub operator nie występuje w naszych tablicach to je pomijamy | |
50 | ||
51 | def oblicz(liczba1, liczba2, operacja): | |
52 | if operacja == '+': | |
53 | return liczba1 + liczba2 | |
54 | elif operacja == '-': | |
55 | return liczba1 - liczba2 | |
56 | elif operacja == '*': | |
57 | return liczba1 * liczba2 | |
58 | elif operacja == '/': | |
59 | return liczba1 / liczba2 | |
60 | ||
61 | def oblicz_z_tekstu(tekst): | |
62 | wynik = 0 | |
63 | liczba = '' | |
64 | operacja = '' | |
65 | for znak in tekst: | |
66 | if znak.isdigit(): | |
67 | liczba += znak | |
68 | - | else: |
68 | + | elif liczba: |
69 | if operacja == '': | |
70 | wynik = int(liczba) | |
71 | else: | |
72 | wynik = oblicz(wynik, int(liczba), operacja) | |
73 | liczba = '' | |
74 | operacja = znak | |
75 | - | wynik = oblicz(wynik, int(liczba), operacja) |
75 | + | |
76 | if liczba: | |
77 | wynik = oblicz(wynik, int(liczba), operacja) | |
78 | return wynik | |
79 | ||
80 | kontynuowanie = "" | |
81 | while kontynuowanie != "n": | |
82 | dzialanie = "" | |
83 | tekst = input("podaj tekst: ").lower() | |
84 | for slowo in tekst.split(" "): | |
85 | dzialanie += przetlumacz(slowo) | |
86 | if byla_dziesiatka == 0: | |
87 | dzialanie+="0" | |
88 | print(dzialanie) | |
89 | print(oblicz_z_tekstu(dzialanie)) | |
90 | kontynuowanie = input("Czy chcesz kontynuować działanie programu (t/n)").lower() | |
91 | print("Koniec") | |
92 |