Çö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

Hectopat
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:
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
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı