Python yazdığım kod yanlış çalışıyor

pythonucuman

Femtopat
Katılım
6 Mayıs 2022
Mesajlar
12
Daha fazla  
Cinsiyet
Erkek
Python ile şu kodu yazdım;
[CODE title="Kod"]print("1.Çember\n2.Kare\n3.Dikdörtgen\n4.Paralelkenar\n5.Üçgen")



İslem =input(" Alanını Bulmak İstediğiniz Şekli Seçiniz (yazıyla yazınız):")

İf islem == "çember" or "Çember":

R = int(input(" Çemberin çapını giriniz:"))

Pi = int(input(" Pi sayısını kaç almak istediğinizi giriniz:"))

Sonuç= R * Pi

Print("Çemberinizin alanı:",sonuç)

Elif islem== "kare" or "Kare":

Kenar = float(input("Karenin Bir Kenar Uzunluğunu Giriniz:"))

Kenar = kenar * 4

Print("Karenizin Alanı: {0}".format(kenar))

Elif islem == "dikdörtgen" or "Dikdörtgen":

Uzun_k = float(input("Uzun Kenarı Giriniz:"))

Kısa_k = float(input("Kısa Kenarı Giriniz:"))

Dikd= uzun_k * kısa_k

Print("Dikdörtgenin Alanı {0}".format(dikd))

Elif islem =="paralelkenar" or "Paralelkenar":

H = float(input("Yükseklik Değerini Giriniz:"))

F = float(input("Kenar Uzunluğunu Giriniz:"))

Pknr = h * F

Print("Paralelkenarın Alanı {0}".format(pknr))

Elif islem == "Üçgen" or "üçgen":

H1 = float(input("Yüksekliği Giriniz:"))

D = float(input("Kenar Uzunluğunu Giriniz:"))

Ucgen = H1 * D / 2

Print("Üçgenin Alanı {0}".format(ucgen))

Else:

Print("elsey")

Print("Program Sona Erdi, Enter Tuşu İle Çıkış Yapabilirsiniz.")

input()[/CODE]

Program çalışıyor ama üçgen de yazsam kare de yazsam sadece çemberin altındaki kodu çalıştırıyor
 

Dosya Ekleri

  • Alan Hesaplayıcı 3000 - Jupyter Notebook - Google Chrome 6.05.2022 19_20_34 (2).png
    Alan Hesaplayıcı 3000 - Jupyter Notebook - Google Chrome 6.05.2022 19_20_34 (2).png
    117,4 KB · Görüntüleme: 108
Son düzenleyen: Moderatör:
Sorunun ne olduğuna bakmadan önce kodunuzda dikdörtgen or Dikdörtgen diye belirtmek yerine "islem" inputunuzun sonua " .lower() " (tırnak işaretleri dahil değil) getirerek bütün harflerini otomatik küçülttükten sonra inputu direkt olarak kûçük harfli bir şeye eşitleyebilirsiniz.
Sanırım ilk başta yazdığınız işlemin i si büyük diğerinin küçük.
 
Bu konudan öğrenerek kod paylaşın. Paylaştığınız şey metin. Okumayla uğraşmanın anlamı yok.
 
Aynı zamanda kare kodunda da hata var gibi. Aldığınız büyük harfli kenar inputunu sonra kûçük harfli kenardan 4 tanesine eşitlemişsiniz ve sonra manasızca büyük harf Kenarı formata yazmışsınız. Oysa Kenar inputunun karesini almanız gerek.
 
Eski konuyu silen akıllıya sesleniyorum. Düzgün kod paylaşılınca silin, aferin. Aptal kodu da böyle kod içine alın. Programlama kategorisinde yazım denetimi kullanmaya devam. Çok güzel.

Kod paylaşmayı öğrenmişsiniz ama aynı şey için yeni konu açmamanız gerektiğini öğrenememişsiniz. Uyarınız vardır, cevap yazamıyorsunuzdur.

Diğer konuya yazdığım cevap:
if islem == "kare" or islem == "Kare" şeklinde olmalı. Diğer türlü sadece string veriyorsunuz ve stirng boş olmadığı için True döndürüyor, o if'e giriyor.

.format() kullanmayın. İlla kullanacaksanız gidin C yazın. f-string bıraktım ilkine, o şekilde kullanın.

Kod:
menu = """\
1. Çember
2. Kare
3. Dikdörtgen
4. Paralelkenar
5. Üçgen"""

print(menu)
islem = input("Alanını bulmak istediğiniz şekli seçiniz (yazıyla yazınız): ").lower()

if islem == "çember":
    r = float(input("Çemberin yarıçapını giriniz: "))
    pi = float(input("Pi sayısını kaç almak istediğinizi giriniz: "))
    sonuc = pi * r * r
    print(f"Çemberin alanı: {sonuc}")
elif islem == "kare":
        kenar = float(input("Karenin bir kenar uzunluğunu giriniz: "))
        sonuc = kenar * kenar
        print("Karenin alanı:", sonuc)
elif islem == "dikdörtgen":
        uzun_kenar = float(input("Uzun kenarı giriniz: "))
        kısa_kenar = float(input("Kısa kenarı giriniz: "))
        sonuc = uzun_kenar * kısa_kenar
        print("Dikdörtgenin alanı:", sonuc)
elif islem =="paralelkenar":
        yukseklik = float(input("Yükseklik değerini giriniz: "))
        taban = float(input("Taban uzunluğunu giriniz: "))
        sonuc = yukseklik * taban
        print("Paralelkenarın alanı:", sonuc)
elif islem == "üçgen":
        yukseklik = float(input("Yükseklik değerini giriniz: "))
        taban = float(input("Taban uzunluğunu giriniz: "))
        sonuc = yukseklik * taban / 2
        print("Üçgenin alanı:", sonuc)
else:
    print("elsey??????")

print("Program sona erdi, enter tuşu ile çıkış yapabilirsiniz.")
input()
 
Kodu okumak iskence, okumadim o yuzden.
Sadece su konuda akil vereyim, Bir listeden eleman sectirmek istiyorsan kullaniciya, elemanin adini degil, ordered listedeki ordinal degerini numerik olarak al.
Yani cemberse 1 yazsin, kareyse 2 vs. String karsilastirmanin getirdigi amelasyonla ugrasmazsin, inputu da limitlersin.


İf islem == "çember" or "Çember": gibi kodlara gerek yok. ÇEMBER de yazabilir kullanici. Cok kullanicisi olan bir uygulama gelistirdigin zaman goreceksin ki kullanicilar hata yapmak konusunda cok basarili varliklardir.

3.10 ile artik match-case yazabilirsin. Carsaf gibi degil, moduler kod yazmaya calis.
Python:
kare = 3
ucgen = 2
match subject:
    case kare:
        return calc_square()
    case ucgen:
        return calc_triangle()
 
[CODE lang="python" highlight="1-10"] menu = """\
1. Çember
2. Kare
3. Dikdörtgen
4. Paralelkenar
5. Üçgen"""

print(menu)
if islem == "çember":
r = float(input("Çemberin yarıçapını giriniz: "))
pi = float(input("Pi sayısını kaç almak istediğinizi giriniz: "))
sonuc = pi * r * r
print(f"Çemberin alanı: {sonuc}")
elif islem == "kare":
kenar = float(input("Karenin bir kenar uzunluğunu giriniz: "))
sonuc = kenar * kenar
print("Karenin alanı:", sonuc)
elif islem == "dikdörtgen":
uzun_kenar = float(input("Uzun kenarı giriniz: "))
kısa_kenar = float(input("Kısa kenarı giriniz: "))
sonuc = uzun_kenar * kısa_kenar
print("Dikdörtgenin alanı:", sonuc)
elif islem == "paralelkenar":
yukseklik = float(input("Yükseklik değerini giriniz: "))
taban = float(input("Taban uzunluğunu giriniz: "))
sonuc = yukseklik * taban
print("Paralelkenarın alanı:", sonuc)
elif islem == "üçgen":
yukseklik = float(input("Yükseklik değerini giriniz: "))
taban = float(input("Taban uzunluğunu giriniz: "))
sonuc = yukseklik * taban / 2
print("Üçgenin alanı:", sonuc)

elif islem == "":
try:
print("Hesap Makinesi Moduna Giriş Yapıldı.")
a = float(input("Lütfen 1.sayıyı giriniz:"))
b = float(input("Lütfen 2.sayıyı giriniz:"))
menu = """\
1.Toplama
2.Çıkarma
3.Bölme
4.Çarpma
"""
print(menu)
cvp = input("İşlem Seçiniz:.")

if cvp == "1":
t = a + b
print("Sonuç:", t)
elif cvp == "2":
ck = a - b
print("Sonuç:", ck)
elif cvp == "3":
bl = a / b
print("Sonuç:", bl)
elif cvp == "4":
cr = a * b
print("Sonuç:", cr)
else:
print("Lütfen Bir İşlem Seçiniz.")
except ValueError:
print("Girdiğiniz değer sayı değil,Lütfen Programı Yeniden Başlatıp Tekrar Deneyin.")
print("Hesap Makinemizi Kullandığınız için teşekkür ederiz.")
print("Program sona erdi \n Çıkış Yapmak İçin Enter Tuşuna Basın.")
input()[/CODE]
Bu şekilde biraz geliştirdim ama indentation error veriyor.Yardım edebilir misiniz.Ben biraz yeniyim 5. yazdığım program bu.
 
[CODE lang="python" highlight="1-10"] menu = """\
1. Çember
2. Kare
3. Dikdörtgen
4. Paralelkenar
5. Üçgen"""

print(menu)
if islem == "çember":
r = float(input("Çemberin yarıçapını giriniz: "))
pi = float(input("Pi sayısını kaç almak istediğinizi giriniz: "))
sonuc = pi * r * r
print(f"Çemberin alanı: {sonuc}")
elif islem == "kare":
kenar = float(input("Karenin bir kenar uzunluğunu giriniz: "))
sonuc = kenar * kenar
print("Karenin alanı:", sonuc)
elif islem == "dikdörtgen":
uzun_kenar = float(input("Uzun kenarı giriniz: "))
kısa_kenar = float(input("Kısa kenarı giriniz: "))
sonuc = uzun_kenar * kısa_kenar
print("Dikdörtgenin alanı:", sonuc)
elif islem == "paralelkenar":
yukseklik = float(input("Yükseklik değerini giriniz: "))
taban = float(input("Taban uzunluğunu giriniz: "))
sonuc = yukseklik * taban
print("Paralelkenarın alanı:", sonuc)
elif islem == "üçgen":
yukseklik = float(input("Yükseklik değerini giriniz: "))
taban = float(input("Taban uzunluğunu giriniz: "))
sonuc = yukseklik * taban / 2
print("Üçgenin alanı:", sonuc)

elif islem == "":
try:
print("Hesap Makinesi Moduna Giriş Yapıldı.")
a = float(input("Lütfen 1.sayıyı giriniz:"))
b = float(input("Lütfen 2.sayıyı giriniz:"))
menu = """\
1.Toplama
2.Çıkarma
3.Bölme
4.Çarpma
"""
print(menu)
cvp = input("İşlem Seçiniz:.")

if cvp == "1":
t = a + b
print("Sonuç:", t)
elif cvp == "2":
ck = a - b
print("Sonuç:", ck)
elif cvp == "3":
bl = a / b
print("Sonuç:", bl)
elif cvp == "4":
cr = a * b
print("Sonuç:", cr)
else:
print("Lütfen Bir İşlem Seçiniz.")
except ValueError:
print("Girdiğiniz değer sayı değil,Lütfen Programı Yeniden Başlatıp Tekrar Deneyin.")
print("Hesap Makinemizi Kullandığınız için teşekkür ederiz.")
print("Program sona erdi \n Çıkış Yapmak İçin Enter Tuşuna Basın.")
input()[/CODE]
Bu şekilde biraz geliştirdim ama indentation error veriyor.Yardım edebilir misiniz.Ben biraz yeniyim 5. yazdığım program bu.
İlk satır ile son iki satır arasındaki girinti farkını görebiliyor musunuz ?
 

Technopat Haberler

Yeni konular

Geri
Yukarı