Herkese merhaba, programlamaya yeni başladım ve yazbel’in yayınlamış olduğu istihza python 3 belgeleri ile çalışıyorum.
Ben ufak bir program yaptım fakat programa bazı özellikler eklemek ve bir şeyleri değiştirmek istiyorum fakat şuan ki mevcut bilgim ile bunu beceremedim.
Python sürümüm 3.9.6 encode utf-8 işletim sistemim win10
Kodlar şu şekilde;
print( "*" * 80)
print("""Kar-zarar açıklayıcıya hoş geldiniz!. Bu program potansiyel kar veya zararınızı,
hesaplar bu yüzden vergi ve diğer giderler (komisyon gibi) hesaplamanın içerisine dahil edilmez.""")
print("*" * 80, "\t")
#Değişkenleri atadım. Hisse fiyatları küsuratlı olabileceği için 'float' kullandım.
sermaye = int(input("Yatırdığınız para: "))
alisfiyati = float(input("Hisse alış fiyatı: "))
lot = sermaye / alisfiyati
#Kullanıcıya elinde hisseden ne kadar adet olduğunu söylüyoruz.
print("Hisse adediniz: ", round(lot), sep="")
satisfiyati = float(input("Hisse satış fiyatı: "))
#Zarar etmişse eğer zararı hesaplamak için bu formülü kullanıyoruz.
zarar = sermaye - (lot * satisfiyati)
#Kar etmişse bu formülü.
kar = lot * satisfiyati - sermaye
#Koşulları belirtiyoruz.
if satisfiyati < alisfiyati:
print("Kalan paranız: ", round(lot * satisfiyati, 1), "\n",
"Zararınız: ", round(zarar, 1), " TL zarar", sep="")
print("Yüzdesel: %", round((alisfiyati - satisfiyati) * 100 / alisfiyati, 1), sep="")
elif satisfiyati > alisfiyati:
print("Toplam paranız: ", round(lot * satisfiyati, 1), "\n",
"Karınız: ", round(kar, 1)," TL kar", sep="")
print("Yüzdesel: %", round((satisfiyati - alisfiyati) * 100 / satisfiyati, 1), sep="")
elif satisfiyati == alisfiyati:
print("Alış fiyatınız, satış fiyatınızla aynı olduğu için kar veya zararınız yoktur.")
else:
print("Hata! Lütfen bir sayı giriniz.")
input()
Python belgelerinde “Döngüler(Loops)” başlığına kadar geldim. Buraya kadar ki edinmiş olduğum bilgilerin istediğim şeyleri yapmama yeterli olduğunu düşündüm ve bu yüzden istediğim şeyleri programda uygulayabilene kadar ileri gitmek istemedim. Yazdığım kodlar muhtemelen çok daha basit bir şekilde yazılabiliyordur ama mevcut bilgimi göz önüne alarak kodları o şekilde yazarsanız sevinirim.
Şimdi benim yapmak istediğim şeyler şunlar:
- Sermaye, alış fiyatı ve satış fiyatı kısımlarında kullanıcı enter’a basıp boş bir değer girerse ekrana o kısmın boş bırakılamayacağı ile ilgili bir yazı yazdırmak istiyorum. Bunun için “if not sermaye:” gibi kodları denedim ama sermaye değişkeninin çıktısı int olduğu için olmadı string’e çevirmeye çalışırken de haliyle sorunlar yaşadım.
- Kullanıcının sermaye, alış fiyatı ve satış fiyatı kısmına yalnızca sayı değerli, değerler yazabilmesini istiyorum. Yani kullanıcı “Hisse satış fiyatı” sorusuna “asadasda” şeklinde bir cevap verirse şuan ki haliyle uygulama hata veriyor ama bunun yerine, lütfen geçerli bir değer giriniz gibi bir yanıt verip tekrardan hisse satış fiyatını sorup geçerli bir değer alana kadar uygulamanın tekrar etmesini istiyorum.
- Bu kısmın ne kadar mümkün olup olmadığını bilmiyorum ama alış fiyatı ve satış fiyatı kısmında float kullandığım için sayıları 5.12, 8.4 gibi girmek yani “.” kullanmak gerekiyor sayıları “.” ile yazmayınca program hata veriyor. Ben bunun böyle olmasını istemiyorum yani 5.12 yerine 5,12 yazarsa kullanıcı, program kabul etsin ama sayı değerli olmayan herhangi bir şey girerse hata mesajını ekrana yazsın ve doğru cevabı alana kadar aynı soruyu sorsun.
Teşekkürler.