Çözüldü Python 3 hesap makinemde sıkıntı var

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

imoutofmaterial

Decapat
Katılım
7 Ekim 2020
Mesajlar
27
Öncelikle merhaba, bundan 1 ay önce Python programlama dili öğrenmeye başladım. Şu ana kadar temel fonksiyonlar, döngüler, modüller, fonksiyon yazma gibi konuları öğrendim. İlk "büyük" projem olarak da bir hesap makinesi yapmaya karar verdim ve fonksiyonlarımı "math" modülünden yardım alarak yazdım. Modülleri hazırladım ve ardından test ettim. Toplama işlemi çalışıyordu ancak başka işlemleri yapmaya kalkıştığımda nedense bana toplama işlemi yaptırıyordu. Kodlarımda bir sorun göremedim. Yardım ederseniz sevinirim. Şunlar ana kodlarım:

Python:
import modul

print("Hesap Makinesine Hoşgeldiniz!\n---------------")

print("Yapabileceğiniz işlemler: (Toplama, çıkarma, çarpma, bölme, kare, küp, sinüs, logaritma (2 temelinde), kosinüs, tanjant, faktoriyel)")

cevap = input("Yapmak istediğiniz işlemi giriniz:")

while True:
    if cevap == "Toplama" or "toplama":
        x = int(input("1. toplananızı giriniz:"))
        y = int(input("2. toplananızı giriniz:"))
        modul.toplama(x, y)
        break

    elif cevap == "Çıkarma" or "çıkarma":
        x = int(input("Eksileni giriniz:"))
        y = int(input("Çıkanı giriniz:"))
        modul.cikarma(x, y)
        break

    elif cevap == "Çarpma" or "çarpma":
        x = int(input("1. çarpanı giriniz:"))
        y = int(input("2. çarpanı giriniz:"))
        modul.carpma(x, y)
        break

    elif cevap == "Bölme" or "bölme":
        x = int(input("Bölüneni giriniz:"))
        y = int(input("Böleni giriniz:"))
        modul.bolme(x, y)
        break

    elif cevap == "Kare" or "kare":
        x = int(input("Karesini bulacağınız sayıyı giriniz:"))
        modul.kare(x)
        break

    elif cevap == "Küp" or "küp":
        x = int(input("Küpünü bulacağınız sayıyı giriniz:"))
        modul.kup(x)
        break

    elif cevap == "Sinüs" or "sinüs":
        x = int(input("Sin(?):"))
        modul.sinus(x)
        break

    elif cevap == "Logaritma" or "logaritma":
        x = int(input("Log(?):"))
        modul.logaritma(x)
        break

    elif cevap == "Kosinüs" or "kosinüs":
        x = int(input("Cos(?):"))
        modul.cosinus(x)
        break

    elif cevap == "Tanjant" or "tanjant":
        x = int(input("Tan(?):"))
        modul.tanjant(x)
        break

    elif cevap == "Faktoriyel" or "faktoriyel":
        x = int(input("Hangi sayının faktoriyelini alacaksınız:"))
        modul.faktoriyel(x)
        break

    else:
        print("Girdiğiniz cevap bulunamadı! Lütfen geçerli bir işlem türü giriniz.")
        continue

Bunlar da kendim hazırladığım fonksiyonlar:

Python:
import math



def toplama(x, y):
    print("Sonucunuz:", x + y)

def cikarma(x, y):
    print("Sonucunuz:", x - y)

def carpma(x, y):
    print("Sonucunuz:", x * y)

def bolme(x, y):
    print("Sonucunuz:", x / y)

def kare(x):
    print("Sonucunuz:", math.sqrt(x))

def kup(x):
    print("Sonucunuz:", x * x * x)

def logaritma(x):
    print("Sonucunuz:", math.log(x, 2))

def sinus(x):
    print("Sonucunuz:", math.sin(x))

def cosinus(x):
    print("Sonucunuz:", math.cos(x))

def tanjant(x):
    print("Sonucunuz:", math.tan(x))

def faktoriyel(x):
    print("Sonucunuz:", math.factorial(x))
 
Son düzenleyen: Moderatör:
Koşulların içindeki break döngüden çıkmak içindir. senin program sadece 1 işlem yapıp bitiyor degil mi? öyleyse break ifadelerini sil düzelir
 
Her "elif"ten sonra "break" yapmana gerek yok. Hepsini sildikten sonra tekrar dene.
Denedim. Elif'ten sonraki tüm breakleri silmeme rağmen ben hala input bölümüne "Çıkarma" yazsam bile bana toplama işlemi yaptırıyor. Şu şekilde:
1607495383545.png
 
Çözüm

Geri
Yukarı