Python dilinde sleep komutu yapımı

GhostWarriorTR

Hectopat
Katılım
29 Nisan 2021
Mesajlar
129
Daha fazla  
Cinsiyet
Erkek
Kendimce bir program yapmaya çalışıyordum ki bir mantık hatası yapmışım. Yaptığım program girdiğiniz cümlenin her harfiyle girdiğiniz sayı değeri kadar alfabetik değerini arttırarak şifre oluşturmayı sağlıyor. Her seferinde menü çıkınca yazılar birikiyordu o yüzden clear komudunu denedim. İşe yaradı ama harfler yazılırken 3 saniye bekletmesi gerekiyordu. Harfler bitince de her şey 3 saniye içinde siliniyor ve tekrar yazmanız gerekiyor. Harflerin yazımını hemen yapıp harfler tamamlanınca bekleme kodunu nasıl yapabiliriz? İngilizcem de pek iyi olmadığından bu konuyu Stackoverflow'a yazamadım.
Python:
import os
from time import sleep

# Türk alfabesindeki harflerin sıralama değerlerini bir dictionary içinde saklıyoruz
alphabet = {"a":0, "b":1, "c":2, "ç":3, "d":4, "e":5, "f":6, "g":7, "ğ":8, "h":9, "ı":10, "i":11, "j":12, "k":13, "l":14, "m":15, "n":16, "o":17, "ö":18, "p":19, "r":20, "s":21, "ş":22, "t":23, "u":24, "ü":25, "v":26, "y":27, "z":28}

# Komut dizesindeki geçmişi silmeyi tanımlıyoruz
def clear():
    if os.name == 'nt':
        _ = os.system('cls')

# Menüyü tasarlıyoruz
def anaMenu():
    clear()
    print("----------- Şifre Yapıcı -----------\n")
    print("(1) Bilgilendirme")
    print("(2) Şifre yap")
    print("(3) Programı sonlandır")

# İşlemlerin başladığı yer burası
while True:
    anaMenu()
    menu = int(input("L-tfen yapmak istediğiniz işlemi seçiniz: "))
    if menu == 1:
        print("Bu program girdiğiniz cümlenin her harfiyle girdiğiniz sayı değeri kadar alfabetik değerini arttırarak şifre oluşturmanızı sağlar")
        sleep(7)
    if menu == 2:
        sayi = int(input("Harflerin sayı değerini arttıracak sayıyı yazınız: "))
        #  Kullanıcının girdiği cümleyi alıyoruz
        sentence = input("\nLütfen bir cümle giriniz: ")
        for letter in sentence:
            if letter in alphabet:
                num = (alphabet[letter] + sayi) % 30
                for key, value in alphabet.items():
                    if value == num:
                        print(key, end="")
                        sleep(3)
            else:
                print(letter, end="")
                sleep(3)
       
    if menu == 3:
        break
 
Kendimce bir program yapmaya çalışıyordum ki bir mantık hatası yapmışım. Yaptığım program girdiğiniz cümlenin her harfiyle girdiğiniz sayı değeri kadar alfabetik değerini arttırarak şifre oluşturmayı sağlıyor. Her seferinde menü çıkınca yazılar birikiyordu o yüzden clear komudunu denedim. İşe yaradı ama harfler yazılırken 3 saniye bekletmesi gerekiyordu. Harfler bitince de her şey 3 saniye içinde siliniyor ve tekrar yazmanız gerekiyor. Harflerin yazımını hemen yapıp harfler tamamlanınca bekleme kodunu nasıl yapabiliriz? İngilizcem de pek iyi olmadığından bu konuyu Stackoverflow'a yazamadım.
Python:
import os
from time import sleep

# Türk alfabesindeki harflerin sıralama değerlerini bir dictionary içinde saklıyoruz
alphabet = {"a":0, "b":1, "c":2, "ç":3, "d":4, "e":5, "f":6, "g":7, "ğ":8, "h":9, "ı":10, "i":11, "j":12, "k":13, "l":14, "m":15, "n":16, "o":17, "ö":18, "p":19, "r":20, "s":21, "ş":22, "t":23, "u":24, "ü":25, "v":26, "y":27, "z":28}

# Komut dizesindeki geçmişi silmeyi tanımlıyoruz
def clear():
    if os.name == 'nt':
        _ = os.system('cls')

# Menüyü tasarlıyoruz
def anaMenu():
    clear()
    print("----------- Şifre Yapıcı -----------\n")
    print("(1) Bilgilendirme")
    print("(2) Şifre yap")
    print("(3) Programı sonlandır")

# İşlemlerin başladığı yer burası
while True:
    anaMenu()
    menu = int(input("L-tfen yapmak istediğiniz işlemi seçiniz: "))
    if menu == 1:
        print("Bu program girdiğiniz cümlenin her harfiyle girdiğiniz sayı değeri kadar alfabetik değerini arttırarak şifre oluşturmanızı sağlar")
        sleep(7)
    if menu == 2:
        sayi = int(input("Harflerin sayı değerini arttıracak sayıyı yazınız: "))
        #  Kullanıcının girdiği cümleyi alıyoruz
        sentence = input("\nLütfen bir cümle giriniz: ")
        for letter in sentence:
            if letter in alphabet:
                num = (alphabet[letter] + sayi) % 30
                for key, value in alphabet.items():
                    if value == num:
                        print(key, end="")
                        sleep(3)
            else:
                print(letter, end="")
                sleep(3)
      
    if menu == 3:
        break
os.sleep() veya time.wait() kullanmanız yeterlidir. Altınada clear yaparsınız.
 

Technopat Haberler

Geri
Yukarı