Python Basit hesap makinesine karekök işlemi nasıl yapılır?

648158

Centipat
Katılım
8 Nisan 2023
Mesajlar
476
Çözümler
3
Arkadaşlar merhaba, elimde konsolda çalışan bir hesap makinesi var, 4 işlem yapıyor kod ve ben bu koda karekök hesaplamayı da eklemek istiyorum. Kod şu şekilde;

Python:
print("Hesap makinesine hoşgeldiniz ")

print("Toplama: 1")

print("Çıkarma: 2")

print("Çarpma: 3")

print("Bölme: 4")



secim = input("Yapmak istediginiz islemi seciniz (1/2/3/4): ")



sayi1 = int(input("İlk sayiyi giriniz; "))

sayi2 = int(input("İkinci sayiyi giriniz; "))



if secim == '1':

print("Sonuç: "+str(sayi1+sayi2))

elif secim == '2':

print("Sonuç: "+str(sayi1-sayi2))

elif secim == '3':

print("Sonuç: "+str(sayi1*sayi2))

elif secim == '4':

print("Sonuç:"+str(sayi1/sayi2))



else:

print("Bir şeyler ters gitti /: ")

Bu koda karekök almayı nasıl uyarlarım? cevaplarınız için teşekkürler.
 
Arkadaşlar merhaba, elimde konsolda çalışan bir hesap makinesi var, 4 işlem yapıyor kod ve ben bu koda karekök hesaplamayı da eklemek istiyorum. Kod şu şekilde;

Python:
print("Hesap makinesine hoşgeldiniz ")

print("Toplama: 1")

print("Çıkarma: 2")

print("Çarpma: 3")

print("Bölme: 4")



secim = input("Yapmak istediginiz islemi seciniz (1/2/3/4): ")



sayi1 = int(input("İlk sayiyi giriniz; "))

sayi2 = int(input("İkinci sayiyi giriniz; "))



if secim == '1':

print("Sonuç: "+str(sayi1+sayi2))

elif secim == '2':

print("Sonuç: "+str(sayi1-sayi2))

elif secim == '3':

print("Sonuç: "+str(sayi1*sayi2))

elif secim == '4':

print("Sonuç:"+str(sayi1/sayi2))



else:

print("Bir şeyler ters gitti /: ")

Bu koda karekök almayı nasıl uyarlarım? cevaplarınız için teşekkürler.
Hocam bir sayının üssü 0.5 1/2 ile çarparsan da karekök alabilirsin yani input aldığın sayının**0,5 üssünü alırsan karekök almış olursun. Başka yöntemleri de mevcut ama daha karmaşık olur.
 
Son düzenleme:
Arkadaşlar merhaba, elimde konsolda çalışan bir hesap makinesi var, 4 işlem yapıyor kod ve ben bu koda karekök hesaplamayı da eklemek istiyorum. Kod şu şekilde;

Python:
print("Hesap makinesine hoşgeldiniz ")

print("Toplama: 1")

print("Çıkarma: 2")

print("Çarpma: 3")

print("Bölme: 4")



secim = input("Yapmak istediginiz islemi seciniz (1/2/3/4): ")



sayi1 = int(input("İlk sayiyi giriniz; "))

sayi2 = int(input("İkinci sayiyi giriniz; "))



if secim == '1':

print("Sonuç: "+str(sayi1+sayi2))

elif secim == '2':

print("Sonuç: "+str(sayi1-sayi2))

elif secim == '3':

print("Sonuç: "+str(sayi1*sayi2))

elif secim == '4':

print("Sonuç:"+str(sayi1/sayi2))



else:

print("Bir şeyler ters gitti /: ")

Bu koda karekök almayı nasıl uyarlarım? cevaplarınız için teşekkürler.
import math ile matematik kütüphanesini dahil edip math.sqrt(sayi) kullanabilirsin.

 
Python:
sayi1**(1/kok) // kök alma.
sayi1**us // us alma

İş görür herhalde veya hazır math kütüphanesini import edip fonksyonlarını kullanabilirsin.

Cevaplarınız beni çok sevindirdi lakin şöyle bir sorun var, her ne denediysem karekök işlemine girsem yine de 1. ve2. sayıyı sorup benden hangi işlemi yapmak istediğimi soruyor. Ben istiyorum ki 5. şıkka karekökü koyayım ve 5. şıkkı seçtiğimde karekökünü almak istediğiniz sayıyı girin yazsın ve sonra sonucu versin her ne denediysem yapamadım birisi yaparak gösterebilir mi hocalarım ya kusura bakmayın.
 
Cevaplarınız beni çok sevindirdi lakin şöyle bir sorun var, her ne denediysem karekök işlemine girsem yine de 1. ve2. sayıyı sorup benden hangi işlemi yapmak istediğimi soruyor. Ben istiyorum ki 5. şıkka karekökü koyayım ve 5. şıkkı seçtiğimde karekökünü almak istediğiniz sayıyı girin yazsın ve sonra sonucu versin her ne denediysem yapamadım birisi yaparak gösterebilir mi hocalarım ya kusura bakmayın.
Hocam normalde bu tarz karışıklıklar olmaması açısından def() fonksiyon kullanarak yapıyoruz, python sıra sıra okuma yaptığı için senin kodunda 1.ve 2. sayıları istiyor en basit ama verimsiz yöntem olarak 5. Şık kod bloğunu seçimin hemen ardına yazarak deneyebilirsin.
 
Cevaplarınız beni çok sevindirdi lakin şöyle bir sorun var, her ne denediysem karekök işlemine girsem yine de 1. ve2. sayıyı sorup benden hangi işlemi yapmak istediğimi soruyor. Ben istiyorum ki 5. şıkka karekökü koyayım ve 5. şıkkı seçtiğimde karekökünü almak istediğiniz sayıyı girin yazsın ve sonra sonucu versin her ne denediysem yapamadım birisi yaparak gösterebilir mi hocalarım ya kusura bakmayın.

Cunku alacagin sayi adedini isleme gore belirlememissin. Tavsiyem kodunu fonkiyonlara bolerek sorumlulugu dagitman. Biraz daha kodu uzatir ama hem daha okunakli olur hem de yeni ozellik eklemek cocuk oyuncagi olur. Test etmek de daha kolay olur. Sadece bir fonksiyonu test edebilirsin.
1 ya da 2 input alan ornek:

Python:
from numbers import Number
from typing import Callable


def get_inputs(q) -> tuple[int, ...]:
    numbers = []
    print("Islem yapilacak sayilari giriniz:")
    for i in range(q):
        numbers.append(int(input()))
    return tuple(numbers)


def add():
    num1, num2 = get_inputs(2) # 2 input istiyorum, 20 tane de isteyebilir reduce() ile.
    return num1 + num2


def sqrt():
    num = get_inputs(1)[0]
    return num ** 0.5


def op(selection: str) -> Callable[[], Number]:
    if selection == "1":
        return add
    elif selection == "2":
        return sqrt
    else:
        raise Exception(f"Invalid selection: {selection}")


secim = input("Yapmak istediginiz islemi seciniz (1/2/3/4): ")
op_func = op(secim) # yapilan secime gore sorumlu fonksiyon
print(f"Sonuc: {op_func()}") # fonksiyonu cagir, her fonksiyon kendi icinde islemi halleder
 
Cevaplarınız beni çok sevindirdi lakin şöyle bir sorun var, her ne denediysem karekök işlemine girsem yine de 1. ve2. sayıyı sorup benden hangi işlemi yapmak istediğimi soruyor. Ben istiyorum ki 5. şıkka karekökü koyayım ve 5. şıkkı seçtiğimde karekökünü almak istediğiniz sayıyı girin yazsın ve sonra sonucu versin her ne denediysem yapamadım birisi yaparak gösterebilir mi hocalarım ya kusura bakmayın.

O zaman inputları koşul ifadelerinin içine alabilirsiniz, diğer kısımlarda 2 tane sayı isterken kök kısmında tek sayı isteyebilir, tabii bu sefer de kod kalabalığı olacaktır, yukarıdaki arkadaşın yazdığı gibi fonksyonlarla yaparsanız daha temiz bir şey ortaya çıkacaktır.
 

Technopat Haberler

Yeni mesajlar

Geri
Yukarı