İngilizce kelimeler öğrenmek için küçük bir script

# -*- coding: utf-8 -*-
import os
import time
import random
import requests
from bs4 import BeautifulSoup


# Hedef siteye bir istekte bulunuyoruz.
r = requests.get('https://blog.konusarakogren.com/en-cok-kullanilan-ingilizce-kelimeler-ve-anlamlari/#a-ile-baslayan-ingilizce-kelimeler')
# BeautifulSoup modülü ile sitenin içeriğini 'html.parser'
# ile parse edip source değişkenine atıyoruz.
source = BeautifulSoup(r.content, 'html.parser')

# find_all metodu ile sitedeki tüm 'td' etiketleri üzerinde geziyoruz.
# özel işaretçisi 'class' olan ve ismi de 'column-1' olan tüm
# 'td' etiketlerini search_english_words değişkenine atıyoruz.
search_english_words = source.find_all('td', {'class':'column-1'})
# Aynı işlemi Türkçe kelimeler için de yapıyoruz.
search_turkish_words = source.find_all('td', {'class':'column-2'})


def words():
	# Kelimeleri ayrı ayrı barındırmak için 2 tane boş liste oluşturduk.
	english_words = []
	turkish_words = []

	# Siteden çektiğimiz kelimeler üzerinde for döngüsü ile geziyoruz.
	# Türkçe ve İngilizce kelimeleri ayıklıyoruz.
	for e, t in zip(search_english_words, search_turkish_words):
		english_words += e
		turkish_words += t

	# Sözlüğümüzü oluşturduk.
	dictionary = {}

	# Ayıklanmış kelimeler üzerinde geziyoruz. İngilizce kelimeleri
	# key olarak, Türkçe kelimeleri de value olarak sözlüğümüze atıyoruz.
	for x, y in zip(english_words, turkish_words):
		dictionary[x] = y

	# play() fonksiyonumuzda sözlüğümüzü kullanabilmemiz için
	# sözlüğümüzü return ediyoruz
	return dictionary

def play():
	while True:
		# words() fonksiyonunda return ettiğimiz sözlüğümüzün
		# key lerini list() metoduyla listeye çevirip
		# bize rastgele bir kelime döndürmesi için
		# choice() metoduna parametre olarak veriyoruz.
		mix = random.choice(list(words().keys()))

		# Doğru cevabı elimizde tutmak için
		# sözlüğümüzün key leri içinde mix değişkeninde
		# çıkan rastgele kelime hangi key e denk geliyorsa
		# o key i correct_answer değişkenimize atıyoruz.
		correct_answer = words()[mix]

		# Soruyu soruyoruz.
		quest = input(f'{mix}: ')

		# Kullanıcı girdisi correct_answer ile eşleşiyorsa
		if quest == correct_answer:
			print('\nCorrect!')
			# 3 saniyeliğine programı uyutuyoruz
			time.sleep(3)
			# Görüntü kirliliği olmaması için
			# her sorudan sonra terminali temizliyoruz.
			# Bu komut hem windows hem de Linux'da çalışır.
			os.system('cls||clear')
		# Kullanıcı girdisi 'q' ise döngüyü bitir.
		elif quest == 'q':
			break
		# Kullanıcı girdisi correct_answer ile eşleşmediği
		# sürece tüm durumlara karşı bu bloğu çalıştırıyoruz.
		else:
			print(f'\nWrong! : {correct_answer}')
			time.sleep(3)
			os.system('cls||clear')

#Fonksiyonumuzu çağırıyoruz.
play()
1 Beğeni