Şimdi Ara

Arkadaşlar nerede hata yapıyorum ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
12
Cevap
0
Favori
356
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • # -*- 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 ?







  • Phyton mu dil ?

    C == "1" yerine

    C == 1

    Deneseniz birde dili bilmiyorum. Sadece tahmin.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • String karşılaştırırken is kullanmayı deneyin



    C is "1" gibi

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 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 ?





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




  • TMoE T kullanıcısına yanı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????????
  • 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 >
  • TMoE T kullanıcısına yanıt
    Peki benim ne yapmam gerekli bir türlü anlayamadım.
  • beta amiloid B kullanıcısına yanıt
    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 >




  • beta amiloid B kullanıcısına yanıt
    Dostum vakit ayırıp kafa yorduğun için sana minnettarım çok daha iyi anladım teşekkür ediyorum.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.