Python'da metin belgesi açma yazdırma ve içindeki değerleri geri döndürme

Katılım
6 Haziran 2019
Mesajlar
845
Çözümler
6
Merhaba

Can sıkıntısına kendimce bir uygulama geliştirmek istedim ve kafamda nasıl bir şey olacağını düşünerek bunları not defterine kaydettim.

ÖĞRENCİ KAYIT VE NOT ORTALAMA HESAPLAMA UYGULAMASI

Değişkenler:

> MenuGoster
> KayitOl
> BilgileriGor
> OrtHesapla
> YapimciGoster
> Cikis

Kullanıcının görebileceği bir menü oluştur.

1. Adım: Öğrencinin; Ad, Soyad, ve TC No bilgilerini al.

2. Adım: Alınan öğrenci bilgilerini bir txt dosyasına yazdır ve sakla.

3. Adım: Öğrenci istediği zaman bilgilerini ekrana yazdır.

4. Adım: Öğrencinin birinici, ikinici ve üçüncü sınav notlarını al.

5. Adım: Alınan 3 sınav notunun ortalamasını hesapla ve öğrenciye hangi puanı aldığını ve geçip geçmediğini yazdır.

6. Adım: Uygulamayı kimin yaptığına dair bilgi gir.

7. Adım: Kullanıcı bir tuşa bastığında uygulamadan çıksın.

Uygulama bu şekilde olacak fakat 2. adımı yapamadım öğrencinin bilgilerini aldıktan sonra bunu bir txt dosyasında saklayıp bilgileri gör dendiğinde kişinin karşısına bilgilerinin gelmesini istiyorum. Bunu nasıl yapabilirim yardımcı olabilir misiniz.

Ek olarak MenuGoster fonksiyonunu altındaki menüyü nasıl sürekli ekrana yazdırabilirim. Mesela uygulamayı çalıştırıyorum 1'e bastığımda ad soyad ve tc girerek kayıt oluyorum fakat menü karşıma tekrar çıkmıyor sürekli programı yeniden başlatmam gerekiyor.


[CODE lang="python" title="ÖĞRENCİ KAYIT VE NOT ORTALAMA HESAPLAMA UYGULAMASI"]

import time

def MenuGoster():

print("\n" "ÖĞRENCİ KAYIT VE NOT ORTALAMA HESAPLAMA UYGULAMASI")
print("###########################################")
print("1) Kayıt Ol")
print("2) Bilgileri gör")
print("3) Ortalama hesapla")
print("4) Yapımcı göster")
print("5) Uygulamadan çıkmak için exit yazın.")
print("###########################################")
secim = input("Lütfen bir seçim yapın: ")
if secim == "exit":
print("Çıkış Yapılıyor...")
time.sleep(3)
exit(0)

secim = int(secim)

if secim == 1:
ad = str(input("Lütfen adınızı giriniz: "))
soyad = str(input("Lütfen soyadınızı giriniz: "))
tcno = str(input("Lütfen TC Kimlik numaranızı giriniz: "))
print("Kaydınız Oluşturuluyor... Lütfen bekleyin...")
time.sleep(2)
print("Kaydınız Oluşturuldu.")

if secim == 2:
print("Bilgileriniz yükleniyor...")
time.sleep(1)
print("Adınız: ", ad)
print("Soyadınız: ", soyad)
print("TC Kimlik Numaranız: ", tcno)

if secim == 3:
not1 = int(input("Lütfen 1. Sınav notunuzu girin: "))
not2 = int(input("Lütfen 2. Sınav notunuzu girin: "))
not3 = int(input("Lütfen 3. Sınav notunuzu girin: "))
print("Not ortalamanız hesaplanıyor... Lütfen bekleyiniz...")
time.sleep(3)
ortalama = (not1 + not2 + not3) / 3
if ortalama > 90 and ortalama < 100:
print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > AA < Geçtiniz")
if ortalama > 85 and ortalama < 89:
print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > BA < Geçtiniz")
if ortalama > 80 and ortalama < 84:
print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > BB < Geçtiniz")
if ortalama > 75 and ortalama < 79:
print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > CB < Geçtiniz")
if ortalama > 70 and ortalama < 74:
print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > CC < Geçtiniz")
if ortalama > 65 and ortalama < 69:
print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > DC < Geçtiniz")
if ortalama > 60 and ortalama < 64:
print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > DD < Geçtiniz")
if ortalama > 0 and ortalama < 59:
print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > FF < Kaldınız")

if secim == 4:
print("Uygulama Yapımcı: >>> Routinues <<<")

MenuGoster()
[/CODE]
 
Son düzenleyen: Moderatör:
Kendi txt reader kodlarını yazarak yapabilirsin ama bence gereksiz olur. Çünkü bunun için zaten tüm dünyanın kullandığı bir yapı var. Json. Verileri Json formatında kaydedip basitçe Json parse ile verilerini tekrar alabilirsin. Python da bunu yapmak kolaydı ama hatırlamıyorum. Python Json parse yazarak ulaşabilirsin.

Tüm işlemleri menuGoster fonksiyonuna yazmışsın. Olmaz böyle. Her seçeneği farklı bir fonksiyona taşı. Menu göster fonksiyonun da sadece print işlemleri kalsın. Ana fonksiyon da ise switch yapın olsun.
 
Python:
import time
import json


def MenuGoster():
    while True:
        time.sleep(1)
        print("\n" "ÖĞRENCİ KAYIT VE NOT ORTALAMA HESAPLAMA UYGULAMASI")
        print("###########################################")
        print("1) Kayıt Ol")
        print("2) Bilgileri gör")
        print("3) Ortalama hesapla")
        print("4) Yapımcı göster")
        print("5) Uygulamadan çıkmak için exit yazın.")
        print("###########################################")
        secim = input("Lütfen bir seçim yapın: ")
        if secim == "exit":
            print("Çıkış Yapılıyor...")
            time.sleep(3)
            exit(0)
        secim = int(secim)
 
        if secim == 1:
            ad = str(input("Lütfen adınızı giriniz: "))
            soyad = str(input("Lütfen soyadınızı giriniz: "))
            tcno = str(input("Lütfen TC Kimlik numaranızı giriniz: "))
            print("Kaydınız Oluşturuluyor... Lütfen bekleyin...")
            with open('hesaplar.json', 'r') as f:
                hsplr = json.load(f)
            if ad in hsplr:
                print('Böyle bir kullanıcı zaten var!')
                break
            else:
                hsplr[ad] = {"soyad": soyad,
                "T.C": tcno}

                with open("hesaplar.json", 'w') as f: #hesaplar.json adında bir dosya oluşturmanız lazım.
                    f.write(json.dumps(hsplr, sort_keys=True, indent=4, separators=(',', ': ')))

                f.close()

                print("Kaydınız Oluşturuldu.")

        if secim == 2:
            print("Bilgileriniz yükleniyor...")
            time.sleep(1)
            print("Adınız: ", ad)
            print("Soyadınız: ", soyad)
            print("TC Kimlik Numaranız: ", tcno)

        if secim == 3:
            not1 = int(input("Lütfen 1. Sınav notunuzu girin: "))
            not2 = int(input("Lütfen 2. Sınav notunuzu girin: "))
            not3 = int(input("Lütfen 3. Sınav notunuzu girin: "))
            print("Not ortalamanız hesaplanıyor... Lütfen bekleyiniz...")
            time.sleep(3)
            ortalama = (not1 + not2 + not3) / 3
            if ortalama > 90 and ortalama < 100:
                print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > AA < Geçtiniz")
            if ortalama > 85 and ortalama < 89:
                print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > BA < Geçtiniz")
            if ortalama > 80 and ortalama < 84:
                print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > BB < Geçtiniz")
            if ortalama > 75 and ortalama < 79:
                print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > CB < Geçtiniz")
            if ortalama > 70 and ortalama < 74:
                print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > CC < Geçtiniz")
            if ortalama > 65 and ortalama < 69:
                print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > DC < Geçtiniz")
            if ortalama > 60 and ortalama < 64:
                print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > DD < Geçtiniz")
            if ortalama > 0 and ortalama < 59:
                print("Not ortalamanız: {0}".format(ortalama), "Puanınız: > FF < Kaldınız")

        if secim == 4:
            print("Uygulama Yapımcı: >>> Routinues <<<")
    
MenuGoster()

Hocam istediklerinizi kodunuza ekledim. hesap makinesinin olduğu yere hesaplar.json diye bir dosya açmanız yeterli.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…