1. sayfa
Phyton mu dil ? C == "1" yerine C == 1 Deneseniz birde dili bilmiyorum. Sadece tahmin. |
String karşılaştırırken is kullanmayı deneyin C is "1" gibi |
söylediğiniz şekilde deneyerek bir ilerleme kaydedebildim küçükte olsa. şuan aldığm çıktı şu şekilde: Günde kaç saat çalışıyorsunuz:12 Ayda kaç gün çalışıyorsununz:20 Hizmet (1) Bilişim (2) Eğitim (3) Diğer (4) Hangi sektörde çalışıyorsunuz:2 (u'Ayl\u0131k kazanc\u0131n\u0131z:', 3600) sondaki karakterlerin doğru çıkmamasının sebebi unicod tan kaynaklı bir olay mı ? |
# -*- coding: utf-8 -*- while True: a = input("Günde kaç saat çalışıyorsunuz:") b = input("Ayda kaç gün çalışıyorsununz:") print ("Hizmet (1)") print ("Bilişim (2)") print ("Eğitim (3)") print ("Diğer (4)") c = input(u"Hangi sektörde çalışıyorsunuz:") if c == 1: print (u"Aylık kazancınız:", a*b*7) elif c == 2: print (u"Aylık kazancınız:", a*b*15) elif c == 3: print (u"Aylık kazancınız:", a*b*12) elif c == 4: print (u"Aylık kazancınız:", a*b*6) else: print (u"Girdileri kontrol edin.") break Programın son hali şuanlık bu fakat "aylık kazancınız" kısmı düzgün basılmıyor sebep nedir ? |
Son mesajındaki kodlar üzerinden konuşursam; Öncelikle ben de Python'ı yeni yeni öğreniyorum. Fonksiyonunun çıktısının en başta nasıl o şekilde olduğunu anlayamadım ![]() ![]() Birkaç deneme yaptım çalıştı. |
Dostum çalıştığını iddia ediyorsun ama aynen kopyaladığım halde koşul bölümünün tamamını es geçiyor.aynı sorunu öncede yaşamıştım iflerden sonraki tırnakları silerek gidermiştim yine aynısı yaptım fakat bu seferde çıktıyı tekrardan şu şekilde almaya başladım: (u'Ayl\u0131k kazanc\u0131n\u0131z:', 900) ???????sen düzgün şekilde çalıştırdınmı,yani girdi yapıp sonuçları bekledinmi???????? |
Python versiyon farkından kaynaklanıyor olabilir. Python 3 kullanıyorum; net bilmemekle beraber Python 2 ile 3 arasında bazı farklılıklar var. Bende çalışıyor. İlk soruya 9 ikincisine 20 verip 1 seçeneğini seçersem Aylık kazancınız: 1260 olarak çıktı alıyorum ki programının kodundan da anladığım istediğin bu. |
Peki benim ne yapmam gerekli bir türlü anlayamadım. |
Hocam benim bilgisayarda Python 3.x.x kurulu ve bazı fonksiyonlar Python 2'ye nazaran farklı çalıştığından farklı sonuçlar aldım sanırım (muhtemelen sende Python 2.x.x kurulu). Biraz araştırdım ve online Python 2.x.x Interpreter buldum ve söylediğin kodları yazınca gerçekten direkt else kısmı işletildi. Şimdi sorunu net görmüş oldum. Özür önceki mesaj için :) Bu konunun 5. mesajındaki paylaştığın kodlara geri dönüş yaptım ve onun üzerinden oynama yaptım, yani daha önce yazdığım mesajları dikkate almamanı rica ediyorum.
https://repl.it/languages/python Online Python 2.7 Interpreter üzerinden yukarıdaki kodlar düzgün çalıştı. Neyi farklı yaptım? İlk satırdaki utf-8 kısmını tırnak içine aldım. String lerin başındaki u ları sildim (ne işe yarıyor bilmiyorum aslında, Python 3'de Türkçe karakter sorunu yaşamadım şimdiye kadar). Print ifadelerinde parantezleri kaldırdım. Sanırım istediğin çıktı sırf parantezin içindeki alan, parantezler değil ki bu şekilde parantezli Python 3.x.x de kod yazılsa zaten parantez içindekiler çıktı olarak alınırdı; Python 2.x.x biraz farklıymış, en basitinden bu örneği verebilirim. Input ile gelen verinin string gelmemesi de garip geldi, Python 3'de string geliyor. Neyse, umarım çalışır bu sefer. |
Dostum vakit ayırıp kafa yorduğun için sana minnettarım çok daha iyi anladım teşekkür ediyorum. |
1. sayfa
while True:
a = input("Günde kaç saat çalışıyorsunuz:")
b = input("Ayda kaç gün çalışıyorsununz:")
print ("Hizmet (1)")
print ("Bilişim (2)")
print ("Eğitim (3)")
print ("Diğer (4)")
c = input(u"Hangi sektörde çalışıyorsunuz:")
if c == "1":
print (u"Aylık kazancınız:", a*b*7)
elif c == "2":
print (u"Aylık kazancınız:", a*b*15)
elif c == "3":
print (u"Aylık kazancınız:", a*b*12)
elif c == "4":
print (u"Aylık kazancınız:", a*b*6)
else:
print ("Girdileri kontrol edin.")
break
çalışma saatine,çalışma gününe ve sektöre göre aylık kazanç hesaplayan basit, başlangıç seviyesinde bir program yazmak istemekteyim fakat hangi girdiyi yaparsam yapayım program if koşullarının hiçbirini görmeden bana "girdileri kontrol edin" kısmını bastırıyor.Bunun sebebi ve çözümü nedir acaba ?