View difference between Paste ID: 3vdAnxhd and 2eiqNmW6
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