Python derlenmeye gerek olmadan çalıştırılabilen, basit ve temiz söz dizimine sahip, öğrenmesi kolay ve zevkli bir programlama dilidir. Diğer Özellikleri:
- Interpreted(yorumlanabilir) bir dil, derlenmeden çalışır. Python yorumlayıcısı her seferinde bir satır kod okur, düşük seviye makine diline (bayt kodu) çevirir ve ardından çalıştırır.
- Yorumlanabilir bir dil olduğu için kod yazmadan önce bilgisayarınıza Python kurmanız gerekir.
- Açık kaynak(Open Source) bir dil.
- Yüksek seviyeli bir dil.
- Maya ve Blender gibi programlarda script dili olarak kullanılabildiği gibi programlama dili olarak da kullanılabilir.
- Masaüstü programlar yapılabildiği gibi web sayfaları da yapılabilir.
Python anlaşılması kolay ve basit söz dizimi sayesinde akademik ve bilimsel çalışmalarda artık popüler olmaya başladı. Ayrıca Google ve Youtube gibi büyük firmaların kullandığı Object-oriented programming (OOP)-nesne tabanlı bir programlama dilidir. Popülerliği yanında büyük bir Python topluluğu vardır. Bu topluluk sayesinde Python geliştiricileri çok hızlı bir şekilde Python ile ilgili aradıkları bilgilere ulaşabilirler. Değişken türlerini deklare etmeye gerek yoktur. Böylece bir Python uygulaması çok hızlı bir şekilde yazılabilir.
Python kodlarını çalıştırabilmek için bilgisayarınızda python yüklü olmalı, ayrıca editör olarak da PYCharm kullanabilirsiniz.
Python yüklü olup olmadığını kontrol etmek için aşağıda ki kodları bilgisayarınızın komut satırında çalıştırabilirsiniz.
where python
#C:\Users\USERNAME-PC\anaconda3\python.exe
#C:\Users\USERNAME-PC\AppData\Local\Microsoft\WindowsApps\python.exe
Python yüklü ise hangi versiyonu yüklü:
python --version
#Python 3.8.8
#veya
python -V
#Python 3.8.8
Değişken Türleri
type(9.0)#Float
type(9)#int
type("hello world")#str
String İfadeler
'a'+'b' #ab
'a'+' b' #a b
'a'*3 #aaa
'a''b''c' #abc
'a'/3 #TypeError: unsupported operand type(s) for /: 'str' and 'int'
len("mahmut") #6, 6 karakter uzunluğunda
isim="mahmut"
isim.upper() #MAHMUT
soyad="AYDIN"
soyad.lower() #aydin
ad_soyad="mahmut aydın"
ad_soyad.capitalize() #Mahmut aydın
ad_soyad.title() #Mahmut Aydın
sehir="ANKARA"
sehir.isupper() #True
sehir.islower() #False
isim="Demet"
isim.replace("e","a") #Damat
baskent=" ankara "
baskent.strip() #ankara
baskent.strip("a")#nkar
marka="arcelik"
marka[0]#a
marka[1]#r
marka[2]#c
marka[3]#e
marka[4]#l
marka[5]#i
marka[6]#k
marka[7]#IndexError: string index out of range
marka[0:5]#arcel 0 dahil 5 değil
Tip Dönüşümleri
fiyat=12.0
type(fiyat)#float
int(fiyat)#12
sicaklik=37
type(sicaklik)#int
float(sicaklik)#37.0
yas='36'
type(yas)#str
int(yas)#36
Basit Hesaplama Fonksiyonları:abs(), max(), min(), sum(), len()
- abs() - Mutlak değer hesaplama.
- max() - Liste içinde ki max değeri alır
- min() - liste içinde ki min değeri alır
- sum() - Liste içinde ki ortalama değer hesaplanır
- len()- Listenin uzunluğu hesaplanır
abs(7)#7
abs(7)#7
abs(-7)#7
max(3,1,5,-2)#5
max((3,1,5,-2))#5
min(3,1,5,-2)#-2 tuple içinde min
min((3,1,5,-2))#-2 tuple içinde min
sum((3,1,5,-2))#7 tuple içinde toplam
sum([3,1,5,-2])#7 list içinde toplam
c=3,1,5,-2
len(c)#4
d=[3,1,5,-2]
len(d)#4 liste boyutu
dir() metodu ile değişken üzerine uygulanabilecek metodların listesi
memleket="Erzurum"
dir(memleket)
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__dir__',
'__doc__',
'__eq__',
.....]
Tek Satır Yorum
#tek satır yorum satırı
Çok Satır Yorum
'''
Çok satırlı
yorum satırı.
'''
Değişkenlere Değer Atama
sayi = 25 # tam sayı
litre = 100.0 # ondalıklı sayı
isim = "mahmut" # string ifade
print(sayi)#25
print(litre)#100.0
print(isim)#mahmut
Çoklu Değer Atama
plaka,sehir = 25,"Erzurum"
print(plaka)#25
print(sehir)#Erzurum
Tırnak Kullanımları
#Tek tırnak
yazi = 'Kars'
print(yazi)
#Çift tırnak
isim = "Serhat"
print(isim)
#Tırnakların iç içe kullanımı.
mesaj = "1071'de Anadolu Tamamen Türklerin Oldu"
print(mesaj)
Fonksiyon Kullanımı
def carp(sayi1,sayi2):
carpim = sayi1*sayi2
print(carpim)
carp(2,3)#6
def topla(sayi1,sayi2):
toplam = sayi1+sayi2
return toplam
topla(2,3)#5
İsimsiz Fonksiyon-Lambda
toplam=lambda a,b:a+b
toplam(2,3)#5
sirasiz_liste=[(b,3),(a,8),(d,12),(c,1)]
sorted(sirasiz_liste,key=lambda x:x[1])
#[(c,1),(b,3),(a,8),(d,12)]
Vektörel İşlemler
#OOP
liste1=[1,2,3,4,5]
liste2=[5,6,7,8,9]
ab=[]
for i in range(0,len(a))
ab.append(a[i]*b[i])
print(ab)# [5 12 21 32 45]
#Bu işlemi Numpy kütüphanesi ile for çevirmeden yapabiliriz
#FP
liste1=[1,2,3,4,5]
liste2=[5,6,7,8,9]
import numpy as np
a=np.array(liste1)
b=np.array(liste2)
print(a*b)# [5 12 21 32 45]
Koşul Deyimleri
x, y = 5, 5
if (x > y):
print("x > y")
elif (y > x):
print("y > x")
else:
print("y = x")
baraj=50
notunuz=int(input("Notunuzu giriniz:"))
if notunuz > baraj:
print("Tebrikler, dersi geçtiniz")
elif notunuz < baraj:
print("Kaldınız, daha çok çalışmanız gerekir")
else:
print("Dersi geçtiniz, ancak daha çok çalışmanız gerekir.")
Döngüler
#while döngüsü
kosul, j = True, 0
while (kosul):
print(j)
j += 1
kosul = (j != 5)
#çıktı: 0, 1, 2, 3, 4
#for döngüsü
for i in range(0, 5):
print(i)
#çıktı: 0, 1, 2, 3, 4
Break&Continue
liste=[10,30,40,50,75,65,79,100]
for i in liste:
if i==40:
#print(str(i)+" break")
break
else:
print(i)
print("*********************")
for i in liste:
if(i==40):
#print(str(i)+" continue")
continue
else:
print(i)
10
30
*********************
10
30
50
75
65
79
100
Listeler
liste_nesnesi[baslangic_indisi:bitis_indisi:adim]
baslangic_indisi: getirilecek alt listenin ilk elemanının indis değeridir.
Bu indiste yer alan eleman alt listeye dahil edilir. Varsayılan değeri 0'dır.
bitis_indisi: getirilecek alt listenin son elemanının indis değeridir.
Bu indiste yer alan eleman alt listeye dahil edilmez. Varsayılan değeri, “eleman sayısı -1” şeklinde hesaplanır.
adim: getirilecek alt listedeki elemanların indis aralıklarını belirtmektedir. Varsayılan değeri 1'dir.
renkListesi = ["sarı","kırmızı", "siyah", "beyaz", "bordo", "mavi"]
renkListesi[0] #sarı
renkListesi[5] #mavi
renkListesi[-1] #mavi
renkListesi[-3] #beyaz
#liste dilimleme yöntemi
renkListesi[::] #['sarı', 'kırmızı', 'siyah', 'beyaz', 'bordo', 'mavi']
renkListesi[1::1] #['kırmızı', 'siyah', 'beyaz', 'bordo', 'mavi']
renkListesi[1::2] #['kırmızı', 'beyaz', 'mavi']
renkListesi[:4] #['sarı', 'kırmızı', 'siyah', 'beyaz']
renkListesi[::-1] #['mavi', 'bordo', 'beyaz', 'siyah', 'kırmızı', 'sarı']
renkListesi[:2:-1] #['mavi', 'bordo', 'beyaz']
renkListesi[1:3]# kırmızı, siyah
renkListesi[1:2]# kırmızı
renkListesi[0:2]# sarı, kırmızı
renkListesi[:2]# sarı, kırmızı
renkListesi[2:]# siyah, beyaz, bordo, mavi
renkListesi[2:-1] #siyah, beyaz, bordo
notlar=[60,90,58,60.5,"ankara",[12,25,2]]# basit liste
type(notlar)#list
len(notlar)#6
type(notlar[0])#int
type(notlar[3])#float
type(notlar[4])#str
type(notlar[5])#list
del notlar # notlar adında ki listeyi silmek için kullanılır
del notlar[0]#listenin ilk nesnesini siler
notlar.remove(60)#listeden belirli bir elemanı silmek için kullanılır
notlar.pop(4)#listeden eleman silmenin başka bir yolu
notlar.pop()#varsayılan olarak son elemanı siler
notlar=notlar+[36]#listeye eleman ekler
notlar.append(25)#listeye eleman eklemenin başka bir yolu
notlar.insert(0,"mahmut")#listenin istenilen indeksine eleman eklenebilir
notlar.insert(len(notlar),"sinan")#listenin sonuna eleman ekler
notlar[2]="ayşe"#listenin istenilen indeksi değiştirilebilir
liste=["ali","ahsen","ali","mahmut","sinan"]
liste.count("ali")#istenilen nesnenin frekansını bulmak için
liste_yedek=liste.copy()#listenin kopyasını almak için kullanılır
liste.extend(["10","enes"])#2 listeyi birleştirmek için kullanılır
liste.index("ali")#ali nesnesinin liste içinde ki sırasını-index değerini verir
liste.reverse()#listeyi tersine çevirir
liste.sort()#liste içinde sıralama yapacaktır ancak tüm elemanların aynı tip veriler olması gerekir.
liste.clear()#liste içinde ki tüm elemanları siler, temizler
Tuple(Demet) Oluşturma
Tuple da aynen listeler(diziler) gibidir tek farkları değiştirilemezler ve köşeli parantez değil yuvarlak parantez içine alınırlar.
t=("mahmut","ali","ahsen",60,[20,52,14],65.15)#her türden veri olabilir, int str float vs..
t[2]=99 #tuple lar değiştirilemezler TypeError: 'tuple' object does not support item assignment
Sözlükler
Sözlükler Listeler veya Tuple'lara benzer, değiştirme vardır fakat sıralama yoktur. Kümeli parantez içinde tanımlanırlar.
sozluk={
"baskent":"Ankara",
"plaka":01,
"gunler":["pazartesi","salı","çarşamba","perşembe","cuma","cumartesi","pazar"]
}
sozluk[0]#KeyError: 0 hatası alırız, Sözlükler index değerleri ile değil anahtar değerleri ile çağrılırlar.
sozluk["baskent"]#Ankara
sozluk["dil"]="Türkçe"#sözlüğe yeni bir elaman eklemek için
sozluk["baskent"]="Londra" # sözlüğün bir elemanını değiştirmek için kullanılır
Set(Kümeler)
Set ifadeleri içinde tekrar eden veriler bulunmaz, index omadığı için sıralamada yok, listeler set metodu ile kümelere dönüştürülebilirler
isim_listesi=["ali","ali","ahmet","mehmet","mehmet"]
s=set(isim_listesi)#{"ali","ahmet","mehmet"} tekrar eden eleman yok
kelime="araba"
s=set(kelime)#{"a","r","b"}
len(s)#3
s[0]#TypeError: 'set' object is not subscriptable
s.remove("a")# eleman silmek için
s.remove("a")# eleman silmek için
s.remove("x")#KeyError: 'x' hatası alabiliriz, hata almamak ve devam etmek için discard kullanılır
s.discard("x")
s.add("y")#yeni eleman ekleriz
set1=set([1,3,5])
set2=set([1,2,3])
set1.difference(set2)#1 de olup 2 de olmayanlar 5
set2.difference(set1)#2 de olup 1 de olmayanlar 2
set1.symmetric_difference(set2)#Her ikisinde de aynı anda olmayanlar 2 ve 5
set1.intersection(set2)#herikisinde de olanlar 1 ve 3
set1.union(set2)#1,2,3,5 tüm elemanları tekrarsız birleştirir
#İki Kümenin kesişiminin boş olup olmadığını kontrol etmek
set1=([7,8,9])
set2=([5,6,7,8,9,10])
set1.isdisjoint(set2)#iki kümenin sesişimi boş mu? False hayır boş değil
#bir kümenin elemanları diğer kümenin alt elemanlarımı
set1.issubset(set2)#True set1 set2'nin alt kümesimidir?
#bir küme diğer kümeyi kapsar mı
set2.issuperset(set1)#True
Map, Filter, Reduce Kullanımı
#liste elemanlarının herbirine 10 eklemek istersek
#liste elemanlarının üzerinde işlem yapmak istersek
liste1=[1,2,3,4,5]
list(map(lambda x:x+10,liste1))#[11, 12, 13, 14, 15]
#liste elemanlarında çift sayıları filtrelemek-bulmak istersek
#değerler ile ilgili bir işlem yapmadan getirecek
liste2=[1,2,3,4,5]
list(filter(lambda x:x%2==0,liste2))#[2, 4]
Try Except Kullanımı
sayi1=10
sayi2=0
sayi3="2"
try:
print(sayi1/sayi3)#tip hatası
print(sayi1/sayi2)#payda sıfır olamaz
except ZeroDivisionError:
print("Payda Sıfır Olamaz")
except TypeError:
print("Tip hatası")
Sınıf Tanımlama ve Kullanma
class insan:
boy=1.79
dogumTarihi=1983
def yasHesapla(self):
tarih = str(datetime.date.today());
return int(tarih[:4])-self.dogumTarihi
mahmut=insan()
print(mahmut.yasHesapla())
class Araba:
model=2013
km=48000
renk="Beyaz"
boya=""
vites=""
def __init__(self):
self.km=25000
opel=Araba()
opel.km=89000
print(opel.km)#89000
bmv=Araba()
print(bmv.km)#25000
Kütüphane Kullanımı
import numpy as np
import pandas as pd
from sklearn.preprocessing import Imputer
Csv dosyası yükleme
import pandas as pd
veriler = pd.read_csv("data.csv")
# Kolon ekrana yazma
print(veriler[[boy]])
print(veriler[[boy,kilo]])
Excel dosyası yükleme
import pandas as pd
veriler = pd.read_excel("data.xls")
# Kolon ekrana yazma
print(veriler[[boy]])
print(veriler[[boy,kilo]])
Dosya Yolu(Path) Öğrenme
Bir dosyanın dosya yolunu(path) görmek için kullanacağınız kod:
import os
print(os.path.dirname(__file__))
#C:/Users/USERNAME-PC/Desktop/pythonProject