Будь Собой, Кем бы Ты Не Был!


Bayram Güçlü 21 Kasım 2017 17:05

Python Notları

xxx :: Döndürülen değer.

xxx :: Parametre(değiştirge).

xxx :: Parametre değeri.

xxx :: Öntanımlı değer.

xxx :: Nitelik(Değişken, Özellik).

xxx :: Kaçış dizisi.

xxx :: İşleç.

xxx :: İfade.



xxx() :: Metot(yöntem, işlev).

xxx() :: Gömülü fonksiyon.


Komut Satırı Bilgisi

pwd = Hangi dizin altında bulunduğumuzu gösterir.

ls = İçinde bulunulan dizinin içeriğini listeler.

cd = Dizin değiştirir.
cd .. = Bir üst dizine götürür.
cd ~ = Kullanıcı dizinine götürür.

echo = Bir değeri ekrana yazdırır.
echo $HOME
echo $HOME/Desktop
echo $PATH

ln = Dosyalar arasında simgesel bağlar oluşturur.
ln -s /usr/lib/plugins/libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so
ln -s $HOME/çok_uzun_bir_dosya_adı $HOME/dosya

chmod = Çalıştırma izinlerini değiştirir.
chmod +x deneme = Çalıştırma yetkisi veririlir.
chmod a+x deneme = Bütün kullanıcılara çalıştırma yetkisi verilir.
chmod u+x deneme = Dosya sahibine çalıştırma yetkisi verilir.
chmod -x deneme = Çalıştırma yetkisi geri alınır.

cp = Bir dosyayı başka bir konuma kopyalar.
cp $HOME/Desktop/deneme.txt /usr/bin/
cp $HOME/Desktop/deneme.txt /usr/bin/dosyanın_yeni_adı
cp -rf özgün_dizin hedef_dizin_adresi = Bir dizinin tamamı başka bir konuma kopyalanır.

rm = Belirtilen bir dosyayı siler.
rm $HOME/Desktop/deneme.txt
rm -rf $HOME/silinecek_dizin = Belirtilen dizini siler.

mv = Bir dosyayı bir yerden başka bir yere taşır.
mv $HOME/Desktop/deneme.txt /usr/bin/
mv $HOME/Desktop/deneme.txt $HOME/Desktop/yeni_ad

which = Bir programın yolunu gösterir.

PATH=$PATH:/yola/eklemek/istediğimiz/dizin
PATH=$PATH:$HOME/Desktop


Temel Bilgiler

Koşullu Durumlar ve Döngüler

if... elif... elif... else...
eğer böyle bir durum varsa:
    bunu yap
eğer şöyle bir durum varsa:
    şunu yap
eğer filancaysa:
    şöyle git
eğer falancaysa:
    böyle gel



while (..iken, olduğu sürece)
while ... olduğu sürece:
    ... yap


for... in... (... içindeki her bir değer için)
for değişken_adı in değişken:
     yapılacak_işlem


pass = Hiçbir şey yapılmadan devam edilmesini sağlar.

break = Döngüden çıkılmasını sağlar.

continue = Sonraki satırları es geçip döngünün başına geri dönülmesini sağlar.


Kaçış Dizileri

\ (ters taksim)
• Karakter dizisi içinde tek tırnak işaretini kullanabilmemizi sağlar: \'
• Karakter dizisi içinde çift tırnak işaretini kullanabilmemizi sağlar: \"
• Karakter dizisi içinde \ işaretini kullanabilmemizi sağlar: \\

\n (satırbaşı) = Yeni bir satıra geçmemizi sağlar.

\t (sekme) = Karakterler arasında sekme boşluğu bırakmamızı sağlar.

\a (zil sesi) = Destekleyen sistemlerde, kasa hoparlöründen bir ‘bip’ sesi verilmesini sağlar.

\r (aynı satırbaşı) = Aynı satırın başına dönülmesini sağlar.

\v (düşey sekme) = Destekleyen sistemlerde düşey sekme oluşturulmasını sağlar.

\b (geri silme) = Kendisinden önce gelen karakterin silinmesini sağlar.

\u (küçük unicode) = UNICODE kod konumlarını gösterebilmemizi sağlar.

\U (büyük unicode) = UNICODE kod konumlarını gösterebilmemizi sağlar.

\N (uzun ad) = Karakterleri UNICODE adlarına göre kullanabilmemizi sağlar.

\x (onaltılı karakter) = Onaltılı sistemdeki bir sayının karakter karşılığını gösterebilmemizi sağlar.

\f (sayfa başı) = Yeni bir sayfaya geçilmesini sağlar.

r (etkisizleştirme) = Karakter dizisi içinde kaçış dizilerini kullanabilmemizi sağlar.


İşleçler

Aritmetik



+ (toplama) | - (çıkarma) | * (çarpma) | / (bölme) | ** (kuvvet) | % (modülüs) | // (taban bölme)

float(a/b) = a/b | int(a/b) = a//b

Karşılaştırma



== (eşittir) | != (eşit değildir) | > (büyüktür) | < (küçüktür) | >= (büyük eşittir) | <= (küçük eşittir)

Mantık



bool(" ") # True
bool("") # False
bool("0") # True
bool(0) # False

and (ve) | or (veya) | not (değil)

Değer Atama



= | += | -= | /= | *= | %= | **= | //=

Aitlik ve Kimlik



in = Bir karakter dizisi ya da sayının, herhangi bir veri tipi içinde bulunup bulunmadığını sorgular.
a = "abcd"
"a" in a # True

a = 100
id(a)

Küçük nesneler için bellekte yeni yer oluşturulmaz.
-5 ile 257 arasında kalan sayılar Python tarafından ufak olarak değerlendirilir ve önbelleğe alınır.

is = İki nesnenin aynı nesneler olup olmadığını sorgular. id(a) == id(a) = a is a

Listeler, sözlükler, demetler için bellekte farklı yerler oluşturulur. Ama iki farklı listenin, sözlüğün veya demetin veritipleri için bellekte bir adres kullanılır.
sozluk1 = {} | id(type(sozluk1) | type(a) is dict
id(sozluk1) | id(type(sozluk2) | type(b) is list
sozluk2 = {} | |
id(sozluk2) | |


Hata Yakalama

Error (Programcı Hataları) , Bug (Program Kusurları) , Exception (İstisnalar)

try... except...
try:
    ....
except Hata_Türü:
    print("Bir hata oluştu")


try... except... as...
try:
    ....
except Hata_Türü as hata:
    print("hata mesajı: ", hata)


try... except... else...
try:
    ...
except Hata_Türü:
    print("Bir hata oluştu")
else:
    try:
        ...
    except Hata_Türü:
        #505d7d;">raise Hata_Türü("Bir hata oluştu")


try:
    ...
except Hata_Türü:
    print("Bir hata oluştu")
    raise


Veri Tipleri

Değiştirilemeyen Veri Tipleri



Karakter Dizisi
Demet
Bayt
Sayı

Değiştirilebilen Veri Tipleri



Liste
Bayt Dizisi
Sözlük
Küme
Dondurulmuş Küme


Karakter Dizileri

Karakter dizileri değiştirilemez veri tipleridir. Ama değişken içerisine depolama yöntemi ile istenilen sonuçlar alınabilir.

str()

encoding
errors

değişken_adı = "abc123"

karakter_dizisi[öğe_sırası]
karakter_dizisi[alınacak_ilk_öğenin_sırası:alınacak_son_öğenin_sırasının_bir_fazlası]
karakter_dizisi[ilk_karakter:son_karakter:atlama_sayısı]

format() = Karakter dizilerini biçimlendirmemizi sağlar.
format(12, '.2f')


Biçimlendirme

format() = Karakter dizisini biçimlendirmemizi sağlar.
print("{} ve {} iyi bir ikilidir".format("Python", "Django"))
"{0} {1} ({1} {0})".format("Fırat", "Özgül")
X
: = Bu karakterden sonra biçimlendirme türü belirtilir.

> = Sağa yaslama: rjust()
"|{:>15}|".format("istihza")

< = Sola yaslama: ljust()
"|{:<15}|".format("istihza")

^ = Ortalama: center()
"|{:^15}|".format("istihza")

s = Karakter dizilerini temsil eder.
"{:s} ve {:s} iyi bir ikilidir!".format("Python", "Django")

c = 0 ile 256 arası sayıların ASCII tablosundaki karşılıklarını temsil eder.
"{:c}".format(65)

d = Sayıları temsil eder.

o = Onlu düzendeki sayıları sekizli düzendeki karşılıklarına çevirir.

x = Onlu düzendeki sayıları onaltılı düzendeki karşılıklarına çevirir.

X = Onlu düzendeki sayıları onaltılı düzendeki karşılıklarına çevirir.

b = Onlu düzendeki sayıları ikili düzendeki karşılıklarına çevirir.

f = Kayan noktalı sayıları temsil eder.
"{:.2f}".format(50)

, = Sayıları basamaklarına ayırarak gösterir.
"{:,}".format(1234567890) # çıktı: ’1,234,567,890’


Biçimlendirme

replace() = Karakter değiştirmek için veya karakter silmek için kullanılır. Üçüncü parametre olarak kaç karakter değiştirileceğini belirtebiliriz. karakter dizisi
karakter_dizisi.replace(eski_karakter_dizisi, yeni_karakter_dizisi)
"eleman".replace("e", "E", 1)


lower() = Bütün harfleri küçük harf yapar. karakter dizisi
iller = "ISPARTA, ADIYAMAN, DİYARBAKIR, AYDIN, BALIKESİR, AĞRI"
iller = iller.replace("I", "ı").replace("İ", "i").lower()


upper() = Bütün harfleri büyük harf yapar. karakter dizisi

capitalize() = İlk harfi büyütür. karakter dizisi

title() = Her bir kelimenin ilk harfini büyütür. karakter dizisi

swapcase() = Büyük harfleri küçük, küçük harfleri büyük harf yapar. karakter dizisi

casefold() = Türkçe açısından lover() metodu ile aynı işlevi görür. karakter dizisi
"ß".casefold() # çıktı: ’ß’
"ß".casefold() # çıktı: ’ss’


Bölümleme

split() = Karakter dizisini soldan sağa doğru okuyarak liste haline getirir. liste
"Antalya Büyükşehir Belediyesi".split(" ", 2)

rsplit() = Karakter dizisini sağdan sola doğru okuyarak liste haline getirir. liste

splitlines() = Karakter dizisini satır sonlarından bölerek liste haline getirir. liste


partition() = Karakter dizisi belli bir ölçüte göre üçe bölünür. Karakterler soldan sağa okunur. demet

rpartition() = Karakter dizisi belli bir ölçüte göre üçe bölünür. Karakterler sağdan sola okunur. demet


Kırpma

Kırpılan Karakterler:
' ' (boşluk karakteri)
\t (sekme oluşturan kaçış dizisi)
\n (satır başına geçiren kaçış dizisi)
\r (imleci aynı satırın başına döndüren kaçış dizisi)
\v (düşey sekme oluşturan kaçış dizisi)
\f (yeni bir sayfaya geçiren kaçış dizisi)

strip() = Bir karakter dizisinin başında(solunda) ve sonunda(sağında) yer alan boşluk ve yeni satır(\n) gibi karakterleri siler. karakter dizisi

rstrip() = Bir karakter dizisinin yalnız sonunda(sağında) yer alan boşluk ve yeni satır(\n) gibi karakterleri siler. karakter dizisi

lstrip() = Bir karakter dizisinin yalnız başında(solunda) yer alan boşluk ve yeni satır(\n) gibi karakterleri siler. karakter dizisi

• Bu metodlar ile parametre olarak girilen değer de kırpılabilir.
"kazak".lstrip("k")


Sorgulama

Başlangıç ve Bitiş Değeri



startswith() = Bir karakter dizisinin belirtilen karakter ile başlayıp başlamadığı sorgulanır. İkinci parametre ile belirtilen sıradaki karakter sorgulanır.

endswith() = Bir karakter dizisinin belirtilen karakter ile bitip bitmediği sorgulanır.

Büyük-Küçük Harf



islower() = Tamamen küçük harflerden oluşup oluşmadığı sorgulanır.

isupper() = Tamamen büyük harflerden oluşup oluşmadığı sorgulanır.

istitle() = İlk harflerin büyük olup olmadığı sorgulanır.

Nitelik



isalpha() = Bir karakterin alfabetik olup olmadığı sorgulanır.

isdigit() = Bir karakter dizisinin sayısal olup olmadığı sorgulanır.

isalnum() = Bir karakter dizisinin alfanümerik(alfabetik ve sayısal karakterlerin birleşimi) olup olmadığını sorgular.

isdecimal() =Bir karakter dizisinin ondalık sayılardan oluşup oluşmadığını sorgular.

isidentifier() = Neyin tanımlayıcı olup neyin tanımlayıcı olmadığını denetler.
Yani karakter dizisi değişken, fonksiyon, modül adı olarak kullanılabilir mi kullanılamaz mı denetlenir.

isnumeric() = Bir karakter dizisinin nümerik olup olmadığını denetler.



isspace() = Bir karakter dizisinin tamamen boşluk karakterlerinden oluşup oluşmadığı sorgulanır.

isprintable() = Karakter dizisinin yazdırılabilir olup olmadığını denetler.

Yazdırılamaz karakterler:
\n | \t | \r


Konum Bulma

find() = Karakterin hangi konumda yer aldığını gösterir. Soldan sağa doğru okur. tamsayı
"karakter_dizisi".find("aranacak_karakter",başlangıç_noktası,bitiş_noktası)
Bir öğe bulunamadığı zaman -1 çıktısı verir.

rfind() = Karakterin hangi konumda yer aldığını gösterir. Sağdan sola doğru okuma yapar. tamsayı
Bir öğe bulunamadığı zaman -1 çıktısı verir.

index() = Karakterin hangi konumda yer aldığını gösterir. Soldan sağa doğru okur. tamsayı
Bir öğe bulunamadığı zaman hata çıktısı verir.

rindex() = Karakter hangi konumda yer aldığını gösterir. Sağdan sola doğru okur. tamsayı
Bir öğe bulunamadığı zaman hata çıktısı verir.


Yaslama

center() = Sağda ve solda belirtilen sayı kadar boşluk veya belirtilen karakteri ekler. Karakter dizisini her iki yana yaslar. karakter dizisi
İkinci parametre verilerek boşluk yerine başka bir karakter yerleştirilebilir.

ljust() = Sağda belirtilen sayı kadar boşluk bırakarak karakter dizisinin sola yaslanmasını sağlar. karakter dizisi

rjust() = Solda belirtilen sayı kadar boşluk bırakarak karakter dizisinin sağa yaslanmasını sağlar. karakter dizisi

zfill() = Karakter dizisinin soluna belirtilen sayıda 0 yerleştirir. karakter dizisi


Diğerleri

join() = Liste üzerinde kullanılırsa listeyi karakter dizisi haline getirir. Karakter dizisi üzerinde kullanılırsa her bir karakteri ayırır. karakter dizisi
a = [’Beşiktaş’, ’Jimnastik’, ’Kulübü’]
" ".join(a)
"-".join(a)

count() = Bir karakter dizisi içerisinde belirtilen karakterden kaç tane olduğunu gösterir. tamsayı
karakter_dizisi.count(arananan_karakter, başlama_değeri, bitiş_değeri)

expandtabs() = Sekme boşluklarını genişletir. karakter dizisi

maketrans() = Çeviri tablosu oluşturur. sözlük
str.maketrans(kaynak, hedef)
silinecek = "aeıioöuüAEIİOÖUÜ"
str.maketrans('', '', silinecek)

translate() = Çeviri tablosundaki eşleşmeleri karakter dizisi üzerine uygular. karakter dizisi



encode() = Karakter dizileri istenen bir kodlama sistemine göre kodlanmasını sağlar.
a.encode("utf-32")

errors strict

strict = Karakter temsil edilemiyorsa hata verilir.
ignore = Temsil edilemeyen karakter görmezden gelinir.
replace = Temsil edilemeyen karakterin yerine bir ‘?’ işareti koyulur.
xmlcharrefreplace = Temsil edilemeyen karakter yerine XML karşılığı koyulur.


Listeler

Değiştirilebilir veri tipleridir.

list()
list(range(10))

değişken_adı = ["a", "b", "c", 1, 2, 3, ["a", 1], ("a", 1), {"a": 1, 2: "b"}]

Değiştirme



liste[öğe_sırası] = yeni_öğe

Ekleme



liste + [yeni_öğe]
liste[2:2] = yeni_öğe

Silme



del liste[öğe_sırası]

yeni_liste = liste[:] # Liste içindeki öğeler bir bir yeni liste içerisine kopyalanacaktır. Her iki liste de birbirlerinden bağımsız iki ayrı liste olacaktır.
yeni_liste = liste # Bu şekilde eşitlenerek oluşturulan yeni listelerde birinin üzerinde yapılan değişiklik diğerini de etkileyecektir.

liste = [i for i in range(1000) if i % 2 == 0]

append() = Listenin sonuna tek tek öğe ekler. a[len(a):] = [x]
liste.append("masa")

extend() = Bir listeyi genişletir. Bir listenin sonuna birden fazla öğe ekleyebilmek için kullanılabilir. a[len(a):] = Liste
liste.extend(["a", "b"])

insert() = Bir öğeyi listenin belirtilen konumuna yerleştirir.
liste.insert(0, "erik")

remove() = Belirtilen öğeyi siler.
liste.remove("elma")

pop() = Listedeki son öğeyi siler. Parametre kullanılarak belirtilen sıradaki öğe silinebilir. karakter dizisi
liste.pop(2)

reverse() = Liste içerisindeki öğeleri ters çevirir.

sort() = Listeleri içerisindeki öğeleri belli bir ölçüte göre sıralar.
reverse = Öğeleri ters çevirir. False
liste.sort(reverse=True)
key None

count() = Liste içerisinde belirtilen öğeden kaç tane olduğunu gösterir. tamsayı

index() = Bir öğenin liste içerisindeki sırasını verir. tamsayı

clear() = Liste içerisindeki bütün öğeleri siler. del a[:]

copy() = Listenin sığ kopyasını döndürür. a[:]


Demetler

Değiştirilemez veri tipleridir.

tuple()
tuple('abcdefg')
tuple(["ahmet", "mehmet", 34, 45])

değişken_adı = ("a", "b", "c", 1, 2, 3, ["a", 1], ("a", 1), {"a": 1, 2: "b"})
değişken_adı = ("a", )
değişken_adı = "a",
değişken_adı = "a", "b", "c", 1, 2, 3, ["a", 1], ("a", 1), {"a": 1, 2: "b"}

count() = Demet içerisinde belirtilen öğeden kaç tane olduğunu gösterir. tamsayı

index() = Bir öğenin demet içerisindeki sırasını verir. tamsayı


Sayılar

Tam Sayılar



int() = Bir veriyi tamsayıya çevirir. tamsayı
int('1100', 2) # ikili sistem
int('1100', 16)
# onaltılı sistem

bit_length() = Bir tamsayının kaç bit'lik yer kapladığını gösterir. tamsayı
len(bin(10)[2:]) = (10).bit_length()

Kayan Noktalı Sayılar



float() = Bir veriyi kayan noktalı sayıya çevirir. kayan noktalı sayı

as_integer_ratio() = Birbirine bölündüğünde ilgili kayan noktalı sayıyı veren iki adet tam sayı verir. demet
(4.5).as_integer_ratio()

is_integer() = Bir kayan noktalı sayının ondalık kısmında 0 dışında bir sayının olup olmadığını denetler. doğru yanlış
(12.0).is_integer()

Karmaşık Sayılar



complex() = Bir veriyi karmaşık sayıya çevirir. karmaşık sayı
complex(15, 2) # Birinci parametre gerçek kısım ikinci parametre sanal kısımdır. Sanal kısmın öntanımlı değeri 0'dır.

imag = Bir karmaşık sayının sanal kısmını verir. kayan noktalı sayı
(12+4j).imag

real = Bir karmaşık sayının gerçek kısmını verir. kayan noktalı sayı
(12+4j).real


Baytlar ve Bayt Dizileri

Baytlar



Değiştirilemez veri tipleridir.

bayt = b''

bytes() = ASCII dışında kalan karakterleri bayt'a dönüştürür.
b = bytes("ş", "utf-8")


encoding
errors

strict = Karakter temsil edilemiyorsa hata verilir.
ignore = Temsil edilemeyen karakter görmezden gelinir.
replace = Temsil edilemeyen karakterin yerine bir ‘?’ işareti koyulur.
xmlcharrefreplace = Temsil edilemeyen karakter yerine XML karşılığı koyulur.

Baytların metodları karakter dizilerinin metodları ile hemen hemen aynıdır.

decode() = Baytları belirtilen kodlama biçimine göre karakter dizilerine dönüştürür.
b"\xc4\xb0".decode("utf-8")

fromhex() = Onaltılı sayma sistemindeki bir sayıdan oluşan karakter dizisini alıp bayta dönüştürür.
bytes.fromhex("c4b0")

Bayt Dizileri



Değiştirilebilir veri tipleridir.

bytearray()
pdf = bytearray(b’PDF-1.7’)


Sözlükler

Değiştirilebilir veri tipleridir. Sıralama kavramı yoktur.

dict()

sözlük = {1: "a", 2: "b", "c": "d", 3: 4, "e": ["f", "g", 5, 6], h: ("i", "j", 7, 8, 9), 10: {"k": "l", 11: 12, "m": ["n", "o"]}}

{anahtar: değer} Sözlüklerde değer olarak her türlü veritipi kullanılabilir. Ama anahtarlar değiştirilemez veritipleri olmak zorundadır.

Ekleme

sözlük[yeni_anahtar] = yeni_değer
sözlük["Ahmet"] = "Adana"

Değiştirme

sözlük[mevcut_anahtar] = yeni_değer
sözlük["Ahmet"] = 65

harfler = 'abcçdefgğhıijklmnoöprsştuüvyz'
sözlük = {i: harfler.index(i) for i in harfler}

keys() = Sözlük içerisindeki anahtarları verir. dict_keys nesnesi
kardiz = ', '.join(sözlük.keys())

values() = Sözlük içerisindeki değerleri verir. dict_values nesnesi
liste = list(sözlük.values())
kardiz = ", ".join([str(i) for i in sözlük.values()])

items() = Sözlük içerisindeki anahtarları ve değerleri verir. dict_items nesnesi
for anahtar, değer in sözlük.items(): print("{} = {}".format(anahtar, değer))

get() = Sözlük içerisindeki anahtarlara karşılık değerleri elde etmemizi sağlar. karakter dizisi
sözlük.get(anahtar, eğer_öğe_mevcut_değilse_bunu_döndür)
sorgu = input("Lütfen anlamını öğrenmek istediğiniz kelimeyi yazınız:")
sözlük.get(sorgu, "Bu kelime veritabanımızda yoktur!")

clear() = Sözlük içerisindeki bütün öğeleri siler.

copy() = Sözlüğü gerçek anlamda kopyalar.
yedek_hava_durumu = hava_durumu.copy()

fromkeys() = Listeler, demetler, karakter dizileri vb. veritiplerini kullanarak yeni bir sözlük oluşturulmasını sağlar.
elemanlar = "Ahmet", "Mehmet", "Can"
adresler = dict.fromkeys(elemanlar, "Kadıköy")

pop() = Belirtilen sözlük öğesini siler. karakter dizisi
sözlük.pop("tatlılar", "Silinecek öğe yok!")

popitem() = Sözlük içerisinden rastgele bir öğeyi siler. demet

setdefault() = Sözlüğe yeni öğe eklememizi sağlar. Eğer eklenecek olan öğe daha önceden mevcut ise bir değişiklik yapmaz. eklenen veya mevcut olan öğenin tipi
sözlük.setdefault("meyveler", ("erik", "çilek"))

update() = Başka bir sözlük içerisindeki verileri elimizdeki mevcut sözlük üzerine ekler ve değişen değerleri günceller.
stok = {"elma": 5, "armut": 10, "peynir": 6, "sosis": 15} | yeni_stok = {"elma": 3, "armut": 20, "peynir": 8, "sosis": 4, "sucuk": 6}
stok.update(yeni_stok)


Kümeler ve Dondurulmuş Kümeler

Değiştirilebilir veri tipleridir. Sıralama kavramı yoktur. Bir öğeden yalnız bir tane bulunur. İçerisinde yalnız değiştirilemez veritiplerini barındırır.

set()

bos_kume = set()
kume = {"a", 1, 2, 3, "b", "d", "ef", (2,3,4)}
kume = set(["a", 1, 2, 3, "b", "d", "ef", (2,3,4)])

bilgi = {"işletim sistemi": "GNU", "sistem çekirdeği": "Linux", "dağıtım": "Ubuntu GNU/Linux"}
liste = [(anahtar, değer) for anahtar, değer in bilgi.items()]

import random
liste = [random.randint(0, 10000) for i in range(1000)]
küme = {i for i in liste if i < 100}

clear()

copy()

add() = Yalnız bir öğe ekler.

difference() = İki kümenin fark kümesini verir. -
k1.difference(k2) | k1 - k2

difference_update() = İki kümenin farkını alır ve kümeyi günceller. -=

discard() = Belirtilen öğeyi siler. Eğer öğe yok ise hata çıktısı vermez.

remove() = Belirtilen öğeyi siler. Eğer öğe yok ise hata çıktısı verir.

intersection() = İki kümenin kesişim kümesini verir. &

intersection_update() &=

isdisjoint() = İki kümenin ayrık kümeler olup olmadığını sorgular.

issubset() = Bir kümenin, başka bir kümenin alt kümesi olup olmadığını sorgular. <= (iki küme birbirine eşit olabilir) < (iki küme birbirine eşit olamaz)
k1 < k2 = k1 <= k2 and k1 != k2

issuperset() = Bir kümenin başka bir kümeyi kapsayıp kapsamadığını sorgular. >= >

symmetric_difference() = İki kümenin karşılıklı fark kümesini verir. ^

symmetric_difference_update() ^=

union() = İki kümenin birleşimini alır. |

update() = Bir kümeyi herhangi bir veritipini kullanarak güncellememizi sağlar. |=

pop() karakter dizisi


frozenset()
Değiştirilemez veri tipleridir.

dondurulmus = frozenset(["elma", "armut", "ayva"])


Dosya İşlemleri

open() = Dosyaları okur veya adı girilen dosya yok ise yeni bir dosya oluşturur.

f = open(dosya_adı, dosya_kipi)

data = open("deneme.txt", "w")


mode = Dosya kipi belirtilir. 'r'

encoding = Bir dosyanın hangi kod çözücü ile açılacağı belirtilir. None

errors strict
strict = Karakter temsil edilemiyorsa hata verilir.
ignore = Temsil edilemeyen karakter görmezden gelinir.
replace = Temsil edilemeyen karakterin yerine bir ‘?’ işareti koyulur.

newline None

closefd True

opener None

buffering = Tampona alma işleminin nasıl yürütüleceği belirtilir. -1
-1 = Veriler ara bellekte bekletilir dosya kapandıktan sonra bekletilen veriler dosyaya işlenir.
1 = Ara bellekte tutulan veriler dosyaya satır satır eklenir. Bu değer yalnız metin kipinde kullanılabilir.
0 = Veriler ara belleğe alınmadan doğrudan dosyaya işlenir. Bu değer yalnız ikili kipte kullanılabilir.


Dosya Kipleri

r = Okuma yetkisi verir. Dosya mevcut değilse hata verir.

w = Yazma yetkisi verir. Dosya mevcut değilse oluşturulur. Mevcut ise dosya içeriği silinir.

a = Yazma yetkisi verir. Dosya mevcut değilse oluşturulur. Mevcut ise içeriğe dokunulmaz veriler dosyaya eklenir.

x = Yazma yetkisi verir. Dosya mevcut değilse oluşturulur. Mevcut ise hata verir.



r+ = Hem yazma hem de okuma yetkisi verir. Kullanılabilmesi için belirtilen dosyanın mevcut olması gereklidir.

w+ = Hem yazma hem de okuma yetkisi verir. Dosya mevcut değilse oluşturulur. Dosya mevcut ise içerik silinir.

a+ = Hem yazma hem de okuma yetkisi verir. Dosya mevcut değilse oluşturulur. Mevcut ise içeriğe dokunulmaz veriler dosyaya eklenir.

x+ = Hem yazma hem de okuma yetkisi verir. Dosya mevcut değilse oluşturulur. Mevcut ise hata verir.



rb = Metin dosyaları ile ikili dosyaları ayırt eden sistemlerde ikili dosyaları okuma yetkisi ile açar. + r kipi özellikleri

wb = Metin dosyaları ile ikili dosyaları ayırt eden sistemlerde ikili dosyaları yazma yetkisi ile açar. + w kipi özellikleri

ab = Metin dosyaları ile ikili dosyaları ayırt eden sistemlerde ikili dosyaları yazma yetkisi ile açar. + a kipi özellikleri

xb = Metin dosyaları ile ikili dosyaları ayırt eden sistemlerde ikili dosyaları yazma yetkisi ile açar. + x kipi özellikleri



rb+ = Metin dosyaları ile ikili dosyaları ayırt eden sistemlerde ikili dosyaları hem okuma hem de yazma yetkisi ile açar. + r+ kipi özellikleri

wb+ = Metin dosyaları ile ikili dosyaları ayırt eden sistemlerde ikili dosyaları hem okuma hem de yazma yetkisi ile açar. + w+ kipi özellikleri

ab+ = Metin dosyaları ile ikili dosyaları ayırt eden sistemlerde ikili dosyaları hem okuma hem de yazma yetkisi ile açar. + a+ kipi özellikleri

xb+ = Metin dosyaları ile ikili dosyaları ayırt eden sistemlerde ikili dosyaları hem okuma hem de yazma yetkisi ile açar. + x+ kipi özellikleri


Okuma ve Yazma

read() = Dosya içeriğinin tamamını okur. karakter dizisi
read(2) # 2 baytlık veri okur.

readline() = Dosya içeriğini satır satır okur. karakter dizisi

readlines() = Dosya içeriğinin tamamını okur. liste



write() = Karakter dizisi içerisindeki verileri dosyaya yazar. yazılan karakter sayısı
dosya.write(yazılacak_şeyler)
data.write("birşeyler")

writelines() = Liste içerisindeki verileri dosyaya yazar.


Sorgulama

closed() = Dosyanın kapalı olup olmadığını sorgular.

readable() = Dosyanın okuma yetkisine sahip olup olmadığını sorgular.

writable() = Dosyanın yazma yetkisine sahip olup olmadığını sorgular.


Diğerleri

close() = Açık olan dosyayı kapatır.
data.close()



tell() = İmlecin hangi bayt konumunda bulunduğunu gösterir. tamsayı

seek() = İmleci belirtilen bayt konumuna taşır.
data.seek(0) # İmleci dosyanın başına taşır.



mode = Dosyanın hangi kipte açıldığı bilgisini verir. karakter dizisi

name = Dosyanın adını verir. karakter dizisi

encoding = Dosyanın hangi dil kodlaması ile kodlandığı bilgisini verir. karakter dizisi



truncate() = Dosyaların boyutunu değiştirir. Parametresiz kullanıldığında dosyanın bütün içeriğini siler.
truncate(10) # Dosyada 10 bayt dışındaki bütün verileri siler.
truncate(1024*3) # Dosyanın boyutunu 3 kilobayta çıkaracaktır.



with ... as ...:
    ...


with open("dosyaadı", "kip") as dosya:
    print(dosya.metod())


İkili Dosyalar

PDF

/Creator = Belgeyi oluşturan yazılım.
/Producer = Belgeyi PDF’e çeviren yazılım.
/Title = Belgenin başlığı.
/Author = Belgenin yazarı.
/Subject = Belgenin konusu.
/Keywords = Belgenin anahtar kelimeleri.
/CreationDate = Belgenin oluşturulma zamanı.
/ModDate = Belgenin değiştirilme zamanı.

f = open("falanca.pdf", "rb")
okunan = f.read()
producer_index = okunan.index(b"/Producer")
okunan[producer_index]
chr(okunan[producer_index])
okunan[producer_index:producer_index+50].split()



JPEG

FF D8 FF E0 ? ? 4A 46 49 46 00 onaltılı değer
255 216 255 224 ? ? 74 70 73 70 0 onlu değer
74 70 73 70 = J F I F

f = open(dosya_adı, ’rb’)
data = f.read(10)
if data[6:11] in [b"JFIF", b"Exif"]:
    print("Bu dosya JPEG!")
else:
    print("Bu dosya JPEG değil!")




PNG

137 80 78 71 13 10 26 10 onlu değer
89 50 4e 47 0d 0a 1a 0a onaltılı değer
\211 P N G \r \n \032 \n karakter değeri

f = open(falanca.png", "rb")
okunan = f.read(8)
okunan == b"\211PNG\r\n\032\n"


Fonksiyonlar

def fonksiyon_adı(...): ...

def fonksiyon_adı(parametre: yorum) -> yorum:
    ...


aligel("Nereye", False)

def StoktanGetir(malzeme: "Getirilecek malzemenin adı", no: "Getirilecek malzemenin no'su" = 1):
    print(malzeme, no)


def Toplam (x: "Toplanacak Birinci Sayı", y: "Toplanacak İkinci Sayı") -> "Toplamın Sonucu":
    print(x + y)


Rastgele Sayıda İsimsiz Parametre



def fonksiyon_adı(*argümanlar):
    return argümanlar

def fonksiyon_adı(*args):
    return args

fonksiyon_adı(1, 2,3, ... , n) demet

Rastgele Sayıda İsimli Parametre



def fonksiyon_adı(**isimliargümanlar):
    return isimliargümanlar

def fonksiyon_adı(**kwargs):
    return kwargs

fonksiyon_adı(a=1, b="df", ... , n) sözlük


Gömülü Fonksiyonlar

Girdi/Çıktı

print()

sep = Parametreler birleştirilirken araya hangi karakterin gireceğini belirler. " "
print("bir", "iki", "üç", "dört", "on dört", sep="mumdur")
print("bir", "iki", "üç", "dört", "on dört", sep=" " + "mumdur" + " ")
print(1, 2, 3, 4, 5, sep="-")
print("birinci satır", "ikinci satır", "üçüncü satır", sep="\n")

end = Parametrelerin sonuna neyin geleceğini belirler. "\n"
print("Bugün günlerden Salı", end=".")
print("bir", "iki", "üç", "dört", "on dört", sep=" mumdur ", end=" mumdur\n")

file = Parametrelerin nereye yazılacağını belirler. sys.stdout
f = open("kişisel_bilgiler.txt", "w")
print("Fırat Özgül", file=f)
print("Ubuntu", file=f)

flush = Bilgilerin bir süre tamponda bekletilmesini veya hiç bekletilmeden doğrudan dosyaya yazılmasını sağlar. False


input() = Kullanıcıdan veri alınmasını sağlar. karakter dizisi


Sayılar

bin() = Bir sayının ikili sistemdeki karşılığını verir. karakter dizisi
gösterim: 0b

hex() = Bir sayının onaltılı sistemdeki karşılığını verir. karakter dizisi
gösterim: 0x

oct() = Bir sayının sekizli sistemdeki karşılığını verir. karakter dizisi
gösterim: 0o

abs() = Bir sayının mutlak değerini verir.

divmod() = Bir sayının bir sayıya bölünmesi işleminde bölümü ve kalanı verir. demet
divmod(14, 3) = 14 // 3, 14 % 3

max() = Bir dizi içerisindeki en büyük öğeyi verir.
max(sayılar)
key = En büyük öğenin hangi ölçüte göre seçileceği belirtilir. func
max(isimler, key=len)

min() = Bir dizi içerisindeki en küçük öğeyi verir.

sum() = Bir dizi içinde yer alan bütün sayıları birbiriyle toplar. tamsayı
start 0

pow() (25 ** 2) % 5 = pow(25, 2, 5) tamsayı

range() range(ilk_sayı, son_sayı, atlama_değeri) range nesnesi
print(*range(10))

enumerate() = Nesnelerin içeriğini bir liste içerisinde birer demet çifti halinde numaralandırır. enumerate nesnesi
İkinci parametre belirtilerek numaralandırmaya hangi sayıdan başlanacağı belirtilebilir.
[i for i in enumerate('istihza')]
list(enumerate('istihza'))

round() = Kayan noktalı sayıyı yukarı veya aşağı doğru yuvarlar. Virgülden sonraki kısım yukarı ve aşağı doğru eşit uzaklıkta ise yuvarlama çift sayıya doğru yapılır.
İkinci parametre verilerek yuvarlama hassaslığı ayarlanabilir.
round(1.5) # çıktı: 2
round(22/7, 1) # çıktı: 3.1
round(22/7, 2) # çıktı: 3.14


Sorgulama

bool()

all() = Bir dizi içerisinde bulunan bütün değerler True ise True, eğer bu değerlerden herhangi biri False ise False döndürür.
all([1, 2, 3, 4])

any() = Bir dizi içerisinde bulunan bütün değerler False ise False, eğer bu değerlerden herhangi biri True ise True döndürür.

callable() = Bir nesnenin çağrılabilir olup olmadığını denetler.

isinstance() = Bir nesnenin hangi veri tipinde olduğunu sorgular.
isinstance('istihza', str)


Bilgilendirme

copyright() = Python'ın telif haklarına ilişkin bilgileri verir.

credits() = Python programlama diline katkıda bulunanlara teşekkür içeren küçük bir metni ekrana çıktı olarak verir.

license() = Python'ın lisansına ilişkin bilgileri verir.

type() = Bir verinin tipi hakkında bilgi verir.

help()


Fonksiyonel Programlama Araçları

filter() = Bu fonksiyon iki parametre alır. İlk parametre fonksiyon, ikinci parametre ise dizi niteliğinde yani yinelenebilir bir nesnedir. filter nesnesi
filter(fonksiyon, aşama)
Fonksiyona aşama içindeki veriler parametre olarak atanır ve aşama verisi doğruysa fonksiyon çağrılır.
def tek(sayı): return sayı % 2 == 1
l = [400, 176, 64, 175, 355, 13, 207, 298, 397, 386, 31, 120, 120, 236, 241, 123, 249, 364, 292, 153]
print(*filter(tek, l))

map() map nesnesi
map(fonksiyon, aşama)
Aşama verilerinin her biri için fonksiyon çağrılır.
def karesi(n): return n ** 2
l = [1, 4, 5, 4, 2, 9, 10]
list(map(karesi, l))
seq = range(8)
def add(x, y): return x+y
map(add, seq, seq)

zip() = Nesnelerin öğelerini birbirleri ile eşleştirir. zip nesnesi
a1 = ['a', 'b', 'c']
a2 = ['d', 'e', 'f']
zip(a1, a2)


Diğerleri

len() = Bir nesnenin uzunluğunu verir. tamsayı

id() = Bir nesnenin kimliğini gösterir. Kimlik nesnenin bellekteki adresini temsil eder. tamsayı
Python'da her nesnenin kimliği eşsiz, tek ve benzersizdir.

reversed() = Öğe sıralamasını ters çevirir. reversed nesnesi
karakter_dizisi[::-1]
print(*reversed("Sana Gül Bahçesi Vadetmedim"), sep="")

sorted() = Öğeleri belli bir ölçüte göre dizer. liste
key
print(*sorted("kitap"), sep="")

chr() = Bir sayının karakter karşılığını verir. karakter dizisi

repr() = Bir karakter dizisinin Python tarafından nasıl temsil edildiğini gösterir. karakter dizisi
print(repr("karakter dizisi"))

ascii() = Bir karakter dizisinin Python tarafından nasıl temsil edildiğini gösterir. ASCII tablosunda olmayan karakterlerin unicode kod konumlarını gösterir. karakter dizisi

ord() = Bir karakterin sayı karşılığını verir. tamsayı
ord("€")

exit() = Mevcut çalışan programdan çıkılmasını sağlar.

hash()

quit()

slice() = Bir nesne üzerinde dilimleme işlemi yapar. slice nesnesi
slice(başlangıç_değeri, bitiş_değeri, atlama_değeri)
a = "mvkfdmfkd"
dlm = slice(0,3)
a[dlm]


İleri Düzey Fonksiyonlar

Lambda



lambda parametre_listesi:ifade

fonk = lambda param1, param2: param1 + param2
fonk(5,6)

çift_mi = lambda sayı: sayı % 2 == 0
çift_mi(100)

l = [2, 5, 10, 23, 3, 6]
[i**2 for i in l]
print(*map(lambda sayı: sayı ** 2, l))

Özyinelemeli Fonksiyonlar



Bu fonksiyonlar özyinelemeye başlarken döndürdükleri değeri, özyineleme işleminin sonunda tek tek geri döndürürler.

def fonksiyon(parametreler):
    ...
    return fonksiyon(parametreler)


def azalt(s):
    if len(s) < 1:
        return s
    else:
        print(s)
        return azalt(s[1:])
    print(azalt('istihza'))


def azalt(s):
    if len(s) < 1:
        return s
    else:
        print('özyineleme sürecine girerken:', s)
        azalt(s[1:])
        print('özyineleme sürecinden çıkarken:', s)
    azalt('istihza')


def ters_çevir(s):
    if len(s) < 1:
        return s
    else:
        return ters_çevir(s[1:]) + s[0]


l = [1, 2, 3, [4, 5, 6], [7, 8, 9, [10, 11], 12], 13, 14]
def düz_liste_yap(liste):
    if not isinstance(liste, list):
        return [liste]
    elif not liste:
        return []
    else:
        return düz_liste_yap(liste[0]) + düz_liste_yap(liste[1:])

    print(düz_liste_yap(l))


İsim Alanı

• İsim alanları birer sözlüktürler. Bir sözlük oluşturarak yeni bir isim alanı oluşturulabilir.
• Öntanımlı olarak iki tane isim alanı vardır: Global isim alanı, lokal isim alanı.
• Global(Küresel) isim alanı mevcut çalışma alanıdır. Bir modül içerisindeki bütün değişkenleri, değerleri, nesneleri kapsar.
• Lokal(Yerel) isim alanı ise bir sınıfın, bir fonksiyonun içini kapsar.
• Sözlük oldukları için değiştirilebilirler.

globals() = Global isim alanında hangi anahtar ve değerlerin bulunduğunu gösterir. sözlük

locals() = Lokal isim alanında hangi anahtar ve değerlerin bulunduğunu gösterir. sözlük

vars() = Mevcut isim alanı içerisindeki anahtar ve değerleri gösterir ve parametre ile belirtilen nesnelerin özelliklerini gösterir. sözlük
vars(list)
vars()

dir() = Parametresiz mevcut isim alanındaki öğeleri verir. Parametre ile belirtilen nesnenin metot ve niteliklerini döndürür. liste


İfadeler

Bir değer üretmek için kullanılan kod parçalarıdır.

Veri Tipleri
Sayılar
İşleçler
Veri Tipi Üreteçleri
Fonksiyonlar

eval() = Bir ifadeye değer kazandırır, çalıştırır.
eval("a+b")

Yanlış uygulanış biçimi:

Doğru uygulanış biçimi:
images/10-2.png


Deyimler

İfadelerin bir araya gelmesi ile oluşturulurlar ve ifadeleri de kapsarlar.

İfadeler
Değer Atama İşlemleri
Fonksiyon Tanımlama İşlemleri
Sınıf Tanımlama İşlemleri


exec() = Bir deyime değer kazandırır, çalıştırır. Değişkenleri ve değerleri öntanımlı olarak mevcut isim alanına gönderir.
exec("a = 45")

İkinci bir parametre belirtilerek değişkenlerin ve değerlerin hangi isim alanına gönderileceği belirtilebilir.
ia = {}
exec('a = 3', ia)


İpuçları

* (Yıldız) = Yinelebilir nesnelerin yinelenmesini sağlar.
print(*"Linux", sep=".")

ilk, son = sayilar[0], sayilar[1:] = ilk, *son = sayilar


Aynı Değere Sahip Değişkenler Tanımlama



a = i |
b = i | a = b = c = i
c = i |



Değişkenlerin Değerini Takas Etme



a = 1
b = 2
a,b = b,a


Modüller

Devamı Gelecek...