Arama butonu
Bu konudaki kullanıcılar: 1 misafir
10
Cevap
392
Tıklama
1
Öne Çıkarma
Arkadaşlar nerede hata yapıyorum ?
B
8 yıl
Er
Konu Sahibi

# -*- 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 ("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 ?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



O
8 yıl
Yüzbaşı

Phyton mu dil ?

C == "1" yerine

C == 1

Deneseniz birde dili bilmiyorum. Sadece tahmin.



< Bu ileti mobil sürüm kullanılarak atıldı >

B
8 yıl
Binbaşı

String karşılaştırırken is kullanmayı deneyin



C is "1" gibi



< Bu ileti mobil sürüm kullanılarak atıldı >

B
8 yıl
Er
Konu Sahibi

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ı ?



B
8 yıl
Er
Konu Sahibi

# -*- 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 ?



T
8 yıl
Yüzbaşı


while True:
a = input("Günde kaç saat çalışıyorsunuz:")
b = input("Ayda kaç gün çalışıyorsununz:")
a = int(a)
b = int(b)

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


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 Ancak şunlara dikkat ettim ki input ile aldığın değerin tipini karıştırmışsın. input ile aldığın değer str geliyor. Sen ise yazdığın programda direkt çarpmaya çalışmışsın (print içinde a*b*7 gibi). Ben onları input ile aldığın gibi int e çevirdim (while dan sonraki ilk 4 satır), anlaşılır olsun diye alt alta yazdım. Yine input ile aldığın c değeri str geliyor, senin yaptığın if yapısında ise c == 1 ile int e eşitlemişsin (c == '1', if koşulları). Onu da str ye çevirdim tırnaklarla. Girintileri söylememe gerek yok sanırım

Birkaç deneme yaptım çalıştı.





< Bu mesaj bu kişi tarafından değiştirildi TMoE -- 29 Ağustos 2017; 21:6:21 >
Bu mesaja 1 cevap geldi.
B
8 yıl
Er
Konu Sahibi

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????????


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @TMoE
T
8 yıl
Yüzbaşı

quote:

Orijinalden alıntı: beta amiloid

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.





< Bu mesaj bu kişi tarafından değiştirildi TMoE -- 29 Ağustos 2017; 21:17:6 >
Bu mesaja 1 cevap geldi.
B
8 yıl
Er
Konu Sahibi

Peki benim ne yapmam gerekli bir türlü anlayamadım.


Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @TMoE
T
8 yıl
Yüzbaşı

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.


# -*- 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("Hangi sektörde çalışıyorsunuz:")

if c == 1:
print "Aylık kazancınız:", a*b*7
elif c == 2:
print "Aylık kazancınız:", a*b*15
elif c == 3:
print "Aylık kazancınız:", a*b*12
elif c == 4:
print "Aylık kazancınız:", a*b*6
else:
print "Girdileri kontrol edin."
break

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.





< Bu mesaj bu kişi tarafından değiştirildi TMoE -- 29 Ağustos 2017; 22:0:13 >


Bu mesajda bahsedilenler: @beta amiloid
B
8 yıl
Er
Konu Sahibi

Dostum vakit ayırıp kafa yorduğun için sana minnettarım çok daha iyi anladım teşekkür ediyorum.




Bu mesajda bahsedilenler: @beta amiloid
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.