def gecmehesaplama(satir):
satir = satir[:-1]
liste = satir.split(",")
isim = liste[0]
ortalama = int(liste[1]) * 0.3 + int(liste[1]) * 0.4 + int(liste[2])
genelnot = 0
if ortalama >= 85:
genelnot = "AA"
elif ortalama >= 70:
genelnot = "BB"
elif ortalama >= 50:
genelnot = "CD"
else:
genelnot = "TT"
return ortalama,isim,genelnot + "\n"
with open("dosya.txt","r",encoding= "utf8") as file:
for i in file:
if gecmehesaplama(i)[0] < 50:
with open("Kalanlar.txt","a",encoding= "utf-8") as file1:
file1.write(gecmehesaplama(i)[1] +" " + gecmehesaplama(i)[2]+"\n")
else:
with open("Gecenler.txt", "a", encoding="utf-8") as file2:
file2.write(gecmehesaplama(i)[1] + " " +gecmehesaplama(i)[2]+"\n")
İyi akşamlar herkese böyle bir program yaptım.Notlarından dolayı kalanları bir klasöre,geçenleri ise geçenlerin olduğu klasöre yazıyor.
Bu programda tavsiye edebileceğiniz birşey var mıdır acaba?(Daha kısa ve öz bir program yazmak için)
Cevaplarınızı bekliyorum,teşşekkürler
Anladığım kadarıyla verileri bizim daha önce oluşturmuş olduğumuz “dosya.txt” metin belgesinden alacak. Ancak verilerin bu dosyaya kaydediliş formatını belirtmediğinizden, ben test edemedim.
“genelnot” değişkenine bir integer değer (0) atayarak tanımladıktan sonra onu bir string ifadesi olarak (“AA”, “BB” vs.) kullandığınız dikkatimi çekti.
Bir de, çalışmasına etki edeceğinden değil ama daha sonrası için veya geliştirmeye katkı sağlayacak olan başkaları için, değişken isimlerini belirli standartlarda ve açıklayıcı biçimde vermeniz çok daha iyi olur. Örneğin bu kodlarda ortalama, genelnot gibi değişken isimleri bulunuyorken birden karşımıza bir file çıkıyor. Ardından, file1 veya file2 gibi isimler yerine kalanlar_dosyasi veya gecenler_dosyasi gibi isimler tercih edilebilir. Türkçe veya İngilizce olmasından ziyade (tüm değişkenlerin aynı dilde olması şartıyla) isimlendirme kuralları bakımından da (camelcase, snakecase gibi) bir standartta olması daha iyi olur.