Konuyu Oyla:
  • Toplam: 1 Oy - Ortalama: 2
  • 1
  • 2
  • 3
  • 4
  • 5
Basit Çeviri Programı Python 3
#1
Kod:
def anlam(kelime):
    
    try:
        data = translator.translate(kelime,dest='tr').extra_data['all-translations'][0][2]
            
        return [data[i][0] for i in range(len(data))]
     
    except:
            
        data = translator.translate(kelime,dest='tr').text
         
        return [data]
         


def yakinanlam(kelime):
    
    try:
        
        data2 = translator.translate(kelime,dest='tr').extra_data['all-translations'][0][2]
        return [data2[i][1] for i in range(len(data2))]
            
    except:
        
        return ''
             

def calistir():

       
    kelime = input('Kelime gir: ')
    print('-'*55,end='\n\n')
    ana_anlam = anlam(kelime)
    yan_anlam = yakinanlam(kelime)
    bosluk = len(max(ana_anlam,key=len))
    
    if yan_anlam == '':
        
        print('{}'.format(*ana_anlam))
        
    else:
        for i in range(len(ana_anlam)):
            print('{:<{width}}:'.format(ana_anlam[i],width=bosluk+5),','.join(yan_anlam[i]),end='\n\n')
        

if __name__ == '__main__':
    try:
        
        from googletrans import Translator
        
    except:
        
        import os
        os.system('pip install googletrans')
        from googletrans import Translator
        
    finally:
        
        translator = Translator()
        
    while True:
        calistir()

basit ama, bir yerden başlamak lazım Smile

googletrans modülünü kullandım. Google kendi api'si ile yapacaktım aslında fakat limit koyması ve çeşitli bilgiler istemesi sebebiyle vazgeçtim.

Tavsiye ve eleştirilerinizi bekliyorum.
Ara
Cevapla
#2
öncelikle bir yerden başlaman kesinlikle çok iyi, çünkü program yazdıkça kendini geliştiriyor herkes. Yoksa Türkçe veya ingilizce kaynaklara kuru kuru bakmak bir şey ifade etmiyor, zaten bir süreden sonra insan kendi programını yazmak istiyor.

Gelelim tavsiye ve eleştirilere Smile

Şimdi google apisi kullanman güzel olurdu ama yine de başka bir modül kullanman da çok iyi, yani pip kullanmaya başlamışsın ve harici modüllerin bilincindesin. Zaten eğer varsa sitelerden veri çekmek yerine api veya modül kullanmak çok daha iyidir. Çünkü daha stabildir ve kullanımı daha pratiktir. Ama kodu vermeden önce kullanıcılar için googletrans modülünü nasıl yükleyecekleri hakkında ufak bir bilgilendirme yapabilirdin. "pip3 install googletrans" gibi... Ya da istisna yönetimi (try-except) ile modülü kendin de yükletebilirdin

PHP Kod:
import os
try:
    
import googletrans
except
:
    
os.system("pip3 install googletrans")
    
import googletrans 

gibi...

ikinci olarak listelerle uğraşmayabilirdin; çünkü fonksiyonlara baktım parametre kullanmışsın, return kullanmışsın, eee fonksiyon geriye boş dönüyor zaten içinde listelere ekleme yapmışsın ana fonksiyonda o listeleri çağırıyo falan derken insan diyo madem return falan biliyosun neden
"return liste"
yaparak fonksiyonu çağırırken değişkene atayıp sonucu ekrana direkt olarak basmıyosun diye insan demek istiyo Smile bakıyorum da öyle yapsan listelerin hiç birine ihtiyacın yok gibi. Demek istediğime ufak bir örnek vereyim,

PHP Kod:
>>> def fonksiyon(parametre):
...     
data parametre " bla bla"
...     return data
...
>>> 
kelime "selam"
>>> degisken fonksiyon(kelime)
>>> print(
degisken)
selam bla bla
>>> 
Turbobit Premium Link Çeviri | Turbobit Link Generator | http://turbobit.qpython.club
Cevapla
#3
gecemor öncelikle yorumunuz için teşekkürler hocam.

Açıkçası, kullanıcıya modülü otomatik yükleme meselesi beni yerde para bulmuş kadar sevindirdi. Smile Hiç aklıma gelmemişti. Smile

Aslında fonksiyon ve return meseleleri hakkında bilgiye sahibim. Zira istihza pdf'sinden ilerliyorum ve nesne tabanlı programlamaya kadar (henüz başındayım) ilerledim. Hani temel konularda neyin ne olduğunu biliyorum ama neyi nerde kullanmam gerektiği hakkında tecrübem yok. Şu an ortaya çalışan birşeyler koyayım da içeriğin karmaşası ve ya gerekliliği farketmez mantığıyla ilerliyorum ki evet bu çok yanlış. İşte bu noktada sizin gibi bu konularda bilgili ve tecrübeli insanların yönlendirmesi benim için paha biçilemez.
velhasıl yukarıdaki kodları bu bilgiler ışığında yeniden düzenleyeceğim.
Ara
Cevapla
#4
Estağfurullah yanlış demeyelim, çünkü ben de ilk zamanlar yaptığım kodlara sonradan baktığımda şimdi olsa yazmayacağım şekilde yazdığımı görüyorum ama tam olarak yanlış değil, yani ya fazla ya da eksik diyebiliriz. Ben de sadece fazlalıkları ve eksikleri söylemek istedim Smile

Ben de istihza dan bakmıştım temel konulara ve kod yazarken sonuç odaklı yazıyodum, maksat amacıma ulaşmaktı, yani kafamdaki programı yazmaktı sadece. Sonuç olarak işliyosa mesele değil tabiki ama tecrübe edindikçe, farklı kodlar yazarken veya kaynaklardan farklı örnekler gördükçe anladım ki, kodu ne kadar okunaklı ve sade yazarsam sonradan düzeltmem o kadar rahat olacak ve aynı zamanda çalışmasında da verimlilik olacak.

Sen tabiki de yine kendi anlayabildiğin gibi yazmaya devam et, çünkü başkasının mantığı bazen insana zor gelebilir, en iyi yöntem kendi yöntemindir. Fakat bunu yaparken de en doğru kullanım şekillerini incele veya tavsiyelere kulak ver, mutlaka sana bir şeyler katacaktır. Bir de zaten dediğin gibi aslında bir çok kullanım yöntemleri görmüşsündür fakat ilk zamanlarda parçaları birleştirmek zor oluyor, ben de senin gibi istihzadan konu konu ilerleyerek öğrendiğim için anlıyorum seni. Okudukça diyosun "evet anladım bu konuyu, basitmiş" ama sonra unutuyosun Smile pratik yapmadıkça da unutacaksın, o yüzden sen içinden geldiği gibi ve kendi aklına yattığı gibi kodları yazmaya devam et, benimki sadece bir öneri, hani aklının köşesinde bulunsun hesabı...
Turbobit Premium Link Çeviri | Turbobit Link Generator | http://turbobit.qpython.club
Cevapla
#5
(08-01-2019, Saat: 20:56)gecemor Nickli Kullanıcıdan Alıntı:  Estağfurullah yanlış demeyelim, çünkü ben de ilk zamanlar yaptığım kodlara sonradan baktığımda şimdi olsa yazmayacağım şekilde yazdığımı görüyorum ama tam olarak yanlış değil, yani ya fazla ya da eksik diyebiliriz. Ben de sadece fazlalıkları ve eksikleri söylemek istedim Smile

Ben de istihza dan bakmıştım temel konulara ve kod yazarken sonuç odaklı yazıyodum, maksat amacıma ulaşmaktı, yani kafamdaki programı yazmaktı sadece. Sonuç olarak işliyosa mesele değil tabiki ama tecrübe edindikçe, farklı kodlar yazarken veya kaynaklardan farklı örnekler gördükçe anladım ki, kodu ne kadar okunaklı ve sade yazarsam sonradan düzeltmem o kadar rahat olacak ve aynı zamanda çalışmasında da verimlilik olacak.

Sen tabiki de yine kendi anlayabildiğin gibi yazmaya devam et, çünkü başkasının mantığı bazen insana zor gelebilir, en iyi yöntem kendi yöntemindir. Fakat bunu yaparken de en doğru kullanım şekillerini incele veya tavsiyelere kulak ver, mutlaka sana bir şeyler katacaktır. Bir de zaten dediğin gibi aslında bir çok kullanım yöntemleri görmüşsündür fakat ilk zamanlarda parçaları birleştirmek zor oluyor, ben de senin gibi istihzadan konu konu ilerleyerek öğrendiğim için anlıyorum seni. Okudukça diyosun "evet anladım bu konuyu, basitmiş" ama sonra unutuyosun Smile pratik yapmadıkça da unutacaksın, o yüzden sen içinden geldiği gibi ve kendi aklına yattığı gibi kodları yazmaya devam et, benimki sadece bir öneri, hani aklının köşesinde bulunsun hesabı...

Zaten daha yolun başındayım hocam o yüzden tavsiyelere kulak asıp ona göre ilerlemek en iyisi gibi. İlerde tabiri caizse 'makarna tarzı kodlama' yapmak yapışır kalır sonra düzeltmesi zor olur diye korkuyorum açıkçası Smile  2 3 gün bakmasam hakikaten unutuyorum hocam ya tekrarlarla aşarım diye düşünüyorum(inşaallah) ama bakalım. Bu arada kodu tekrardan düzenledim biraz daha anlaşılır ve sade olmuştur umarım Smile
Ara
Cevapla
#6
tebrikler.. yandex api kullanabilirsin, sınırlama yok, ücresiz ve cok seri..
Ara
Cevapla
#7
https://code.sololearn.com/cpBB003vEiZQ/#py
Ara
Cevapla
#8
(08-01-2019, Saat: 23:11)Fearme23 Nickli Kullanıcıdan Alıntı:  
(08-01-2019, Saat: 20:56)gecemor Nickli Kullanıcıdan Alıntı:  Estağfurullah yanlış demeyelim, çünkü ben de ilk zamanlar yaptığım kodlara sonradan baktığımda şimdi olsa yazmayacağım şekilde yazdığımı görüyorum ama tam olarak yanlış değil, yani ya fazla ya da eksik diyebiliriz. Ben de sadece fazlalıkları ve eksikleri söylemek istedim Smile

Ben de istihza dan bakmıştım temel konulara ve kod yazarken sonuç odaklı yazıyodum, maksat amacıma ulaşmaktı, yani kafamdaki programı yazmaktı sadece. Sonuç olarak işliyosa mesele değil tabiki ama tecrübe edindikçe, farklı kodlar yazarken veya kaynaklardan farklı örnekler gördükçe anladım ki, kodu ne kadar okunaklı ve sade yazarsam sonradan düzeltmem o kadar rahat olacak ve aynı zamanda çalışmasında da verimlilik olacak.

Sen tabiki de yine kendi anlayabildiğin gibi yazmaya devam et, çünkü başkasının mantığı bazen insana zor gelebilir, en iyi yöntem kendi yöntemindir. Fakat bunu yaparken de en doğru kullanım şekillerini incele veya tavsiyelere kulak ver, mutlaka sana bir şeyler katacaktır. Bir de zaten dediğin gibi aslında bir çok kullanım yöntemleri görmüşsündür fakat ilk zamanlarda parçaları birleştirmek zor oluyor, ben de senin gibi istihzadan konu konu ilerleyerek öğrendiğim için anlıyorum seni. Okudukça diyosun "evet anladım bu konuyu, basitmiş" ama sonra unutuyosun Smile pratik yapmadıkça da unutacaksın, o yüzden sen içinden geldiği gibi ve kendi aklına yattığı gibi kodları yazmaya devam et, benimki sadece bir öneri, hani aklının köşesinde bulunsun hesabı...

Zaten daha yolun başındayım hocam o yüzden tavsiyelere kulak asıp ona göre ilerlemek en iyisi gibi. İlerde tabiri caizse 'makarna tarzı kodlama' yapmak yapışır kalır sonra düzeltmesi zor olur diye korkuyorum açıkçası Smile  2 3 gün bakmasam hakikaten unutuyorum hocam ya tekrarlarla aşarım diye düşünüyorum(inşaallah) ama bakalım. Bu arada kodu tekrardan düzenledim biraz daha anlaşılır ve sade olmuştur umarım Smile

Evet daha iyi olmuş, iki tane listeden kurtulmuşuz.

Bence bu iş wing chun gibi "wing chun; en kısa anda, gösterişli olmayan, etkili ve sade tekniklerle doğrudan rakibi etkisiz hale getirmektir" Big Grin
Ya da hani kungfu yapan biri bizim Türkün karşısına geçer, afilli hareketlerle onu çok pis dövebileceğini ima eder vs vs, derken bizimki bi kafa koyar ve yere serer ya, işte onun gibi Smile
Turbobit Premium Link Çeviri | Turbobit Link Generator | http://turbobit.qpython.club
Cevapla
#9
(09-01-2019, Saat: 00:05)Ethnic Nickli Kullanıcıdan Alıntı:  tebrikler.. yandex api kullanabilirsin, sınırlama yok, ücresiz ve cok seri..

(09-01-2019, Saat: 00:09)Ethnic Nickli Kullanıcıdan Alıntı:  https://code.sololearn.com/cpBB003vEiZQ/#py

Teşekkürler. O daha iyiymiş hem ben yandex'in çevirisini daha güzel buluyorum Smile
Ara
Cevapla
#10
(09-01-2019, Saat: 00:28)gecemor Nickli Kullanıcıdan Alıntı:  
(08-01-2019, Saat: 23:11)Fearme23 Nickli Kullanıcıdan Alıntı:  Zaten daha yolun başındayım hocam o yüzden tavsiyelere kulak asıp ona göre ilerlemek en iyisi gibi. İlerde tabiri caizse 'makarna tarzı kodlama' yapmak yapışır kalır sonra düzeltmesi zor olur diye korkuyorum açıkçası Smile  2 3 gün bakmasam hakikaten unutuyorum hocam ya tekrarlarla aşarım diye düşünüyorum(inşaallah) ama bakalım. Bu arada kodu tekrardan düzenledim biraz daha anlaşılır ve sade olmuştur umarım Smile

Evet daha iyi olmuş, iki tane listeden kurtulmuşuz.

Bence bu iş wing chun gibi "wing chun; en kısa anda, gösterişli olmayan, etkili ve sade tekniklerle doğrudan rakibi etkisiz hale getirmektir" Big Grin
Ya da hani kungfu yapan biri bizim Türkün karşısına geçer, afilli hareketlerle onu çok pis dövebileceğini ima eder vs vs, derken bizimki bi kafa koyar ve yere serer ya, işte onun gibi Smile

 



Çok pis gaza geldim öyle bir anlattınız ki hocam, herşeyi brakıp kendimi en yüksek tibet tapınaklarının birine kapatıp yıllar süren eğitimlerim neticesinde mutlak huzur ve irfanın getirisi olarak 'herşey sıfır ve birlerden oluşur' cümlesinin gerçek manasını öğrendiğimde, dalai lama'dan icazet aldıktan sonra kodlamaya başlamak gerek gibi geldi Smile Smile  Fakat sonunda güneş çarpmışa dönmesem iyidir. Smile
Ara
Cevapla

{lang: 'en'}


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  15gb .myd uzantılı dosya python ile okutma perry 1 1,196 27-11-2022, Saat: 17:59
Son Yorum: perry
Question Python Dili Soru & Cevap gecemor 1,493 1,075,065 08-11-2022, Saat: 11:18
Son Yorum: Antonyobanderas
  GÜNCEL Python request , c# request e göre çok yavaş ne yapabilirim perry 12 3,088 28-09-2022, Saat: 20:27
Son Yorum: krast
  YENİ Python Pyqt5 memory leak sorunu perry 3 1,378 28-09-2022, Saat: 11:33
Son Yorum: gecemor
  YENİ PYTHON ads approval CaglarDevv 2 1,509 04-07-2022, Saat: 01:23
Son Yorum: CaglarDevv

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi
Change Theme