Yazdığım Python kodu çalışmıyor

serhab

Kilopat
Katılım
8 Nisan 2016
Mesajlar
116
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Merhaba phyton öğrenmeye yeni başladım ve en basitinden hesap makinesi yazmak istedim ama hata verdi. Yeni yeni öğrendiğim için çok fazla hata yapıyorum rica etsem kodumu düzenler misiniz?
(sürüm:3.7)
Şimdiden teşekkür ederim...

Kod:
başlık=print("MERHABA HESAP MAKİNEME HOŞ GELDİN......\n BÖLME İÇİN BÖL\n ÇARPMA İÇİN ÇARP \nTOPLAMAK İÇİN topla YAZ")

print("başlık")

çıktı=input("İşlem seç : ")

if("çıktı=topla")

    print(sayı):

      print(sayıki)

    print(topla)



elif("çıktı=çarp")

print("sayı"):

print("sayıki"):

print("çarp"):



elif("çıktı=böl")

print("sayı"):

print("sayıki"):

print("böl")



topla =(sayı+sayıki)

böl=(sayı / sayıki)

çarp=(sayı* sayıki)



sayı=input("sayı bir : ")

sayıki=input("sayı iki :")
 
Son düzenleyen: Moderatör:
Python:
from __future__ import division

while True:

    def toplama_islemi():
        girdi1t=int(raw_input("Ilk sayiyi girin: "))
        girdi2t=int(raw_input("Ikinci sayiyi girin: "))
        sonuct=girdi1t+girdi2t
        print "Sonuc :" , sonuct
        print
    def cikarma_islemi():
        girdi1c=int(raw_input("Ilk sayiyi girin: "))
        girdi2c=int(raw_input("Ikinci sayiyi girin: "))
        sonucc=girdi1c-girdi2c
        print "Sonuc :" , sonucc
        print
    def carpma_islemi():
        girdi1ca=int(raw_input("Ilk sayiyi girin: "))
        girdi2ca=int(raw_input("Ikinci sayiyi girin: "))
        sonucca=girdi1ca*girdi2ca
        print "Sonuc :" , sonucca
        print
    def bolme_islemi():
        girdi1bo=int(raw_input("Ilk sayiyi girin: "))
        girdi2bo=int(raw_input("Ikinci sayiyi girin: "))
        sonucbo=girdi1bo/girdi2bo
        print "Sonuc :" , sonucbo
        print
    def kare_alma():
        girdi1ka=int(raw_input("Karesini almak istediginiz sayiyi girin: "))
        sonucka=girdi1ka ** 2
        print "Sonuc :", sonucka
    def kup_alma():
        girdi1ku=int(raw_input("Kubunu almak istediginiz sayiyi girin: "))
        sonucku=girdi1ku ** 3
        print "Sonuc :", sonucku
    def kare_hacim():
        kare_hacimx=int(raw_input("Karenin bir kenarinin uzunlugunu girin: "))
        sonuc_kare_hacim=kare_hacimx**3
        print "Sonuc :", sonuc_kare_hacim
    def kup_hacim():
        kup_hacimx=int(raw_input("Kubun bir kenar uzunlugunu girin: "))
        sonuc_kup_hacim=(kup_hacimx**3) * 4
        print "Sonuc :", sonuc_kup_hacim
    print ("Toplama Islemi (1)")
    print ("Cikarma Islemi (2)")
    print ("Carpma Islemi (3)")
    print ("Bolme Islemi (4)")
    print ("Kare alma islemi (5)")
    print ("Kup alma islemi (6)")
    print ("Hacim bulma islemi (7)")
    print ("Programdan cikmak icin (8)")
    print ("--------------------------")

    try:
        islemno=int(raw_input("Islem numarasini girin: "))

        if islemno == 1:
            toplama_islemi()
        elif islemno == 2:
            cikarma_islemi()
        elif islemno == 3:
            carpma_islemi()
        elif islemno == 4:
            bolme_islemi()
        elif islemno == 5:
            kare_alma()
        elif islemno == 6:
            kup_alma()
        elif islemno == 7:
            print ("Karenin hacmi (1)")
            print ("Kubun hacmi (2)")
            print ("------------------")
            islemno2=int(raw_input("Islem numarasini girin: "))
            if islemno2==1:
                kare_hacim()
            elif islemno2==2:
                kup_hacim()
            else:
                print ("Islem numarasi gecersiz")
                print
        elif islemno == 8:
            break
        else:
            print ("Islem numarasi gecersiz")
            print
    except(ZeroDivisionError, ValueError):
        print ("Hatali bir deger girdiniz.")
        print

Aşşagı yukarı kodunuz böyle olmalı. Bu biraz daha ileri seviye fakat kodlarınızda çok hata var. Bunlara bakarak kendinizin mantık yürütmesi daha iyi olacaktır ögrenme açısından.
 
Konu hakkında çok bilgim olmasa da toplama seçen birisi seçince direkt print(sayı) yazmışsınız. sayı ibaresi daha tanımlanmadı ki. Ek olarak if(çıktı="topla") demen gerektiğini düşünüyorum. Şöyle bir deneyerek gittim de... Birçok hatan var. En basitinden if ile bir şey yazınca iki nokta koyman gerekir. Print komutundan sonra iki nokta hata veriyor... Şu an düzeltmeye çalışıyorum. Bittiğinde atarım, kendine göre değişiklikler yaparsın.
Devamında hatalar iyice gidiyor. Başta alman gereken girdileri en sona koymuşsun. Kafana göre iki nokta koymuşsun. Tanımlı değerleri metin olarak yazdırma komutu vermişsin. Python öğrenmeye başlamamış gibi durmuyorsun. Birkaç fonksiyonun varlığını öğrenip kafandaki şeyleri harmanlayıp ortaya bir ürün sunmuşsun. Bir satır yazdıktan sonra bir satır boşluk bırakman da en saçma geleni. Bunu düzeltmek sıfırdan yazmaktan daha uzun sürer benim için. Aldığın verileri tam sayı yapman gerekir vb. Düzgün bir yerden hakkıyla vakit ayırarak öğrensen yapabileceğin bir şey.

Şu koda göz atabilirsin.
Python:
# Bu fonksiyon toplama işlemini yapar.
def toplama(a, b):
return a + b

# Bu fonksiyon çıkarma işlemini yapar.
def cikarma(a, b):
return a - b

# Bu fonksiyon çarpma işlemini yapar.
def carpma(a, b):
return a * b

# Bu fonksiyon bölme işlemini yapar.
def bolme(a, b):
return a / b

print("Bir işlem seçiniz...")
print("Toplama işlemi için 1'e basınız.")
print("Çıkarma işlemi için 2'ye basınız.")
print("Çarpma işlemi için 3'e basınız.")
print("Bölme işlemi için 4'e basınız.")

# Burada kullanıcı bir değer seçer. Eğer 1'e basarsa toplama, 2'ye basarsa çıkarma, 3'e basarsa çarpma ve 4'e basarsa bölme işlemi aktif olur.
secim = input("Hangi işlemi yapmak istersiniz (1 - 2 - 3 - 4):")

#Burada dışarıdan 2 sayı girişi yapıyoruz.
sayi1 = int(input("Birinci sayıyı giriniz = "))
sayi2 = int(input("İkinci sayıyı giriniz = "))

#Burada ise hangi işlemi yapmak istiyorsak ona göre if kısımları devreye giriyor.Ardından fonksiyona değerler gidiyor ve üst taraftan sonuçlar bu kısma geliyor.
if secim == '1':
print(sayi1,"+",sayi2,"=", toplama(sayi1,sayi2))

elif secim == '2':
print(sayi1,"-",sayi2,"=", cikarma(sayi1,sayi2))

elif secim == '3':
print(sayi1,"*",sayi2,"=", carpma(sayi1,sayi2))

elif secim == '4':
print(sayi1,"/",sayi2,"=", bolme(sayi1,sayi2))
else:
print("Değer girilmedi.")
 
Son düzenleme:
Daha çok yeniyim.Ayrıca ilk dilim olacak hiçbirşey hakkında bilgim yok rehber var mı acaba sosyalde ?
Konu hakkında çok bilgim olmasa da toplama seçen birisi seçince direkt print(sayı) yazmışsınız. sayı ibaresi daha tanımlanmadı ki. Ek olarak if(çıktı="topla") demen gerektiğini düşünüyorum. Şöyle bir deneyerek gittim de... Birçok hatan var. En basitinden if ile bir şey yazınca : koyman gerekir. Print komutundan sonra : hata veriyor... Şu an düzeltmeye çalışıyorum. Bittiğinde atarım, kendine göre değişiklikler yaparsın.
 
Daha çok yeniyim.Ayrıca ilk dilim olacak hiçbir şey hakkında bilgim yok rehber var mı acaba Sosyal'de?

Sosyal'de olduğunu sanmıyorum. Varsa da haberim yok. Udemy ya da Youtube gibi platformlardan derslere bakmanı tavsiye ederim. Kemal Güneşli'nin de dediği gibi emeklemeyi bilmiyorken koşmaya çalışmışsınız. Size şöyle söyleyeyim, ben daha if kısmına gelmedim. Ama kabaca ne yaptığını, nasıl yaptığını verdiği hatalardan anlayabiliyorum.
Buyur, bu şekilde çalışıyor. İstediğin değişiklikleri yap. @serhab

Python:
print("Merhaba hesap makineme hoş geldin...\n Bölme için Böl \n Çarpma için Çarp \n Toplamak için Topla yaz")
çıktı = str(input("İşlem seç:"))
sayı = int(input("sayı bir:"))
sayıki = int(input("sayı iki:"))
TOPLA = (sayı+sayıki)
BÖL = (sayı/sayıki)
ÇARP = (sayı*sayıki)
if çıktı == "Topla":
    print(TOPLA)
elif çıktı == "Çarp":
    print(ÇARP)
elif çıktı == "Böl":
    print(BÖL)
 
Son düzenleme:
Uyarı! Bu konu 6 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.

Geri
Yukarı