Python dilinde sleep komutu yapımı

GhostWarriorTR

Centipat
Katılım
29 Nisan 2021
Mesajlar
110
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
 
For loopunun içindeki if elselerin sonundaki sleep komutlarını çıkarın, loopun dışına alın.
 
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.
 

Geri
Yukarı