You are on page 1of 22

Python nedir?

Python programlama dili versiyon 3
Not : Yazı ağırlıklı slayt ama dikkatiniz bana verin.
 Çoğunlukla C dili yazılmış yorumlanan bir programlamadır. İçinde tcl ve web
geliştirme için markdown dillerinden parçalar barındırır.
 python.org ana sitesinde bahsedilen cpython versiyonudur.
 Ülkemizde bilgisayar bölümlerinde temel makine öğrenme algoritmalarını
uygulamak üzere öğretiliyor.
 Python django ve flask ile web geliştirmede, scikit-learn ve tensorflow ile makine
öğrenmesi ve yapay zekada, numpy-scipy-scikits-mathplotlib-pandas-ipython-
jupyter ile matlaba rakip olmasıyla, numba, accelerate, mpi4py ile dağınık
hesaplamada, Python-opencv ile görüntü işlemede, kivy-pygame ile mobil
uygulama geliştirmede, PyQt ile Gui programlamada, Ethnical hackingde ün
kazanmıştır.
 Maalesef Simulink benzeri ortamı yoktur ve Python paketleri geliştirmek için
c/c++ bilmek şarttır. Python ile işletim sistemi yapılamaz.
Python Dilini Kimler Kullanmalı?

 Öğrenciler
 Araştırmacılar ve Mühendisler
 Hobici diye tabir edilen kendi başına deneyim kazanmak isteyenler.
 Şirketler, Ticari İşler
N3d3n Python?

 Programlaması kolay ve program uzunluğu kısa
 Hemen hemen ihtiyacınız olan tüm paketler hazır
 Hazır ve güçlü programlama ortamları
 Geniş kitlelerce kullanılıyor ve dili bilmeyen bile yapmak istediğinizi
anlayabiliyor.
 Değişken tipi belirtmenize gerek yok. Pointer ve referans yok.
 Unicode sayesinde İngilizce dışındaki karakterlerle çalışabiliyorsunuz.
 Yazılan program Python dilinin olduğu her yerde çalışıyor.
 Python açık kaynak olması c derleyicisinin olduğu yerde derlenip çalışmasını
sağlıyor.
Versiyon 3

 2008 de versiyon 3 çıktı. 2014 ile Python 3.4 standart hale geldi. 2020 gibi versiyon
2 desteği bitmesi dedikoduları var. 3 gelecektir.
 Daha iyi Unicode desteği
 Versiyon 2 den daha kolay yazım şekli. Programlamayı yeni öğrenenler için bile
oldukça basit.
 Daha iyi exception desteği
 Print "Merhaba" değil. Print("Merhaba")
 xrange() fonksiyonu yerine range() kullanılacak.
 raw_input() yerine artık input()
 Ver2; 15/2=7, Ver3; 15/2=7.5
 Ayrıntılar: http://getpython3.com/
Ayrıntılar:
http://www.pyzo.org/python_vs_matlab.html

Python – Matlab Karşılaştırılması

 Python 2.7 ve 3.5 - Matlab 2017a içinde karşılıklı destekleniyor. Yüklemek
için
 Komut penceresini açın.
 cd C:\Program Files\MATLAB\R2017a\extern\engines\Python
 python setup.py install yazın.
 Aynı zamanda açık kaynak matlab to Python dönüştürücüleri bulunuyor.
smop bunlardan biri.
Python Çalışma Hızı

 Python tek başına çok hızlı değildir, hele klasik bir c programcısı bu dili c
programlar gibi programlarsa programları oldukça yavaş çalışır.
 Python’un hızlı paketlerinin büyük kısmı C/C++, Fortran dillerinde geliştir.
 Hız arttırmak üzere; Cython, Numba, Accelerate, Ctypes, Cffi, mpi4py, joblib
paketleri kullanılabilir.
Python Nasıl Yüklenir?

 Windows için Python.org yada dağıtımlardan birinin sitesine girin, 32 ise x86
64 bit ise x64 seçin ve Python 3 versiyonunu indirin.
https://www.python.org/downloads/release/python-363/
https://www.anaconda.com/download/
https://software.seek.intel.com/python-distribution - üyelik gerekli.
 Çift tıklayın ve yükleyin.
 Python Linux içinde geliyor. Yok ise apt install python3 python3-pip3
 Python ile bir dosyaya yazılmış program «Python ‘program adı’.py» şeklinde
çalıştırılır.
İlk Python programı
Programlamaya başladık DİKKAT!
 Komut sistemini yada geliştirme ortamını açın. Artık Python dilini öğrendiniz.
 print("ne istersen yaz. "+'hatta Türkçe karakterleri "üÜçÇşŞİöÖĞ"' ,'ve
sayıları'+str(15/2))
 Python komut satırından kullananlar fark ettiyse matlab gibi hesap makinesi
niyetine kullanabiliyor. Bazı örnekler;
>>> 1+1
2
>>> import math
>>> a=30
>>> math.sin(a)**2 + math.cos(a)**2
1.0
>>> math.sin(30)
-0.9880316240928618
>>> math.sin(30*math.pi/180)
Ayrıntılı Okuma için;
0.49999999999999994 http://www.diveintopython3.net/index.html
Yard1m S1stem1
>>> help()

Welcome to Python 3.6's help utility!

If this is your first time using Python, you should definitely check out

the tutorial on the Internet at http://docs.python.org/3.6/tutorial/.

Enter the name of any module, keyword, or topic to get help on writing

Python programs and using Python modules. To quit this help utility and

return to the interpreter, just type "quit".

To get a list of available modules, keywords, symbols, or topics, type

"modules", "keywords", "symbols", or "topics". Each module also comes

with a one-line summary of what it does; to list the modules whose name

or summary contain a given string such as "spam", type "modules spam".

help> print

Help on built-in function print in module builtins:

print(...)

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

Prints the values to a stream, or to sys.stdout by default.

Optional keyword arguments:

file: a file-like object (stream); defaults to the current sys.stdout.

sep: string inserted between values, default a space.

end: string appended after the last value, default a newline.

flush: whether to forcibly flush the stream.

help> quit

You are now leaving help and returning to the Python interpreter. If you want to ask for help on a particular object directly from the interpreter, you
can type "help(object)". Executing "help('string')" has the same effect as typing a particular string at the help> prompt.
Komut Satırından Python Paketleri
Yüklemek
 pip(Python packet installer) başkalarının yaptığı Python uygulamalarını
kullanmanıza olanak sağlar. Eksik paketler varsa genelde otomatik bulur,
derler ve yükler. Paketleri pypi sitesinde yayınlanıyor. Hayat pip ile çok güzel.
 Conda Sadece Anaconda ve Intel Python ile kullanılabilir. Anaconda
Cloud üzerinde paketler yayınlanıyor.
 pip install « paket adı » yada python –m pip install « paket adı »
Not: Linux sistemlerinde versiyon 2 ve versiyon 3 ayrımı yapmak için pip3 kullanılabiliyor.

 Şimdi sizden eğer internet varsa numpy, scipy, mathplotlib, pandas,
bottleneck yüklemenizi istiyorum.
 pip install numpy scipy mathplotlib pandas bottleneck
 Yüklenmediyse yönetici veya root olarak komut sistemini çalıştırın ve tekrar
deneyin.
 Yorum satırı: ‘’’ Çok satırlı yorum .Programda çalışmasını istemediğiniz ama sonraki gün
«ben ne yapmıştım burada?» hatırlatması yazabileceğiniz satırlardır. ‘’’
# Tek satırlı yorum
 Listeler: İstediğiniz veri tipini saklayabilirsiniz. *args dendiyse * işareti list manasına gelir.
>>> ad_numara=[‘robotik’, 2, ’Türkçe’, 98516854]
>>> print(ad_numara)
['robotik', 2, 'Türkçe', 98516854]
>>> print(ad_numara[0]) # 0 İle başlıyor.
Robotik
>>> print(ad_numara[-1]) # matlab end -> Python -1
98516854
>>> print(ad_numara[-2]) # matlab end -> Python -1
Türkçe
 Tuple: Listelerden tek farkı bir kez tanımlanır ve uzunluğu bir daha değişmez.
>>> ad_numara=(‘robotik’, 2, ’Türkçe’, 98516854)
 Dictionary: Telefon defteri gibi. Ada karşılık numara veya tersi. **keys dendiyse ** dict
>>> SUFFIXES = {1000: ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
1024: ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']}
>>> print(SUFFIXES[1024])
['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']
‘’’IDEnizi açın lütfen ve şu programı deneyin. Python main gibi özel fonksiyonlara
ihtiyacı yoktur. Noktalı virgül şart değildir. Değeri yazdır demedikçe değer ekranda
gözükmez.’’’
x=3
if x>3:
print("üçten büyük")
elif 3>x>2:
print("üçten küçük ve 2den büyük")
else:
print("ikiden küçük")
# Tek satırda birkaç komut yazdırmak gerekirse.
import sys; x = 'foo'; sys.stdout.write(x + '\n')
İki Programda Python Dili

 İki adet programda Python dilini özetlemeye çalışacağım. Eğer
programlama dillerinden biriyle 1 sene kadar uğraşan varsa bunları anlar ve
sonraki aşamaya çabuk geçebilir.
İlk Program
SUFFIXES = {1000: ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], \
1024: ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']} # Python tip kısıtlaması çok
azdır.

def approximate_size(size, a_kilobyte_is_1024_bytes=True): # fonksiyon tanımlaması
if size < 0: # programda hata göstermek. Return gibi program çalışmayı keser.
raise ValueError('number must \ # satır uzun gelirse sonraki satırda devam et.
be non-negative')

multiple = 1024 if a_kilobyte_is_1024_bytes else 1000 # yanlış yazmadım 
for suffix in SUFFIXES[multiple]: # bildiğimiz for loop
size /= multiple
if size < multiple:
return '{0:.1f} {1}'.format(size, suffix) # ‘{0},{1}’format(0,1) ‘0,1’ sonunu verir.

raise ValueError('number too large')

if __name__ == '__main__': # illa main fonksiyonu olsun diyenler için. Olmasa da olur.
print(approximate_size(1000000000000, False))
print(approximate_size(1000000000000))
İkinci Program
def fib(max):
a, b = 0, 1
while a < max:
yield a
a, b = b, a + b

# yield generator veri tipidir. Return oluşturulan veriyi dışarı kopyalar ve fonksiyonu
daha da çalıştırmaz. yield ise next metoduyla kullanılır ve fonksiyonun çalışmasını
kesmez durdurur. Her next() kullanıldığında fonksiyonun çalışmasını kaldığı yerden
devam ettir.
# Generator veri tipi büyük verileri işlerken ram dolmasın diye kullanılır. Aslında yavaş
bir metottur. Return tüm veriyi kopyalar.
Fonksiyonu başka bir dosyadan
çalıştırmak
 Önceki slaytta yazdığımız fonksiyonu için bir çalışma klasörü oluşturun ve
fibonacci.py adında text dosyası açın.
 Komut sistemini bulunduğunuz klasöre cd «tam dosyaadı» ile yönlendirin.
 from fibonacci import fib # şeklinde dahil edilebilir
 list(fib(1000)) diye çalıştırın.
Pythonda Closureler
Daha hızlı, daha az kod, daha derli toplu
1) Bildiğimiz döngü ile yavaş yavaş hesaplar.
squares = []
for x in range(10):
squares.append(x**2)
2) Python fonksiyonlarını kullanarak. Orta karar hızlı
squares = list(map(lambda x: x**2, range(10)))
3) Closure ile hesapla. Oldukça hızlı
squares = [x**2 for x in range(10)]
4) Matrix Transpozu için 4 farklı yol:
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], ]
a) [[row[i] for row in matrix] for i in range(4)]
b) for i in range(4):
transposed.append([row[i] for row in matrix])
c) transposed = []
for i in range(4):
transposed_row = []
for row in matrix:
transposed_row.append(row[i])
transposed.append(transposed_row)
d) list(zip(*matrix))
 50 sayfalık bir doküman. Sonraki
derslerde matlabı tanıyorsunuz diye
matlab ile Python
Karşılaştırması yapacağım.
Sonraki zamanlarda numpy, matplotlib,
Python-opencv anlatıp Python ile neler
yapılabilir anlamış olacaksınız.

Python temelinde kalan boşlukları zaman
içinde uygulama yaparak
tamamlayacağım.

Sormak istediniz soru var mı?

**Öğreniklerinizi kullanarak basit ve yaratıcı
uygulamalar yapın ve burada sunun**
Referanslar

 http://www.pyzo.org/
 http://getpython3.com/
 http://www.diveintopython3.net/index.html
 https://www.tutorialspoint.com/python/python_dictionary.htm
 https://docs.python.org/3/tutorial/index.html