import  random

print("""
-------------------
Parola Oluşturucu
-------------------

Çıkış için :'Q' tuşlayınız.

Oluşturmak istediğiniz parolaya için aşağıdaki soruları cevaplayınız.
 
                                                          #Quality38
""")


while True:
    print("Hoşgeldiniz.")

    max = (input("Max parola uzunluğu kaç olsun: "))

    if (max == "Q"):
        print("\n")
        print("Program sonlandırılıyor...")
        break

    min = (input("Min parola uzunluğu kaç olsun: "))

    if (min == "Q"):
        print("\n")
        print("Program sonlandırılıyor...")
        break




    max =int(max)
    min = int(min)
    sayılar = (0,1,2,3,4,5,6,7,8,9)
    harfler = "qwertyuıopğüişlkjhgfdsazxcvbnmöçÇÖMNBVCXZASDFGHJKLŞİÜĞPOIUYTREWQ"
    özel_krk =  "'!#@.,$"""

    parola = ""

    parola = list()
    harflerL = list(harfler)
    özel_krkL = list(özel_krk)


    print("\n")
    sayı=input("Parola sayı içersin mi? [E/H]: ")
    print("\n")

    if (sayı=="E"):                                    #KENDİME NOT:
        for i in sayılar:                              #sayı=H 'yi yukarı çek, eğer hepsi H olursa  if(i==min) break
            baslangic=0                              #şeklinde yap.
            if int((baslangic<max/3)):
                a=random.choice(sayılar)
                baslangic +=2
                if (i==min):
                    break


                parola.append(a)
                print("Parola: ",parola)


    elif(sayı =="H"):
        print("\n")
        print("Parola sayı içermeyecek...")

        print("\n")



    elif (sayı == "Q"):
        print("\n")
        print("Program sonlandırılıyor...")
        break


    harf = input("Parola harf içersin mi? [E/H]: ")
    print("\n")

    if (harf=="E"):

        baslangic=0
        for i in harflerL:
            if(baslangic<max/3):
                baslangic +=2
                b=random.choice(harflerL)

                parola.append(b)
                print("Parola: ", parola)

    elif(harf =="H"):
        print("\n")
        print("Parola harf içermeyecek...")
        print("\n")

    elif (harf == "Q"):
        print("\n")
        print("Program sonlandırılıyor...")
        break


    ökrk= input("Parola özel karakter içersin mi? [E/H]: ")
    print("\n")

    if(ökrk=="E"):
        baslangic = 0
        for i in özel_krkL:
            if (baslangic < max / 3):
                baslangic += 1
                c = random.choice(özel_krkL)

                parola.append(c)
                print("Parola: ", parola)


    elif(ökrk =="H"):
        print("\n")
        print("Parola özel karakter içermeyecek...")
        print("\n")

    elif (ökrk == "Q"):
        print("\n")
        print("Program sonlandırılıyor...")
        break

    if (ökrk =="H" and sayı=="H" and harf =="H"):
        print("\n")
        print("Parolanız en az bir seçenği içermelidir. Lütfen tekrar deneyin....")
        continue









    while True:
            if (len(parola) > max):
                random.shuffle(parola)  #Parola listesindeki elemanların sırasını rastgele karıştırdık.
                parola.pop()

                print("Fazla elemanar atıldı, yeni parola:",parola)
                break

    str1 = ''.join(str(e) for e in parola)
    print("\n")

    print("Oluşturulan parolanız: ",str1)
    break



















