برنامه مترجم انلاین از طریق دیکشنری در پایتون


آرتادخت برای پایان نامه ی دانشگاهش در حال آماده سازی یک مترجم آنلاین هستش. مترجم آنلاینی که آرتادخت داره آماده می کنه یک دیکشنری داره و در انتها این مترجم باید یک جمله را ترجمه کند.

در خط اول ورودی یک عدد n وجود دارد که نمایانگر تعداد کلمات دیکشنری است. هر یک از n خط بعدی شامل دو کلمه است که نشان می دهد کلمه ی دوم معنی کلمه ی اول است. خط بعدی شامل یک جمله است. یک جمله شامل چند کلمه می باشد که با space از هم جدا شده اند. حال شما باید به آرتادخت کمک کنید و مترجمی بنویسید که دیکشنری و جمله ی مربوطه را از ورودی بخواند و جمله را ترجمه کند. در پروسه ی ترجمه اگر کلمه ای در دیکشنری وجود نداشت خود کلمه را در خروجی چاپ کنید. برای اطلاعات بیشتر به ورودی نمونه و خروجی نمونه توجه کنید.

نکته: سیستم داوری آنلاین از پایتون 3.4 استفاده می کند، در این نسخه دیکشنری ها ترتیب ورود اطلاعات به خود را به یاد نمی آورند و ممکن است در صورت مرتب سازی آنها به نتیجه مطلوب نرسید، برای رفع این مشکل به جای dict از OrderedDict استفاده کنید، این ساختار داده را می توانید از کتابخانه collections در برنامه وارد کنید.

ورودی نمونه:

5
hello salam
goodbye khodafez
say goftan
we ma
you shoma
we say goodbye to you tonight


خروجی نمونه:

ma goftan khodafez to shoma tonight

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 4 سال پیش
my_input=int(input())
tedad=0
class_list = dict()
while tedad != my_input:
 data = input()
 tedad +=1
 temp = data.split(' ')
 class_list[temp[0]] = (temp[1])
 

jomle = input()
lst = jomle.split()
j = ''

for i in lst:
 if i in class_list:
 j = j + class_list.get(i) + ' '
 else:
 j = j + i + ' '

print(j)
sokanacademy forum
کاربر سکان آکادمی 3 سال پیش

tedad = input ('')

tedad = int(tedad)

l2=[]

e2p = dict()

#momed_mz

for english in range(tedad):
 english,persion = input ('').split(' ')
 e2p[english] = persion

text_enghlishi = input('')
l1 = text_enghlishi.split(' ')


for i in l1:
 loghat=(e2p[i])
 l2.append(loghat)

text_farsi=' '.join(l2)

print(text_farsi)
sokanacademy forum
کاربر سکان آکادمی 3 سال پیش

😎

c=dict()
x=int(input())
for i in range(x):
 y=input()
 l=y.split()
 c[l[0]]=l[1]
m=[] 
t=input()
t=t.split()
for j in t:
 m.append(c.get(j,j))
print(' '.join(m)) 

sokanacademy forum
کاربر سکان آکادمی 3 سال پیش

✅💙

# this is program a motarjem online
tedad_kalamat = int(input())
dictionary = {}
for radif in range (0, tedad_kalamat):
....kalameh = input()
....kalameh = kalameh.split(' ')
....dictionary[kalameh[0]] = kalameh[1]
 
jomle = input()
jomle = jomle.split(' ')
jomle_jadid = []

for kalameh in jomle:
....jomle_jadid.append(dictionary.get(kalameh, kalameh))
print(' '.join(jomle_jadid))
online-support-icon