Çözüldü Python'da yazdığım program

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

alpersamur3

Hectopat
Katılım
10 Mayıs 2020
Mesajlar
156
Merhaba. Python kullanarak bir bilgi yarışması oyunu yazdım deneyebilir misiniz?

Linkler, güvenlik amaçlı kaldırılmıştır. // Moderasyon Ekibi

İlgili dosya analiz edildi, temiz. Herhangi bir sıkıntı bulunamamıştır. Yine de EXE dosyası kaldırılıp konu başına kaynak kodlar eklenmiştir. // Moderasyon Ekibi. 22.32

@Vavien.
@Kerem00

Kodlar RAR;
Kodlar ZIP;
 
Son düzenleyen: Moderatör:
Çözüm
Os modülünü bir iki kere import etmek yerine en üstte ekleyebilirsiniz. Bir ya da iki satır da olsa kısa kod daha güzeldir bence.
Sys modülü ile "sys.exit()" kullanılabilir. Tercih meselesi.
İki adet "if" kullandığınız yerlerde zaten "if" başına %50 olasılık olacağı için "else" kullanabilirsiniz. Güzel gözüksün diye. Yine o kadar önemli değil.
E-posta doğru mu kontrolünü:
Python:
eposta = input("E-postanızı girin: ")
if "@" in eposta and eposta.endswith(".com"):
    ...
else:
    print("E-Posta hatalı, çıkış yapılıyor.")
    time.sleep(5)
    exit()
şeklinde yapabilirsiniz, hatalı olabilirim. Daha güzel yapabilecek yer bulursam güncellerim.
Belirteyim ki Python'da pek iyi değilim. Sadece öneri sundum, önerilerimin hepsi yanlış da olabilir. Elinize sağlık, hoş olmuş.
Python:
import time
import random
print("""|------------|
|Hoşgeldiniz!|
|------------|""")
try:
    yaşın=open("yaşlar.açtagörim","r+")
    yaşıntutuyomu=int(yaşın.read())
    yaşın.close()
    if yaşıntutuyomu<=13:
        print("Kanka yaşın küçük :( ")
        time.sleep(10)
        yaşın.close()
        exit()
    if yaşıntutuyomu>=14:
        print("Bilgilere ulaşıldı.Giriş yap bölümü açıldı.")
        hesabısilcenmi=input("Hesabınızı silmek için buraya 'hesabımı sil' yazınız.Silmeyecekseniz 1 yazınız.")
        if hesabısilcenmi=='hesabımı sil':
            import os
            os.remove("yaşlar.açtagörim")
            os.remove("kullanıcıbilgileri.açtagörim")
            os.remove("puan.açtagörim")
            puanoluştur=open("puan.açtagörim","x")
            yaşlarıoluştur=open("yaşlar.açtagörim","x")
            kullanıcıblglroluştur=open("kullanıcıbilgileri.açtagörim","x")
            puanoluştur.close()
            yaşlarıoluştur.close()
            kullanıcıblglroluştur.close()
            puanın=open("puan.açtagörim","w")
            puanın.write("0")
            print("Hesap silme başarılı.")
            print("Lütfen bu pencereyi kapatıp uygulamayı tekrar başlatınız.")
            time.sleep(60)
            exit()
        if hesabısilcenmi=='1':
            print('E-posta adresinizi giriniz.')
            epstsoru=input("")
            if len(epstsoru)<11:
                print("E-posta adresinizin bu kadar kısa olması imkansız.Uygulamayı tekrar başlatınız")
                time.sleep(10)
                exit
            girisgmailvarmi=epstsoru.find("@gmail.com")
            if girisgmailvarmi==-1:
                print("E-posta adresiniz hatalı lütfen uygulamayı yeniden başlatınız.")
                time.sleep(5)
                exit
            if girisgmailvarmi!=-1:
                if len(epstsoru)>=11:
                    klncblglr=open("kullanıcıbilgileri.açtagörim","r")
                    epstvarmı=klncblglr.read().find(epstsoru)
                    klncblglr.close()
                    if epstvarmı==-1:
                        print('E-posta adresiniz bulunamadı.Uygulamayı tekrar başlatıp tekrar deneyin.')
                        klncblglr.close()
                        time.sleep(10)
                        exit
                    else:
                        print('E-Posta adresiniz doğru')
                        sifresoru=input('Şifre Giriniz .')
                        if len(sifresoru)>15:
                            print("Arkadaşım şifren 15'ten büyük olamaz ki.Uygulamayı tekrar başlat.")
                            time.sleep(10)
                            exit
                        klncblglr=open("kullanıcıbilgileri.açtagörim","r")
                        sifrevarmi=klncblglr.read().find("a"+sifresoru+" ")
                        klncblglr.close()
                        if sifrevarmi==-1:
                            print('Hata şifreniz hatalı.Uygulamayı tekrar başlatıp tekrar deneyin.')
                            time.sleep(10)
                            exit()
                        else:
                            print('Şifreniz Doğru')
                            kullanıcıadısoru=input("Kullanıcı adınızı giriniz")
                            if len(kullanıcıadısoru)>15:
                                print("Dostum kullanıcı adının uzunluğu 15 ten uzun olamaz ki.Uygulamayı tekrar başlat")
                                time.sleep(10)
                                exit
                            klncblglr=open("kullanıcıbilgileri.açtagörim","r")
                            kullanıcıadıvarmi=klncblglr.read().find(" "+kullanıcıadısoru+" ")
                            if kullanıcıadıvarmi==-1:
                                print("Kullanıcı adınız yanlış.Uygulamayı başlatıp tekrar deneyin")
                                time.sleep(10)
                                exit
                            else:
                                print("Kullanıcı adınız doğru lütfen bekleyin...")
                                print("\n"*5000)
                                print("Hoşgeldiniz"+" "+kullanıcıadısoru+" "+"Geldiğiniz için teşekkürler.")
                                puanın=open("puan.açtagörim","r")
                                print("Puanınız: ",puanın.read())
                                başlama=input("Başlamak için 1 yazınız.")
                                if başlama=="1":
                                    try:
                                        while True:
                                            sorular=open("sorular.txt","r",encoding="UTF-8")
                                            şimdikisorun=sorular.readlines()
                                            print(şimdikisorun[0])
                                            cevap=input("Cevabı giriniz.")
                                            cevaplar=open("cevaplar.txt","r",encoding="UTF-8")
                                            cevaplarımız=cevaplar.readlines()
                                            cevabındoğrumu=cevaplarımız[0]
                                            cevaplar.close()
                                            sorular.close()
                                            cevapartın=cevap+'\n'
                                            def soru_sil():
                                                oku = open("sorular.txt","r")
                                                icerik=oku.readlines()
                                                del icerik[0]
                                                oku.close()
                                                yaz = open("sorular.txt","w")
                                                yaz.writelines(icerik)
                                                yaz.close()
                                            def Cevap_Sil():
                                                oku = open("cevaplar.txt","r")
                                                içerik=oku.readlines()
                                                del içerik[0]
                                                oku.close()
                                                yaz = open("cevaplar.txt","w")
                                                yaz.writelines(içerik)
                                                yaz.close()
                                            if cevap=="sil":
                                                import os
                                                os.remove("sorular.txt")
                                                os.remove("cevaplar.txt")
                                                print("Silme işlemi başarılı.İnternet sitesinden yeni dosyaları yükleyip uygulama klosörünün içine atınız.")
                                                time.sleep(10)
                                                exit()
                                            if cevapartın==cevabındoğrumu:
                                                Cevap_Sil()
                                                soru_sil()
                                                print("Cevabın Doğru")
                                                cevaplar.close()
                                                sorular.close()
                                                puan=open("puan.açtagörim","r")
                                                puanın=int(puan.read())
                                                güncelpuanın=puanın+100
                                                puan.close()
                                                puan=open("puan.açtagörim","w")
                                                puan.write(str(güncelpuanın))
                                                puan.close()
                                            if cevapartın!=cevabındoğrumu or "sil":
                                                print("Cevabın yanlış :( ")
                                                cevaplar.close()
                                                sorular.close()
                                                puan=open("puan.açtagörim","r")
                                                puanın=int(puan.read())
                                                güncelpuanın=puanın+(-50)
                                                puan.close()
                                                puan=open("puan.açtagörim","w")
                                                puan.write(str(güncelpuanın))
                                                puan.close()
                                    except:
                                        import os
                                        sorular.close()
                                        try:
                                            os.remove("cevaplar.txt")
                                            os.remove("sorular.txt")
                                            print("Ooo şampiyon soruları bitrdin.Devamı için internet sitesinden yeni soru ve cevapları indirin ve dosyaya atın.")
                                            time.sleep(10)
                                            exit()
                                        except FileNotFoundError:
                                            print("Ooo şampiyon soruları bitrdin.Devamı için internet sitesinden yeni soru ve cevapları indirin ve dosyaya atın.")
                                            time.sleep(10)
                                            exit()
                                else:
                                    print("Başlamak için 1 yazmanız gerekiyordu.Programı tekrar başlatınız.")
                                    time.sleep(10)
                                    exit()
except ValueError:
    print("Kayıtlı hesap bulunamadı.Lütfen kaydolun.Bu bildirim uygulamaların dosyaları silindiği için çıkabilir.")
    print('Lütfen yaşınızı Giriniz.')
    yaş=input("")
    intyaşın=int(yaş)
    if intyaşın < 13:
        yaşın=open("yaşlar.açtagörim","w+")
        yaşın.write(str(yaş))
        yaşın.close()
        print("Yaşınız bu programı kullanmaya yetmemektedir.")
        time.sleep(10)
        exit()
    if intyaşın>=13:
        print("""Yaşınız Uygun.Kayıt Olabilirsiniz.""")
        print('E-Posta adresi giriniz.')
        Eposta=str(input(""))
        gmailvarmi=Eposta.find("@")
        if gmailvarmi==-1:
            print("E-postanız hatalı.Programı tekrar başlatın.")
            time.sleep(10)
            exit()
        if gmailvarmi!=-1:
            epostalar=open("kullanıcıbilgileri.açtagörim","r+")
            Epostavarmı=epostalar.read().find(Eposta)
            if Epostavarmı!=-1:
                print("Bu E-posta adresi kullanılıyor...")
                epostalar.close()
                time.sleep(10)
                exit()
            if Epostavarmı==-1:
                epostalar.close()
                print('Kullanıcı Adı belirleyin.')
                kullanıcıadı=input("")
                kullanıcıadları=open("kullanıcıbilgileri.açtagörim","r")
                adkayıtlımı=kullanıcıadları.read().find(" "+kullanıcıadı+" ")
                if adkayıtlımı!=-1:
                    print("Bu kullanıcı adı kullanımda...")
                    time.sleep(10)
                    kullanıcıadları.close()
                    exit()
                if adkayıtlımı==-1:
                    kullanıcıadları.close()
                    if len(kullanıcıadı)>15 or len(kullanıcıadı)<3:
                        kullanıcıadları.close()
                        print('Kullanıcı adı uzunluğu 15 karakterden uzun 3 karakterden kısa olmamalıdır.Programı yeniden başlatıp bu kurala uyun')
                        time.sleep(5)
                        exit()
                    else:
                        kullanıcıadları.close()
                        print('Lütfen Şifre giriniz.')
                        şifre=input("")
                        şifreler=open("kullanıcıbilgileri.açtagörim","r")
                        şifrekullanımdamı=şifreler.read().find("a"+şifre+" ")
                        if şifrekullanımdamı!=-1:
                            print("Şifre kullanımda...")
                            şifreler.close()
                            time.sleep(10)
                            exit()
                        if şifrekullanımdamı==-1:
                            print("")
                        if len(şifre)>15 or len(şifre)<6:
                            print('Şifre uzunluğu 15 karakterden kısa 6 karakterden uzun olmalıdır.Programı yeniden başlatıp bu kurala uyun')
                            time.sleep(5)
                            exit()
                        if len(şifre)>=6 or len(şifre)<=15:
                            print(Eposta+" "+kullanıcıadı+" "+şifre+" "+'Onaylıyormusun?(Evet için 1,Hayır için 2 olarak cevap veriniz.)',sep=" ")
                            onay=input("")
                            if onay=='1':
                                klncblglr=open("kullanıcıbilgileri.açtagörim","w+")
                                klncblglr.write(Eposta+" ")
                                klncblglr.write(kullanıcıadı+' a')
                                klncblglr.write(şifre+" "+'\n')
                                klncblglr.close()
                                yaşın=open("yaşlar.açtagörim","w+")
                                yaşın.write(str(yaş))
                                yaşın.close()
                                print("""Hesap oluşturma başarılı.Lütfen bu pencereyi kapatıp uygulamayı tekrar başlatınız.|""")
                                time.sleep(10)
                                exit
                            if onay=='2':
                                while (onay=='2' or onay=='2'):
                                    Eposta=str(input(""))
                                    gmailvarmi=Eposta.find("@")
                                    if gmailvarmi==-1:
                                        print("E-postanız hatalı.Programı tekrar başlatın.")
                                        time.sleep(10)
                                        exit()
                                    if gmailvarmi!=-1:
                                        epostalar=open("kullanıcıbilgileri.açtagörim","r+")
                                        Epostavarmı=epostalar.read().find(Eposta)
                                        if Epostavarmı!=-1:
                                            print("Bu E-posta adresi kullanılıyor...")
                                            epostalar.close()
                                            time.sleep(10)
                                            exit()
                                        if Epostavarmı==-1:
                                            epostalar.close()
                                            print('Kullanıcı Adı belirleyin.')
                                            kullanıcıadı=input("")
                                            kullanıcıadları=open("kullanıcıbilgileri.açtagörim","r")
                                            adkayıtlımı=kullanıcıadları.read().find(" "+kullanıcıadı+" ")
                                            if adkayıtlımı!=-1:
                                                print("Bu kullanıcı adı kullanımda...")
                                                time.sleep(10)
                                                kullanıcıadları.close()
                                                exit()
                                            if adkayıtlımı==-1:
                                                kullanıcıadları.close()
                                                if len(kullanıcıadı)>15 or len(kullanıcıadı)<3:
                                                    kullanıcıadları.close()
                                                    print('Kullanıcı adı uzunluğu 15 karakterden uzun 3 karakterden kısa olmamalıdır.Programı yeniden başlatıp bu kurala uyun.')
                                                    time.sleep(5)
                                                    exit()
                                                else:
                                                    kullanıcıadları.close()
                                                    print('Lütfen Şifre giriniz.')
                                                    şifre=input("")
                                                    şifreler=open("kullanıcıbilgileri.açtagörim","r")
                                                    şifrekullanımdamı=şifreler.read().find("a"+şifre+" ")
                                                    if şifrekullanımdamı!=-1:
                                                        print("Şifre kullanımda...")
                                                        şifreler.close()
                                                        time.sleep(10)
                                                        exit()
                                                    if şifrekullanımdamı==-1:
                                                        print("")
                                                    if len(şifre)>15 or len(şifre)<6:
                                                        print('Şifre uzunluğu 15 karakterden kısa 6 karakterden uzun olmalıdır.Programı yeniden başlatıp bu kurala uyun')
                                                        time.sleep(5)
                                                        exit()
                                                    if len(şifre)>=6 or len(şifre)<=15:
                                                        print(Eposta+" "+kullanıcıadı+" "+şifre+" "+'Onaylıyormusun?(Evet için 1,Hayır için 2 olarak cevap veriniz.)',sep=" ")
                                                        onay=input("")
                                                        if onay=='1':
                                                            klncblglr=open("kullanıcıbilgileri.açtagörim","w+")
                                                            klncblglr.write(Eposta+" ")
                                                            klncblglr.write(kullanıcıadı+' a')
                                                            klncblglr.write(şifre+" "+'\n')
                                                            klncblglr.close()
                                                            yaşın=open("yaşlar.açtagörim","w+")
                                                            yaşın.write(str(yaş))
                                                            yaşın.close()
                                                            print("""Hesap oluşturma başarılı.Lütfen bu pencereyi kapatıp uygulamayı tekrar başlatınız.""")
                                                            time.sleep(10)
                                                            exit
                                                        if onay!='1'or'2':
                                                            print("""Evet için 1,hayır için 2 cevap vermediniz lütfen uygulamayı tekrar başlatınız.""")
                                                            time.sleep(7)
                                                            exit()
                            if onay!='1'or'2':
                                print("""Evet için 1,hayır için 2 cevap vermediniz lütfen uygulamayı tekrar başlatınız.""")
                                time.sleep(7)
                                exit()

Bellekte bilgi saklamak yerine dosyalarda saklayınca gereksiz uyarılar verilebiliyor. Kendi yazıp derlediğim C/C++ kodlarda da bazen karşıma çıkıyor.
Kodu sonradan sileceğim not alın.
Teşekkürler.
Eksiklerden birisi bu o zaman, o dosyalar olmadan da çalışıp dosya oluşturabilmeli.
Ama dosyada bir sürü soru cevap var ??
 
Kodlarını paylaştı arkadaş, bir sorun yok, bu kadar sinirlenmeye de gerek yok.

Konu sahibini zan altında bırakmak değil amacımız fakat önlem almak ve şüpheci olmak zorundayız zira birçok kişi sitede bulunuyor, zararlı bir yazılımın yayılmasını istemeyiz.

Fakat bu durum bana gösterdiki, kod paylaşımında yeni bir standart belirlememiz lazım. GitHub ya da Sosyal içinde bulunan kod kutucuğu gibi.

Ayrıca .exe dosyası yan dosyalar olmadan çalışamıyorsa bir sıkıntı var demektir.
 
Konu sahibini zan altında bırakmak değil amacımız fakat önlem almak ve şüpheci olmak zorundayız zira birçok işi sitede bulunuyor, zararlı bir yazılımın yayılmasını istemeyiz.

Fakat bu durum bana gösterdiki, kod paylaşımında yeni bir standart belirlememiz lazım. GitHub ya da Sosyal içinde bulunan kod kutucuğu gibi.

Ayrıca .exe dosyası yan dosyalar olmadan çalışamıyorsa bir sıkıntı var demektir.
Yan dosyalarda sorular ve cevaplar var. Veri tabanım olmadığından kullanıcı bilgilerini dosyaya yazıyor.
 
Yazılımla uğraşan herkesin zaten GitHub'unun olması bir keyfi durum değil. Zorunluluk zaten. Bütün repoların gizli de olsa çok büyük bir nimet GitHub.

Öğrenciyse ücretsiz Pro hakkından da yararlanılabilir üstelik.
 
Konu sahibini zan altında bırakmak değil amacımız fakat önlem almak ve şüpheci olmak zorundayız zira birçok kişi sitede bulunuyor, zararlı bir yazılımın yayılmasını istemeyiz.

Fakat bu durum bana gösterdiki, kod paylaşımında yeni bir standart belirlememiz lazım. GitHub ya da Sosyal içinde bulunan kod kutucuğu gibi.

Ayrıca .exe dosyası yan dosyalar olmadan çalışamıyorsa bir sıkıntı var demektir.
Ustad, el atmisken hangi dil sorusunu da sabitlesen?
 
Öğrenciyse ücretsiz Pro hakkından da yararlanılabilir üstelik.
Bu pro sadece GitHub içinde geçerli değil. Mesela Unity sadece şirketlere sunduğu bazı özelliklerini GitHub'da öğrenci olduğunu doğrulamış kişilere de veriyor. Yani GitHub olmazsa olmaz artık.
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı