[Çözüldü]Enter'a basınca kapanıyor

Başlatan Berk Civelek, 22 Mart 2012 - 20:37:05

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

Berk Civelek


Arkadaşlar şöyle çok ufak bi hesap makinesi yazdım ancak , "ENTER" tuşuna bastığım zaman dosya kapanıyor .

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from __future__ import division


print "Hoşgeldiniz!"
print "(1) Toplama"
print "(2) Çarpma"
print "(3) Çıkarma"
print "(4) Bölme"
print "(5) Üssü Alma"
print "(6) Karekök Alma"
print "(0) Kapat"


while True:
    sor = int(raw_input("Yapılacak işlemin numarasını girin:"))
   
    if sor == 1:
        sayi1 = int(raw_input("Toplama için ilk sayıyı girin:"))
        sayi2 = int(raw_input("Toplama için ikinci sayıyı girin:"))
        print sayi1, "+", sayi2, ":", sayi1 + sayi2
   
    elif sor == 2:
        sayi5 = int(raw_input("Çarpma için ilk sayıyı girin:"))
        sayi6 = int(raw_input("Çarpma için ikinci sayıyı girin:"))
        print sayi5, "x", sayi6, ":", sayi5 * sayi6

    elif sor == 3:
        sayi3 = int(raw_input("Çıkarma için ilk sayıyı girin:")) 
        sayi4 = int(raw_input("Çıkarma için ikinci sayıyı girin:"))
        print sayi3, "-", sayi4, ":", sayi3 - sayi4

    elif sor == 4:
        sayi7 = int(raw_input("Bölme için ilk sayıyı girin:"))
        sayi8 = int(raw_input("Bölme için ikinci sayıyı girin:"))
        print sayi7, "/", sayi8, ":", sayi7 / sayi8
       
    elif sor == 5:
        sayi9 = int(raw_input("Üssü alınacak sayıyı yazın:"))
        sayi10 = int(raw_input("Üssü değerini yazın:"))
        print sayi9, "üssü", sayi10, ":", sayi9 ** sayi10
         
    elif sor == 6:
        sayi11 = int(raw_input("Karekökü alınacak sayıyı yazın:"))
        import math
        print sayi11, "sayısının karekökü:", math.sqrt(sayi11)
       
    elif sor == 0:
        print "See you later"   
        quit()
       
    elif not sor:
        print "Bu alan boş bırakılamaz!"
       
    else:
        print "Belirttiğiniz numara işlem belirtmemekte!"


Ve :
elif not sor:

Değeride işe yaramadı , galiba bu kod sadece karakter dizileri için geçerli oluyor . İnt olarak girdide işe yaramıyor galiba . Bi yardımcı olurmusunuz ?
Barikâ-i hakikat , müsademe-i efkârdan doğar .

hitokiri

Örneğin "kontrol" diye bir fonksiyon oluşturup , girdi sayısal mı ,değil mi yoksa hata mı veriyor diye bir denetleme yapabilirsin;
def kontrol(girdi):
    try:
        return int(girdi)
    except:
        print "hata girdi rakamsallaştırılamadı falan. "
        exit(1)       
sayi1 = raw_input("Toplama için ilk sayıyı girin:")
sayi1 = kontrol(sayi1)   
print sayi1