LKD LKD. Programlama. Oğuz Yarımtepe oguzy (at) comu.edu.tr. Oğuz Yarımtepe. Slayt Slayt11. oguzy (at) comu.edu.tr



Benzer belgeler
LKD LKD. Programlama. Oğuz Yarımtepe oguzy (at) comu.edu.tr. Oğuz Yarımtepe. Slayt Slayt11. oguzy (at) comu.edu.tr

Python GELECEK. Barış Metin Linux Sistemleri. Python Programlama Dili

Open Source Coding: Python

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

Giriş. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Bölüm 10: PHP ile Veritabanı Uygulamaları

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

1.PROGRAMLAMAYA GİRİŞ

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Ruby Nedir? 1.1 Amaçlar. 1.2 Ruby nin Yapısal Sıradüzeni

Nasıl Pardus Geliştiricisi Olunur?

Açık Kaynak Kodlu Yazılım

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Kaya Oğuz.

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek

IOT NEDİR? Bölüm 1. Internet of Things ekosistemi altında donanım, programlama, veri tabanı, veri analizi gibi alt yapılar yer almaktadır.

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

ÖZGÜR YAZILIMLAR İLE J2EE

1.1. Yazılım Geliştirme Süreci

R ile Programlamaya Giriş ve Uygulamalar

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

Internet Programming II

Zope Uygulama Sunucusu

İNTERNET PROGRAMCILIĞI - II

Veritabanı. Ders 2 VERİTABANI

Linux un Temel Bileşenleri. Linux Nedir? Aydın ÜSTÜN (Selçuk Üniversitesi) e-posta:

Python ile Programlamaya Giriş DERS 1: PYTHON YÜKLENMESİ VE GENEL BİLGİLER DR. HÜSEYİN BAHTİYAR

1 NEDEN PROGRAMLAMA ÖĞRENMELIYIZ?

> what is ansible*? "infrastructure as code"

Pardus. A. Murat Eren, 25 Mart Pardus Geliştiricisi. Pardus Yenilikleri Sık Sorulan Sorular

E-Prints: Açık Erişimli Arşiv Oluşturma Yazılımı; Kurulumu-Kullanımı-Özellikleri

I. Oturum: GNU/LINUX A GİRİŞ

İŞLETİM SİSTEMLERİ. (Operating Systems)

Linux'ta Kabuk ve Kabuk Programlama

Özgür Yazılım Proje Yönetimi

PHP 1. Hafta 1. Sunum

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzman Yardımcısı Görev Tanımı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzmanı Görev Tanımı

Bilgisayar Yazılımları

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü

AÇIK KAYNAK KODLU İŞLETİM SİSTEMLERİ DERS NOTLARI 1-İşletim Sisteminin görevi nedir? En çok kullanılan işletim sistemleri nelerdir?

Bilgisayar İşletim Sistemleri BLG 312

08220 Internet Programcılığı II

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

4. Bölüm Programlamaya Giriş

License. Veri Tabanı Sistemleri. Konular büyük miktarda verinin etkin biçimde tutulması ve işlenmesi. Problem Kayıt Dosyaları

PHP ile İnternet Programlama

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

BEDEN EĞİTİMİ I: Haftalık ders 1 saattir (T-0 ) (U-l) (K-0).

Java Temel Özellikleri

Finans Dünyasında Linux ve Özgür Yazılımlar

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

C# nedir,.net Framework nedir?

Solaris 7980g. Hızlı Başlangıç Kılavuzu. Sunum Alanı Görüntüleyici TRTR-QS Rev A 1/16

PYTHON PROGRAMLAMA DİLİ

If you have any issue in outlook mail account like spam mail, mail send or receive issues, mail delivery problem, mail sending too late and.

Linux Grafiksel Arayüz Kütüphaneleri

Data Science Boot Camp

İşletim Sistemleri; İÇERİK. Yazılım BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI Yazılım Türleri

Temel Bilgisayar (Basic Computer) Yazılım (Software)

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

Akademik Dünyada Özgür Yazılım. Akademik Dünyada. Onur Tolga Şehitoğlu

DBMAIL KURULUMU BELGESI (Howto Install Dbmail) Yazan: Ozgur Karatas

AST415 Astronomide Sayısal Çözümleme - I. 0. Derse Giriş

Temel Bilgisayar Programlama

PYTHON PROGRAMLAMA DİLİ

İnternet Programcılığı

PROGRAMLAMA TEMELLERİ

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

Grade 8 / SBS PRACTICE TEST Test Number 9 SBS PRACTICE TEST 9

BİT in Temel Bileşenleri (Yazılım-1)

Java ve Linux. Bora Güngören Portakal Teknoloji Akademik Bilişim

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Argumentative Essay Nasıl Yazılır?

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

GNU/Linux'un Tarihi ve Önemi

Açık Kaynak Öğrenme Yönetim Sistemleri (Learning Management Systems) Ceren Çalıcı

Özgür Yazılım, İş ve Kariyer Modelleri. Mahir B. Aşut EkoPC Kurucu Ortağı ve Yöneticisi, LKD Üyesi

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

Pardus. S.Çağlar Onur, 21 Aralık Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği

Veritabanı Uygulamaları Tasarımı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

"Farklı?-Evrensel Dünyada Kendi Kimliğimizi Oluşturma" İsimli Comenius Projesi Kapsamında Yapılan Anket Çalışma Sonuçları.

PostgreSQL Veritabanı Sunucusu Devrim GÜNDÜZ.

ALGORİTMA VE PROGRAMLAMA I

CENG 302 Yazılım Mühendisliği Yazılım Mimarisi - Devam. Alper UĞUR

Uludağ Projesi, İlk Adımlar (Kalite Takımı)

MODSECURITY DENETİM KAYITLARINI ANLAMAK. Gökhan Alkan,

SUBVERSION VE TRAC A GİRİŞ

Linux İşletim Sistemleri. Eren BAŞTÜRK.

Veri Tabanı-I 1.Hafta

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

CBS Arc/Info Kavramları

Transkript:

Yar Python Python ile ile Programlama Programlama Oğuz Yar Oğuz Yar 11

Yar Kapsam Kapsam Hikayesi Eric'ten Tavsiyeler Yorumlar Dili Tanıyalım (Yapılabilecekler, söz dizimi, kuralları, v.s.) IDE, UDE Grafik Kütüphaneleri Nasıl Yardım Alırım? Dünyayı Kurtaracak Programın Yazımı 22

Yar Hikayesi Hikayesi Yaratıcısı Guido van Rossum. Lisansı 2.0 sürümünden itibaren GPL ile uyumlu hale getirildi 33

Yar Hikayesi Hikayesi (devam) (devam) Hollanda'da Centrum voor Wiskunde en Informatica (CWI) isimli araştırma enstitüsündeki Amoeba dağıtık işletim sistemi üzerinde çalışırken ABC dili yapısına benzeyen bir betik dili ve sistem yönetimi için de C'den veya kabuk betiklerinden daha etkin bir dile ihtiyaç duymasıyla 1989'da geliştirilmeye başlandı. 1991'de USENET'te duyuruldu. Monty Python's Flying Circus (BBC komedi serisi) Topluluk var (hızla gelişiyor*) Topluluk var (hızla gelişiyor*) PSF (Python Software Foundation) PSF (Python Software Foundation) * Jython, IronPython, Nokia 60 serisi * Jython, IronPython, Nokia 60 serisi 44

Yar Eric'ten Eric'ten Tavsiyeler Tavsiyeler Eric S. Raymond: Cathedral & Bazaar'ın yazarı, açık kaynak hareketinin kurucusu, Linus Torvalds ve Richard M. Stallman ile birlikte bu harekette adı geçen ilk 6 kişiden biri (kendi tabiri), Hacker'lık Sözlüğü'nün yazarı, pek çok açık kaynak yazılım, SSS ve web sayfasının sürdürücüsü 55

Yar Nas ııll Hacker Olunur? (ESR) Nas Hacker Olunur? (ESR) Argo Dosyası'nda pek çok üstat ( hacker ) tanımlaması bulunmaktadır. Bunlar genellikle kod üstatlarını teknik beceri sahibi, problem çözmeden zevk alan ve sınırları aşan kişiler olarak tanımlarlar. Eğer nasıl üstat olunacağını öğrenmek istiyorsanız, bu tanımlardan sadece iki tanesi ilgi sahamızda olacaktır. Uzman programcılar ve ağ sihirbazlarının, ilk zaman paylaşımlı mini bilgisayarlara ve en eski ARPAnet deneylerine kadar uzanan onlarca yıllık bir toplulukları ve ortak bir kültürleri vardır. üstat ( hacker ) kavramını bu kültürün üyeleri ortaya çıkarmışlardır. İnternet'i kuran, üstatlardır. Unix işletim sistemini bugünkü haline getirenler, üstatlardır. Halen Usenet'i çalışır halde tutanlar, üstatlardır. Webi ayakta tutanlar, üstatlardır. Eğer bu kültürün bir parçasıysanız, bu kültüre katkıda bulunduysanız ve insanlar sizin kim olduğunuzu biliyor ve size üstat diye hitap ediyorsa, siz bir üstatsınız. Üstatlık sadece yazılım konusu ile sınırlı değildir. Üstat düşünce yapısını elektronik veya müzik gibi diğer şeylere uygulayan insanlar vardır. Herhangi bir bilim veya sanat dalının en üst seviyelerinde de bunu görebilirsiniz. Yazılım üstatları farklı konularda çalışan bu yakın ruhları tanır ve onlara da üstat diyebilirler. 66

Yar Nas ı l Hacker Olunur? (devam) Nas ı l Hacker Olunur? (devam) Eğer bir programlama dili bilmiyorsanız, size Python ile başlamanızı öneririm. Python, tasarımı temiz, belgelendirmesi* iyi yapılmış ve yeni başlayanlara kolaylık tanıyan bir dildir. Öğrenebilecek ilk dil olarak iyi bir seçim olmasına rağmen, oyuncak değil, güçlü ve esnek bir dildir Java da programlamayı öğrenmek için iyi bir dildir. Python'dan daha zordur ama ürettiği kod daha hızlıdır. İkinci dil olarak öğrenebilecek en iyi dil olduğunu düşünüyorum. Eğer ciddi programlamaya girecekseniz, Unix'in ana dili olan C'yi öğrenmelisiniz. 77 * Kısaca değinelim, detayları sonraki slaytlarda

Yar ve ve Kazanaaan... Kazanaaan... Makinaların güçlü olduğu günümüzde, makinanın çalışma verimliliği yerine sizin çalışma verimliliğinize öncelik tanıyan bir dil ile program yazmak daha akıllıca olacaktır. Sonuç olarak Python'u tercih etmenizi öneririm. En iyisi, bahsettiğim bu beş dilin (Python, Java, C/C++, Perl ve LISP) hepsini öğrenmektir. 88

Yorumlar Yorumlar Yar Nesneye yönelik bir dil olmasi nedeni ile büyük ölçekli yazılımlar geliştirirken kolaylık sağlaması, çok hızlı prototip geliştirebilecek kadar geliştiriciyi ayrıntılardan yalıtıyor olması, hem betik için hem de çok büyük uygulamalar geliştirmek icin uygun olması, geniş ve kararlı bir standart kütüphaneye sahip olması, temiz bir söz dizimi olması, kolay okunur ve kolay refactor edilebilir olması, dışardan geliştirmeye destek vermek isteyenlerin zorlanmadan adapte olabileceği bir modulariteyi yapısı gereği bünyesinde barındırması, bir çok kişinin biliyor olması, diğer diller ile kolayca genişletilebiliyor olması (örnegin c ile extend edip qt bindinglerinden yararlaniyoruz). İşte bunlar Pythonu Pardus'u geliştirirken tercih etmemizden bir kaçı. A. Murat Eren, Uludağ Projesi, TUBITAK 99

Yar Yorumlar Yorumlar (devam) (devam) Google "Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language." Peter Norvig, director of search quality at Google, Inc. 10 10

Yar Yorumlar Yorumlar (devam) (devam) 11 11

Yar Yorumlar (devam) Yorumlar (devam) Industrial Light & Magic "Python plays a key role in our production pipeline. Without it a project the size of Star Wars: Episode II would have been very difficult to pull off. From crowd rendering to batch processing to compositing, Python binds all things together," said Tommy Burnette, Senior Technical Director, Industrial Light & Magic. "Python is everywhere at ILM. It's used to extend the capabilities of our applications, as well as providing the glue between them. Every CG image we create has involved Python somewhere in the process," Philip Peterson, Principal Engineer, Research & Development, Industrial Light & Magic. 12 12

Yar NASA Yorumlar Yorumlar (devam) (devam) "NASA is using Python to implement a CAD/CAE/PDM repository and model management, integration, and transformation system which will be the core infrastructure for its next generation collaborative engineering environment. We chose Python because it provides maximum productivity, code that's clear and easy to maintain, strong and extensive (and growing!) libraries, and excellent capabilities for integration with other applications on any platform. All of these characteristics are essential for building efficient, flexible, scalable, and well integrated systems, which is exactly what we need. Python has met or exceeded every requirement we've had," Steve Waterbury, Software Group Leader, NASA STEP Testbed. 13 13

Yar Firaxis Games Liste Liste uzar uzar gideeer... gideeer... "Like XML, scripting was extremely useful as both a mod tool and an internal development tool. If you don't have any need to expose code and algorithms in a simple and safe way to others, you can argue that providing a scripting language is not worth the effort. However, if you do have that need, as we did, scripting is a no brainer, and it makes complete sense to use a powerful, documented, cross platform standard such as Python." "Python, like many good technologies, soon spreads virally throughout your development team and finds its way into all sorts of applications and tools. In other words, Python begins to feel like a big hammer and coding tasks look like nails." Mustafa Thamer of Firaxis Games, talking about Civilization IV. Quoted on page 14 14 18 of the August 2005 Game Developer Magazine.

Yar Dili Dili Tan Tanııyal yalıım m Dinamik ve nesneye dayalı (kalıtım, çok biçimlilik, sarmalama, v.s.) Betik dili aynı zamanda Zengin bir kütüphane desteği ile gelir Birkaç günde öğrenilebilir Yazımı kolay, kısa, çabuk ve sonradan müdahalesi rahat Dünyayı kurtaracak program için ideal bir seçim :) 15 15

Yar Web Web için için Python Python Web programlamada kullanılabilecek geniş bir iskelet ve taslak sistemler var. Bir/birkaçı size çözüm getirir. En kötüsü Zope gibi bir sistem ile hemen herşeye sahip olabilirsiniz. Bir kaçına bakalım. 16 16

Yar Web Web için için Python Python (devam) (devam) Web sunucusu: TwistedMatrix Web iskeleti: Yüksek seviyeli Python web iskeleti oluşturma aracı: Nasıl bir şey? 17 17

Yar Web Web için için Python Python (devam) (devam) 18 18

Yar Web Web için için Python Python (devam) (devam) 19 19

Yar Web Web için için Python Python (devam) (devam) 20 20

Yar Web Web için için Python Python (devam) (devam) 21 21

Yar Web Web için için Python Python (devam) (devam) Zope (Plone, CPS): Intranet, portal, özel uygulamalar için içerik yönetim sistemi. Kullananlar: Red Hat, NASA, NATO, US Navy,... (zope) 22 22

Yar Web Web için için Python(devam) Python(devam) 23 23

Yar Web Web için için Python Python (devam) (devam) XML, RSS (üretici, ayıklayıcı), e posta, CGI ve diğer Internet protokolleri için zengin kütüphaneleri var. Diğerleri: ftp, pop3, imap, nntp, snmp, telnet, gopher (standart kütüphaneler içerisinde bulunurlar) Veri tabanlarıyla etkileşim mümkün: MySQL, Oracle, MS SQL Server, PostgreSQL,... 24 24

Yar Teknolojik Teknolojik Python Python Değişik ortamlarla uyum içerisinde çalışabilir: Jython: Python'un %100 Java ile ifade edilmiş hali. Böylece Python'un herhangi bir Java ortamında çalışması mümkündür. Java kullanıcıları Jython kütüphanelerini dahil ederek kullanıcıların betikler yazmalarını sağlayabilirler Jython, Java ortamına karşılıklı etkileşim sağlar. Programcıların pekçok Java ortamının hata ayıklamasına olanak sağlar Python programları denkleri olan Java programlarından 2 10 kat daha hızlıdır. 25 25

Yar Teknolojik Teknolojik Python Python (devam) (devam) IronPython:.Net ortamında çalışan Python. Etkileşimli bir yorumlayıcı sunar. Tüm.Net kütüphanelerinin Python içinde kullanımına olanak sağlar. Windows?: Windows COM ortamında çalışmayı sağlayan türevi de var. Nokia 60 serisi: N92, E70, 6630, N Gage QD 26 26

Yar Pilleri Pilleri İİçindedir! çindedir! Standart kütüphanesiyle bile dünyayı kurtaran programı yazabiliriz :) : Çalışma zamanı servisleri: sys: Derleyicinin kendisi tarafından kullanılan nesne ve fonksiyonlara erişim gc: Çöp toplayıcına erişim... 27 27

Yar Pilleri Pilleri İİçindedir çindedir (devam) (devam) Karakter dizisi servisleri: string: Karakter dizileri üzerinde işlemler re: Düzenli ifadeler unicodedata: Unicode karakter veri tabani... 28 28

Yar Pilleri Pilleri İİçindedir çindedir (devam) (devam) Genel işletim sistemi servisleri: os: İşletim sistemi çalışırken gerekli rutinleri sağlar filecmp: Dosyaları kıyasla popen2: Komut çalıştırma datetime: Zaman ile ilgili işler curses: Konsolda grafik... 29 29

Yar Pilleri Pilleri İİçindedir çindedir (devam) (devam) İşlerim Sistemi servisleri devam: socket: Socket işlemleri zlib, gzip, bz2, zipfile: Sıkıştırılmış dosya işlemleri signal: Sinyaller ile çalışma (süreçler arası) thread: Çoklu iş parçacıkları oluşturma... 30 30

Yar Pilleri Pilleri İİçindedir çindedir (devam) (devam) Internet Protokolleri: cgi, urllib, httplib, ftplib, poplib, imaplib, smptplib, telnetlib, xmlrpclib,... Yapısal İşaretleme Dilleri: HTMLParser, sgmllib, htmlllib, xmllib,... Şifreleme Servisleri: md5, sha1 Grafik Arayüzler: Tkinter, Tix, turtle, Idle, QT ve GTK için modüller kurulu gelmez 31 31

Yar Pilleri Pilleri İİçindedir çindedir (devam) (devam) Diğer: math: C standartlarındaki matematiksel fonksiyonlara erişim cmath: Kompleks sayılarla işlemler random: Rasgele sayı üretme calendar: Tarih hesaplama ve yazdırma... 32 32

Uçuşa Geçiyoruz Temin Etme ve Kurma Python Yorumlayıcısı ve Yorumlamaları Kontrol Blokları Listeler, Desteler, Sözlükler Haritalama ve Filtreler Fonksiyonlar Sınıflar İnişe Geçiş Oğuz Yar Oğuz Yar 33 33

Temin Etme ve Kurma http://www.python.org/download/ adresinden Windows, Mac OS, Mac OS X, Linux, Sun Solaris, AS/400, Amiga, BeOS işletim sistemlerinden uygun olana göre program indirilir. Kurulur :). Linux: Dağıtıma göre rpm, deb, pisi paketi alınır kurulur. Bazı dağıtımlarla standart gelmektedir (FC3, Debian, Pardus) Kaynağı indirilir. configure, make, make install ile kurulum yapılır Oğuz Yar Oğuz Yar 34 34

Kurulum localhost:~$ su Password: [enter your root password] [root@localhost root]# wget http://python.org/ftp/python/2.3/rpms/redhat 9/python2.3 2.3 5pydotorg. [root@localhost root]# rpm Uvh python2.3 2.3 5pydotorg.i386.rpm Oğuz Yar Oğuz Yar 35 35

Kurulum (devam) localhost:~$ su Password: [enter your root password] localhost:~# apt get install python Oğuz Yar Oğuz Yar 36 36

Kurulum (devam) localhost:~$ su Password: [enter your root password] localhost:~# wget http://www.python.org/ftp/python/2.3/python 2.3.tgz localhost:~# tar xfz Python 2.3.tgz localhost:~# cd Python 2.3 localhost:~/python 2.3#./configure localhost:~/python 2.3# make localhost:~/python 2.3# make install Oğuz Yar Oğuz Yar 37 37

Python Yorumlayıcısı Oğuz Yar Oğuz Yar 38 38

Python Yorumlayıcısı (devam) Oğuz Yar Oğuz Yar 39 39

Kontrol Blokları Oğuz Yar Oğuz Yar 40 40

Kontrol Blokları (devam) Oğuz Yar Oğuz Yar 41 41

Listeler, Desteler, Sözlükler Sözlük (dictionary): Anahtar Değer şeklinde bire bir eşleştirilerek tanımlanan eşleşmelerin olduğu dahili (built in) veri yapısıdır t = {'anahtar1':deger1, 'anahtar2':deger2,...} Indeksleme anahtar (key) değerler ile yapılır Anahtarlar değiştirilemez veri yapılarından (karakter dizisi), sayılardan (int, float) veya destelerden oluşabilir. Sözlükleri anahtar:değer şeklinde ifadelerden oluşmuş sırasız bir dizi gibi düşünebiliriz. Oğuz Yar Oğuz Yar 42 42

Sözlükler Oğuz Yar Oğuz Yar 43 43

Sözlükler (devam) Üzerinde tanımlı bir sıralama metodu yok Yerleştirmeler rasgele Her anahtardan sadece bir tane bulunur d.has_values diye bir şey yok Gezinme (loop) teknikleri ile sözlüğü okumak mümkün Oğuz Yar Oğuz Yar 44 44

Sözlükler Loop Oğuz Yar Oğuz Yar 45 45

Listeler Dizi gibi düşünebiliriz, ama bilindik dizi kavramından fazlasını sunar Python içerisinde sıklıkla kullanılan bir veri yapısıdır Sıralı bir dizidir Oğuz Yar Oğuz Yar 46 46

Listeler (devam) Oğuz Yar Oğuz Yar 47 47

Listeler (devam) Oğuz Yar Oğuz Yar 48 48

Listeler (devam) Oğuz Yar Oğuz Yar 49 49

Desteler (Tuple) Desteler değiştirilemez listelerdir Listelerle aynı özelliklere sahiptir, fakat elemanları sabittir (ekleme, silme, sıralama yapılamaz) Oğuz Yar Oğuz Yar 50 50

Desteler (devam) Oğuz Yar Oğuz Yar 51 51

Desteler (devam) Listelerden daha hızlı yazma korumalı bir tanımlama için kullanılabilir İşin başında tanımlıyıp sonrasında da değişmeyecek bir liste için deste kullanmak performans artışı sağlar (gezinme (iteration) daha hızlı) Oğuz Yar Oğuz Yar 52 52

Haritalama (map) ve Filtreler Oğuz Yar Oğuz Yar 53 53

Fonksiyonlar Oğuz Yar Oğuz Yar 54 54

Sınıflar Oğuz Yar Oğuz Yar 55 55

İnişe Geçiyoruz IDE Integrated Development Environment Linux: Eric, DrPython, Anjuta, Eclipse, Kdevelop, IDLE Windows: ActiveGrid, Komodo, PyScripter, PythonWin, PythonWorks, Visual Python, http://wiki.python.org/moin/integrateddevelopmentenvironments UDE Unintegrated Development Environment vim, emacs Oğuz Yar Oğuz Yar 56 56

Kemerlerinizi Çözebilirsiniz IPython Gelişmiş Etkileşimli Python Kabuğu Python standart kabuğu + Kılavuz sayfaları Kullandığım modulün metodları neler, nasıl kullanılır, join fonksiyonu diye bir şey vardı nasıl kullanılıyordu bu, yeni bir modül yükledim kaynak koduna bakabilir miyim,... Oğuz Yar Oğuz Yar 57 57

Ipython'dan İnci Taneleri Oğuz Yar Oğuz Yar 58 58

Ipython (devam) Oğuz Yar Oğuz Yar 59 59

Ipython (devam) Oğuz Yar Oğuz Yar 60 60

Yar Grafik Grafik Kütüphaneleri Kütüphaneleri TK: http://wiki.python.org/moin/tkinter wxwidgets: http://www.wxpython.org/ QT: http://www.riverbankcomputing.co.uk/pyqt/ GTK: http://www.pygtk.org/ Delphi: http://mmm experts.com/products.aspx?productid=3 61 61

Yar Nereden Nereden Yard Yardıım m Alabilirim? Alabilirim? http://www.python.org (e posta listeleri, kılavuzlar, vs.) http://www.python.org/doc/ http://www.turkpython.net/ : Türkçe Python Portalı http://www.belgeler.org/uygulamalar/python tutorial.html : Python Kılavuzu Ipython :) 62 62

Yar Dünyay Dünyayıı Kurtaran Kurtaran Program Program Yaz Yazıım mıı :) 63 63