Kalkulator nie działa.

0

Co byście zmienili i co źle robię. W dwóch pierwszych wpisuje cyfry i potem zapytanie też jest ok i wpisuje sobie w tym input: dodawanie, więc działanie = dodawanie. To czemu jak mam ten warunek if i wywołuje funkcję dodawanie to się nic nie dzieje? Tak jakby nie wywoływało funkcjo dodawanie()

print("Witaj w najprostszym możliwym napisanym przeze mnie kalkulatorze. Możesz dodawać, odejmować mnożyć i dzielić")
def dodawanie(a,b):
    c = a + b
    print(c)

def odejmowanie(a,b):
    c = a - b
    print(c)

def mnożenie(a,b):
    c = a * b
    print(c)
def dzielenie(a,b):
    c = a / b
    print(c)

print("Jakie działanie chcesz wykonać? dodawanie, odejmowanie, mnożenie, dzielenie ")
działanie = input()
print("Wpisz pierwszą cyfrę")
a = input()
print("Wpisz drugą cyfrę")
b = input()


if działanie == dodawanie:
    dodawanie(a,b)
elif działanie == odejmowanie:
    odejmowanie(a,b)
elif działanie == mnożenie:
    mnożenie(a,b)
elif działanie == dzielenie:
    dzielenie(a,b)
```python
1

Bo dzialanie nie równa się dodawanie, Porównujesz stringa(input z konsoli zawsze przychodzi, jako string) i funkcję, Zrób tak:

dzialanie = input("Enter operator: ")
    if dzialanie == "+":
        add(whatever)
0

Wielkie dzięki, to co w funkcjach poszło, ale pojawił się inny problem. Oto mój zmieniony kod:

print("Witaj w najprostszym możliwym napisanym przeze mnie kalkulatorze. Możesz dodawać, odejmować mnożyć i dzielić")
def add(a,b):
    c = a+b
    print(c)

def substract(a,b):
    c = a-b
    print(c)

def multiply(a,b):
    c = a*b
    print(c)
def division(a,b):
    c = a/b
    print(c)


print("Wpisz pierwszą cyfrę")
a = input()
print("Wpisz drugą cyfrę")
b = input()
print("Jakie działanie chcesz wykonać? Wybierz: +, -, *, /")

dzialanie = input("Enter operator: ")
if dzialanie == "+":
    add(a,b)
if dzialanie == "-":
    substract(a,b)
if dzialanie == "*":
    multiply(a,b)
if dzialanie == "/":
    division(a,b)
```py

I znowu mam problem, bo jak wpisuje kolejno, np. 2 potem 4 i potem + to mi wychodzi 24, zamiast 6. A w reszcie wyskakuje błąd, czyli jak np wpisze 7 potem 5 potem -. To mi wyskakuje "Type Error: unsupported operand type(s) for -:'str' and 'str' Tak jakby brał to a i b jako stringi, a ja przecież tam wpisywałem np. 2. Przy dzieleniu i mnożeniu wyskakuje ten sam błąd.
1

Sorki, nie patrzyłem na cały kod tylko na wprowadzanie działań, to samo, input przychodzi jako string, więc w funkcji add "+", jako przeładowany operator, "dodaje" czyli konkatenuje stringi, i to jest OK. Trzeba input zrzutować do wartości liczbowej:

a = int(input())
0

Teraz działa perfekcyjnie, wszystkie działania sprawdziłem. Dobra zabieram się za kolejne programy, bo przerobiłem teorię i jakieś tam typowe programy napisane w książce, ale jak przychodzi co do czego i muszę sam coś napisać zupełnie nowego to już nie ma tak lekko.

1 użytkowników online, w tym zalogowanych: 0, gości: 1