Python – HTTP Çağrıları ve urllib

Bir metin belgesinde kayıtlı olan tüm URL’leri çağırmak için ufak bir betik yazdım.

  • Kullanıcı dosya yolunu hatalı girerse ufak düzeltmeler yapıyor.
  • Gerçekten öyle bir dosya olup olmadığını kontrol ederek IO.Error’a düşmüyor.
  • HTTPError ve URLError durumları ayıklandı.
  • urllib.request ile HTTP çağrıları yapıyor. İlerde belki Requests‘e çeviririm.

Şurdan: https://gist.github.com/4560864

Installing Eclipse on Ubuntu 10.04 and Configuring PyDev

What is Eclipse?

Eclipse is an open source community whose projects are focused on building an extensible development platform, runtimes and application frameworks for building, deploying and managing software across the entire software lifecycle. Many people know eclipse as a Java IDE but Eclipse is much more than a Java IDE.

Check this for more : http://www.eclipse.org/home/newcomers.php

What More than a Java IDE?

Eclipse is a IDE for;

Java , JavaEE, C, C++, C#, PHP, Javascript, Mobile Development, RCP & RAP, UML, Error handling, Maven, Python, Ruby..

Check Download Place ; http://www.eclipse.org/downloads/

and

Marketplace (for plugins, bundles etc.) ; http://marketplace.eclipse.org/

Installing Eclipse on Ubuntu 10.04 Lts

I’m gonna talk about the easiest way to install eclipse on ubuntu, you can find other ways like terminal installitions or more like that.

You can use the Ubuntu Software Manager as the easiest way.

(Applications => Ubuntu Software Manager)

Type “eclipse” to the search box, that is placed at the right corner.

Select “eclipse” and “Install” it.

I know, there is no “install” option at the screen, because I installed eclipse before.

The install process may take some time according as your internet connection speed and system configuration.

When the process is done, you can reach eclipse under “Applications >> Programming >> Eclipse“.

Installing and Configuring the PyDev Plugin

1) Launch “eclipse”. When the workbench loaded, you will see the “Workspace Launcher” window. If not, don’t care, You can open it from “File -> Switch Workspace -> Other”.

You can change the path for workspace always, I have a folder on my desktop, named as “python” so I choose that path. If you want to change the path after, you now the way “File -> Switch Workspace -> Other”.

Now, you should see the welcome screen of Eclipse IDE.

Click on the arrow on the right to go to the workbench.

Go to “Help -> Install New Software

Select “Add“.

Enter “http://pydev.org/updates” under Location and click OK.

Back in the “Available Software” window, select the “PyDev for Eclipse” option. Do not select the “PyDev Mylyn Integration“.

Click “Next“, verify that PyDev is selected in the next window then select “Next” again.

Select “I accept the terms of the license agreement” then select “Finish“. The installer will begin to download the plug-in. A window may appear asking you whether you want to install the plug-in. Select Install All.

A security warning may appear asking whether you trust the software being installed click “ok” then ensure the correct items are selected and click yes and the instillation process will continue.

When the installation is complete, you will be asked if you want to restart Eclipse. Select Yes.

Now.. PyDev is installed succesfully on your Eclipse IDE.

It’s time to configure that plug-in !

Go to “Window> Preferences”. In the Preferences window, expand “Pydev” and select “Interpreter-Python“. Click “New”

Type your interpreter name, python31 maybe..

Select the Interpreter executable, usually and defaultly usr/bin/python3.1, If you installed in a different location type it.

And click “OK“. “Selection Needed” Window will appear. Leave it with defaults, if you don’t know what are you doing.

That’s it, welldone you configurated your Eclipse for Python.

Now lets see, what can we do in Python !

Go to “Window > Open Perspective > Other” and choose “Pydev“, then click OK. If you look at the upper right corner you will see that the perspective has changed from “Java” to “Pydev“. If it is not neccessary for you, right click on “Java” and select “close“.

Select “File -> New -> Project”. Select “Pydev -> Pydev Project”.

Choose “python” as the “project type”, and “3.0” as “grammer version” and “python31” as “interpreter”.

Make sure “create default ‘src’ folder and add it to the pythonpath?” is selected. Click “Finish”.

Select the project you just created and go to “File → New → Pydev Module”. This will launch a new Pydev Module Wizard where you should enter a name for your module and make sure it is in the right location. Leave the Package field blank and select “Finish”.

Now you sould see the example1.py file in ypur project. Open it if eclipse open it automaticly. Type some code, and run it.

Now you can see the print result at the “console” window.

A tweak for Eclipse :

We can understand the errors with highlight function of eclipse, but the line numbers can be pretty usefull for us too.

To show line numbers, right click on the bar that you can see in the next screen, and select “Show Line Numbers”.

Well done lads, see you soon.

/ M.Serhat Dundar /

Indexing Words to Letters in Python 3.x

In python, we can index the words easily. This simple tip can provide us too much flexibility when we want to specify some parts of words as variables. This specified variables can be usefull in projects that use dictionaries, sets etc. Imagine a confirmation project, that checks some parts of user data with the middle or some strict pozitions of data. If the results pair with each others we can think about the code completed what we want to do.

Input() (From user) => Store Data (In Database) => User Must be Validated => The Validation&Confirmation Code Runs => Input() (Some parts of data that stored in database, taken from user) => Code checks out the datas => Wrong&Correct

In poetry it will look like this.

Anagram Oluşturma Programı – Python

Geçtiğimiz ay (Haziran) TÜBİTAK UEKAE’nin sorduğu ödüllü 3 sorudan 1 numaralı olanı anagram sorusuydu.

Soru şu şekildeydi :

İlk seçeneği çözen ufak bir python uygulaması hazırladım :

İkinci seçeneği çözen bir program da hemen hemen aynı mantıkla hazırlanabilir. Şuan için onu hazırlamayı düşünmüyorum.

Bu uygulamadan aşağıda ki gibi bir çıktı elde edeceksiniz :

(Büyük ve küçük harflerin farklı karakterler olarak yorumlandığına dikkat edin!)

Bir tek son soruyu çözememiştim 🙁 Çok basitmiş aslında soru ama ben hiç o açıdan bakmamıştım, derin matematik hesaplarına girdim, hiç alakası yokmuş.. Neyse bu ay için zorlayalım biraz.

Python Liste Denetimi Örneği

İstihza’da bölüm sonu sorularında gördüğüm 3.soruyu aslında çözmeyecektim, gözüme basit gibi göründü ama hiçte sandığım gibi değilmiş.

Soru zor değil aslında ancak ciddi bir mantık kurmak ve o yolu işletmek gerekiyor.

Önce tek listede verileri toplayıp daha sonra bunların tek-cift durumunu denetleyecek bir fonksiyon yazmayı denedim, daha sonra fonksiyon alacağı sonuçlara göre ekrana veri yazdıracaktı ancak sonradan bunu gereksiz olduğunu düşündüm. Programın başında boş iki liste oluşturdum, biri tek sayıları tutacaktı diğeri çift. Kullanıcıdan sadece 10 sayı girmesini istediğimiz için bu iki listenin toplam öge sayısını buldurdum ve while döngüsüyle bu şartı sağlattım.

En büyük sıkıntıyıda kodları incelediğinizde göreceğiniz 16.satırı yazmadığım için yaşadım, bu kodu while dışında işletmiştim zaten, orada işletmesem “sayi” adlı değişken tanımlanmıyor, yok işletsem içeride bir türlü listenin öge sayısı sayılmıyor. Ortalık biraz karıştı açıkcası. En sonunda 2 kez işleterek olayı çözdüm.

Kullanıcının girdiği değeri kontrol ediyoruz, liste_tek veya liste_cift isimli listelerde varmı yokmu diye, eğer varsa bu değeri listeye ekletmiyoruz. Kullanıcının girdiği değerin kalanına göre hangi listeye ekleneceği belirleniyor, eğer kalan 0’sa çiftler listesine, kalan 1’se tekler listesine.

Program ayrıca değer hatalarına karşı bir try-except bloğu da bulunduruyor, kullanıcı rakam girmesi gerekirken string girerse programın sonlanmaması açısından bu gerekli.

http://code.google.com/p/pythonkodcalismalarim/ adresinden kodları inceleyebilir veya doğrudan bu adresten indirebilirsiniz.

Şimdilik bu kadar.

Python ile Hesap Makinesi – 2

Python ile Hesap Makinesi-2

Bu konuda örneklediğim python ile hesap makinası uygulaması sorunsuz çalışmaktaydı ancak bazı kusurları da vardı..

1) Verileri güvensiz olan input() metodu ile alıyorduk, bu da kullanıcıya input içerisinde komut çalıştırma imkanı sunuyordu. Eğer program bilgisayarınızda çalışacaksa bir sorun yok.. Ancak bir sunucu üzerinde çalışacaksa ciddi sorunlar yaratabilecek bir durum..

Öncelikle input() metodları raw_input()’a dönüştürüldü, işlem kararsızlığı yaratmaması açısından her birine birde int() fonksiyonu eklendi.

2) Kullanıcı bölme işlemi sırasında bir sayıyı 0’a bölmeye kalkarsa doğal olarak bir sayı 0’a bölünemeyeceğinden program hata verip duruyordu, bu hata ihtimali temizlendi.

3) Kullanıcı int() ile integer değere çevirdiğimiz alanlara integer olmayan bir değer girer ise program hata verip duruyordu, bu hata ihtimali de temizlendi.

4) Fazladan özellik olarak kare, küp ve hacim alma işlemleri ekledim, sizde kendi ihtiyaçlarınıza göre çeşitli özellikleri kolayca ekleyebilirsiniz.

Bu adresten daha önceki önceki python kod çalışmalarına göz atabilir veya direk bu adresten konuda ki projeyi indirebilirsiniz.

Şimdilik bu kadar.

Python ile "Sıcaklık Birimleri Çevirici"

Basit bir uygulama hazırladım. Celvin, Celcius, Fahrenheit ve Rankin birimleri arasında istediğiniz şekilde değer dönüşümü yapabiliyorsunuz.

http://code.google.com/p/pythonkodcalismalarim/ adresinde ki 4.maddeyi ziyaret edebilir veya doğrudan bu adresten indirebilirsiniz.

Programı özetlemek gerekirse;

12 adet dönüşüm olasılığı mevcut bu 4 sıcaklık birimi arasında, bu yüzden her bir ihtimali fonksiyona döküyoruz, toplam 12 tane fonksiyonumuz bulunuyor. Daha sonra kullanıcıya hangi birimi dönüştürmek istediğini soruyoruz, ilgili fonksiyonlar çalışıyor ve dönüşüm olasılıklarına göre kullanıcıya çıktı veriyor.

Kodları inceleyerek daha da geliştirebilirsiniz, farklı sıcaklık birimleri arasında geçişler için fonksiyonlar yazabilirsiniz, veya bu uygulamanın benzeri daha farklı birimler (uzunluk-sıcaklık vb.) için özellikler geliştirebilirsiniz.

Belki birilerine faydası olur diye paylaşayım.

Python ile Basit Bir Liste Uygulaması

Kullanıcıdan isim, soyisim ve telefon numarası olmak üzere 3 adet veri alarak bunları bir listenin tek ögesi şeklinde toplayan basit bir python kodudur, kullanıcı eğer bu 3 alandan herhangi birine boş değer girerse program devam eder ancak listeye herhangi birşey eklemez. Basit bir telefon rehberi düşünülmüştür ve bu rehberin boyutu 5 kişiyle sınırlandırılmıştır.

Eğer yazmaya üşenirseniz kodları http://code.google.com/p/pythonkodcalismalarim/ adresinden download edebilirsiniz.

Kodu açıklayacak olursak :

#7 Deneme isimli bir fonksiyon tanımladık, herhangi bir argüman bulundurmuyor.

#8 Rehber adında boş bir liste oluşturduk.

#9 Programımızın ; rehberin uzunluğu 5 ögeyi geçmediği sürece çalışmasını söyledik.

#10 Kullanıcıdan x olarak değişkene atadığımız bir “isim” verisi girmesini istedik.

#11 Kullanıcıdan y olarak değişkene atadığımız bir “soyisim” verisi girmesini istedik.

#12 Kullanıcıdan z olarak değişkene atadığımız bir “telefon” verisi girmesini istedik.

#13 x, y, z değerlerinden herhangi birinin boş girilme durumunu hazırladık.

#14 Üstteki durum sağlanırsa pass yani direk kodun geri kalanını geç, okuma dedik.

#15 Eğer if durumu sağlanmazsa yapılacak hareket

#16 Rehbere kullanıcının girdiği x’i eklemesini, sonra bir boşluk bırakıp y’yi eklemesini ve sonra bir boşluk daha bırakıp z’yi eklemesini söyledik.

#17 Rehberi ekrana yazdırdık

#18 Fonksiyonu çağırdık.

Sun NetBeans Python IDE'si

NetBeans Nedir?

Netbeans ve Eclipse şüphesiz ki Java’nın en güçlü IDE’leri. İkisi birbiriyle çok kıyaslansa da, birbirlerine göre artı veya eksileri olsa da Java programcılarının vazgeçilmezleri oldukları şüphesiz. Oysa ki NetBeans yalnızca Java IDE’si değil, aynı zamanda aşağıda ki teknolojileri de desteklemekte :

Ajax, C/C++, Databases, Debugger Desktop, Editor, Groovy, GUI Builder, Hudson, Java EE, JavaFX, Java ME, Java SE, JavaScript, Kenai, Maven, Mobile, PHP, Profiler, Python, Refactor, REST, Rich Client Platform, Ruby, SOAP, Web

Kısacası neredeyse tüm uygulama geliştirme işlemlerinizi NetBeans ile yapabilirsiniz. Ayrıca dehşet büyük bir plug-in kütüphanesi mevcut. Aynı şekilde Eclipse’in de plug-in desteği oldukça geniş. Şuan gözüme Html IDE’si çarptı, malum Html5’ten bir süredir bahsediyorum ve henüz bu dil için herhangi bir IDE yok. MS Expression Web 3 Html5 desteklemiyor. Adobe CS5 ise henüz yeni bir eklenti paketi çıkardı, bu paket sayesinde Html5’te destekleniyor ancak ben Dreamweaver kullanmayı sevmiyorum. Henüz NetBeans Html 5 destekleyen bir IDE çıkarmamış ancak çıkartırsa hiç düşünmeden kullanacağım kesin.

Web uygulamarı geliştirme de NetBeans’ın gücünü görmek için ;

http://netbeans.org/features/web/web-services.html ve http://netbeans.org/features/web/web-app.html sayfalarını ziyaret edebilirsiniz.

Java’yla uğraştığım günlerde Eclipse’yi biraz olsun anlatmıştım.

Bu adresten yazıya ulaşabilirsiniz.

NetBeans tamamen ücretsiz bir yazılım (Open-Source) ve ayrıca çok geniş bir komünite tarafından desteklenip geliştiriliyor. Ayrıca SUN resmi olarak bu IDE’yi desteklemekte.

Gelelim en güzel özelliklerinden birine; NetBeans Türkçe ! Bunu bende yeni keşfettim açıkcası, download sayfasında Türkçe seçeneği varmış. Ben direk download dediğim için İngilizce kullanıyorum, bir yandan da iyi oluyor aslında çünkü python İngilizce olmayan karakterlere biraz takıntılı bir dil.. Dolayısıyla python ile programlama yaparken neredeyse hiç Türkçe karakter kullanmıyorum desem yeridir.

http://netbeans.org/downloads/index.html

adresine girin, üst kısımdan IDE Language seçeneğinden Türkçe’yi seçin. Kullandığınız işletim sistemini seçin ve aşağıda ki sürümlerden herhangi birini indirin.

Burada hangi IDE’yi indirdiğiniz önemli değil, python ile programlama yapacaksanız zaten python bileşenini sonradan yükleyeceğimiz için şimdilik boyutu en ufak olan IDE’yi download edebilirsiniz.

Python Plug-in’ini Yüklemek

NetBeans’ı çalıştırdığınız zaman üst menüde ki “Tools (Araçlar)” kısmından “Plugins” seçeneğine tıklayın.

Üstte ki sekmelerden “Availible Plugins” sekmesine gelin. Search yani arama kutusuna python yazın, solda 3 adet plugin göreceksiniz. Bunları seçip “Install” butonuna tıklayın.

IDE’yi yeniden başlatın.

Artık IDE’niz python da desteklemete.

Python projesi başlatmadan önce bi kaç şeyden bahsetmek istiyorum.

Tools menüsünden “Python Platforms”a girin.

Burada python kurduğunuz dizini göreceksiniz, NetBeans bu dizini otomatik olarak tanımlayacaktır zaten ancak olurda tanımazsa manuel olarakta buradan değiştirebilirsiniz.

Bu yazıda bahsettiğim Kenai ile python projelerini online olarakta geliştirebilirsiniz.

NetBeans ile Python Projesi Oluşturmak

Üst menüden File/New Project/Python/Python Project seçerek Next diyoruz.

Karşınıza gelen 2. adım penceresinde projemize bir isim veriyoruz. Projemizin kaydedileceği yeri ve klasörü seçiyoruz.

Mevcut olan 2 checkbox’ı da işaretleyip Python platformumuzu seçelim.

Kutucuktan Python 2.6.4’ü seçtim ve finish dedim. Artık projemiz hazır.

Daha fazla python dosyası oluşturma için projenize sağ tıklayıp New/Empty Module seçebilirsiniz.

Kodlarınızı çalıştırmak için üstteki Play (Run Main Project) tuşuna tıklayabilir veya klavyeden F6’ya basabilirsiniz.

NetBeans IDE’sinin en güzel özelliklerinden biri ise import ettiğimiz modüllerin barındırdığı fonksiyonlar vb. durumlar için otomatik tamamlama özelliğinin olması, bu özellik işlerimizi oldukça kolaylaştırıyor.

Eğer geliştirme işlemlerinde sorun yaşıyorsanız, NetBeans’i daha iyi kavramaya çalışmanızı öneririm.

Şimdilik görüşmek üzere.

Python – Hesap Makinası (Koşula Bağlı İfadeler ve Fonksiyonlar İle)

Basit bir hesap makinası uygulaması. 2 farklı uygulama yöntemi kullandım. İlk durum tamamen if-elif ve else koşullarıyla hazırlanan hesap makinası, ikinci durum ise islemleri fonksiyon altında toplayarak yaptığım uygulama.

Önemli NOT: Python dilinde girintileme bir yazım tarzı değil, zorunluluktur ! Bu sayfadan kodları kopyala-yapıştır ile almanız halinde program çalışmayacaktır. Kodların girintilenmiş halini http://code.google.com/p/pythonkodcalismalarim adresinden indirebilirsiniz.

1) Koşullu İfadeler Kullanarak Hesap Makinası Uygulaması (hesapmakinası.py)

2) Fonksiyonları Kullanarak Hesap Makinası Uygulaması (hesapmakfonk.py)

Bu uygulamada önce matematiksel işlemleri gerçekleştiren adımlar fonksiyonlar içinde yazılmış, daha sonra fonksiyonlar çağırılmıştır.

Şimdilik bu kadar.