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