Konuya girmeden önce :
Ben Python’u öğrenirken, dokümantasyon okumuyordum ki bir yazılım dili öğrenirken bu çok önemli bir şey. Fakat ben bunun değerini öğrendim. Sadece udemy üzerinden öğrendiklerimi devamlı olarak uygulaya uygulaya öğrenmeye çalıştım. Keşke yazbel’in Türkçe python dokümantasyonundan zamanında haberdar olsaydım diyorum şimdi.
Udemy üzerinden aldığım eğitim seti de kötü bir tercih oldu. Daha çok ezbere dayalı bir anlatıma maruz kaldığım için sıkıntılar çekiyorum.
söylediklerim dolayısıyla, python’da kesinlikle bilinmesi gereken bir takım şeyler bende eksik.
Bayağıdır, yazbelin Python belgelendirmesini okuyarak Python’u bir kere daha öğrenmeye çalıştım ve python’la yaptığım tek bir projede dahi kullanmadığım sözlük yapıları üzerinde durmaya karar verdim.
blocked_letters = {
"ç" : "c",
"ğ" : "g",
"ı" : "i",
"ö" : "o",
"ş" : "s",
"ü" : "u",
}
text = "türkçe yazı yazıyorum. ürünler kelimesinin içinde türkçe karakter vardır."
yasak_harfler = []
blocked_letters_in_text = []
for i in blocked_letters.keys():
yasak_harfler.append(i)
for i in text:
if i in yasak_harfler:
blocked_letters_in_text.append(i)
print(blocked_letters_in_text)
# Çıktı --> ['ü', 'ç', 'ı', 'ı', 'ü', 'ü', 'ç', 'ü', 'ç', 'ı']
sözlükleri kurcalamak adına şöyle bir şeyler denedim. Burada, oluşturduğum textin içindeki türkçe karakterleri, sözlük yapısı aracılığıyla taramaya çalıştım.
başarılı da oldu. Fakat daha sonra aklıma şu geldi. Bu textteki türkçe karakterleri, ingilizce karakterler olacak şekilde değiştirip geri bastırabilir miyim ? Bunu düşündüm ancak nasıl yapabileceğim hakkında bir fikrim yok. Bunu nasıl yapabilirim ?
Son olarak;
Ben daha önce arayüzlü, basit bir hesap makinesi yapmaya çalışmıştım ve üslü sayı hesaplaması için yazbel ailesinden yardım almıştım. Burada da sözlük yapısı kullanılmıştı fakat anlamamıştım.
Bana onun mantığını da açıklayabilir misiniz ?
superscript = {
"0": "\u2070",
"1": "\u00b9",
"2": "\u00b2",
"3": "\u00b3",
"4": "\u2074",
"5": "\u2075",
"6": "\u2076",
"7": "\u2077",
"8": "\u2078",
"9": "\u2079"
}
def get_superscript(x):
return "".join(superscript[i] for i in str(x))
def exponential_expression(x):
count = 2
while (y := math.log(x, count)) != int(y):
count += 1
return f"{count}{get_superscript(int(y))}"
try:
d = self.lineEdit.text()
self.lineEdit.setText(exponential_expression(x=int(d)))
except ValueError:
self.lineEdit.setText("Geçersiz İşlem")
self.label_2.setText(self.lineEdit.text())
Buradan da gördüğüm üzere sözlük yapısının gerçekten önemli bir şey olduğunu görüyorum. Bunu anlamak için de sizlerden birazcık yardım istiyorum.
Kodların tam hali burada