• 04-05-2022, 15:46:42
    #1
    Merhabalar, Python da basit bir kullanıcı girişi uygulaması deniyordum. bir şifre oluşturucu dosyası oluşturdum ve şu kodları yazdım.

    from random import randint,choice
    
    def generatePass(n):
        for i in range(n):
            wordK = choice(["a","b","c","ç","d","e","f","g","ğ","h","ı","i","j","k","l","m","n","o","ö","p","r","s","ş","t","u","ü","v","y","z","x"])
            wordB = choice(["A","B","C","Ç","D","E","F","G","Ğ","H","I","İ","J","K","L","M","N","O","Ö","P","R","S","Ş","T","U","Ü","V","Y","Z","X"])
            vipWord = choice([".","!","'","+","%","&","/","(",")","[","]","=","?","_",">","£","#","$","½","{","*","}","-","|"])
            number = randint(0, 10)
    
            print(f"{wordK}{number}{wordB}{vipWord}",end="")
            
    def generateNumber(n):
        for i in range(n):
            number = randint(0, 9)
            print(number,end="")
    Daha sonra main.py dosyamı oluşturdum ve kullanıcı girişi arayüzünü tamamladım. generate.py dosyasını ekledim. ancak ne kadar denesemde kodu doğru yazsamda asla if bloğuna girmiyor. main.py kodlarım:
    from numpy import intp
    from generate import generateNumber, generatePass
    from os import system
    from time import sleep
    
    def main():
    kulGir()
    
    def kulGir():
    system("cls")
    username = str(input("Username : "))
    password = str(input("Password : "))
    
    while True:
    system("cls")
    kod = str(generateNumber(6))
    dogrulama = input("nYukardaki Kodu giriniz : ")
    if kod != dogrulama:
    print("kod Yanlış")
    sleep(0.5)
    else:
    print(f"Hoşgeldiniz {username} ")
    break
    
    if __name__ == "__main__":
    main()
    kod ve doğrulama yı int() içine aldım denedim hata verdi. str() içine aldım gene hata verdi.kod un type ına baktım NonType diyor. dogurlamanın type ı string .Hatalı gördüğünüz bir yer olursa lütfen söyleyiniz. şimdiden teşekkür ederim.
  • 04-05-2022, 15:50:41
    #2
    Eğer syntax'ı bu şekildeyse tamamen yanlış bir kere. Girintileri düzelterek dener misiniz?
  • 04-05-2022, 15:54:13
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Hatayı atsanız daha iyi olabilir. inputları str içerisine almanıza gerek yok çıktısı zaten string.
  • 04-05-2022, 15:57:24
    #4
    LocatioFirst adlı üyeden alıntı: mesajı görüntüle
    Hatayı atsanız daha iyi olabilir. inputları str içerisine almanıza gerek yok çıktısı zaten string.
    else bloğuna girmiyor sürekli ekrana if bloğundaki kod yanlışı bastırıyor. while la olduğu için sürekli aynı soruyu soruyuor. yani herhangi bir hata vermiyor.
  • 04-05-2022, 15:59:04
    #5
    FVuar adlı üyeden alıntı: mesajı görüntüle
    else bloğuna girmiyor sürekli ekrana if bloğundaki kod yanlışı bastırıyor. while la olduğu için sürekli aynı soruyu soruyuor. yani herhangi bir hata vermiyor.
    İf bloğundaki kodlar while'dan sonra algılanıyor. İf ile birlikte if bloğunun kodlarını TAB ile iç satıra alın.
  • 04-05-2022, 16:01:00
    #6
    LocatioFirst adlı üyeden alıntı: mesajı görüntüle
    İf bloğundaki kodlar while'dan sonra algılanıyor. İf ile birlikte if bloğunun kodlarını TAB ile iç satıra alın.
    hocam r10 a atınca yamuldu kodlar. normalde böyle duruyor.

    main.py


    generate.py
  • 04-05-2022, 16:01:27
    #7
    Python Coder
    def generateNumber: fonksiyonu return etmiyor o yüzden kod değişkeni None olur , fonksiyon içinde return ile bir veri dönderirseniz o zaman None olmaktan çıkabilir
  • 04-05-2022, 16:03:40
    #8
    İf kod != int(dogrulama):

    Pardon str içine almışsınız yukarıda. Fonksiyonda hata var. Çıktıyı boş olarak veriyor
  • 04-05-2022, 16:25:24
    #9
    @LocatioFirst; t; ve @keremyagan; çok teşekkür ederim baya bir karışık oldu kodlarım ancak çalışır vaziyette.



    @keremyagan; dediğin gibi return etmek gerekiyormuş return edince tipi integer oldu.