Biyoinformatik dünyasına kaliteli, özgün ve Türkçe içerikler kazandırmayı hedefleyen bir platform..

friends friends friends

Sıfırdan İleri Seviye Python

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


Link

Python
0 Beğeni
Önceki Yazı

Biyoinformatik Nedir?

14 Kas. 2022 tarihinde yayınlandı.
Sonraki Yazı

Kaggle

14 Kas. 2022 tarihinde yayınlandı.
arrow