Kopya kâğıdı

Python kopya kağıdı: sözdizimi, komutlar ve yerleşik fonksiyonlar tablolarda

Güncellendi: · Skillaria.Top

Python sözdizimi bloklarını süslü parantez yerine dört boşluklu girintilerle belirler. Temeller: tür bildirmeden değişkenler, if/elif/else koşulları, for ve while döngüleri, def ile fonksiyonlar ve print, len, range, input, type gibi yerleşik fonksiyonlar ile metin, liste ve sözlük metotları.

Bu Python kopya kağıdı ilk aylarda elinizin altında olması gereken her şeyi tek sayfada toplar: Python sözdizimi, döngüler, yerleşik fonksiyonlar, metin, liste ve sözlük metotları ve terminal komutları. Her tablo, doğrudan REPL'e yapıştırılabilecek çalışan örneklerle hazırlanmış kısa bir referanstır.

Python sözdiziminin temelleri

Dilin en önemli özelliği: bloklar parantezle değil, girintiyle belirlenir. İki nokta üst üste içeren satırdan sonra (if, for, def, class) gelen satırlar 4 boşlukla içeride yazılır. Sekme ve boşluk karıştırmak yasaktır — IndentationError alırsınız.

YapıÖrnekAçıklama
Yorum# metin# işaretinden satır sonuna kadar olan her şey yok sayılır
Değişkenage = 25tür bildirilmez, değer belirler
Çoklu atamaa, b = 1, 2açma; değer takası: a, b = b, a
Çıktıprint("Merhaba", name)argümanlar boşlukla ayrılır
Girdis = input("Ad: ")her zaman metin döndürür
f-stringf"{name}: {price:.2f}"ifadelerin yerine konması ve biçimlendirme
Tür ipucucount: int = 0IDE ve denetleyiciler için ipucu, çalışma anında denetlenmez
Boş blokpasssözdiziminin gövde istediği yerde yer tutucu
İçe aktarmafrom math import sqrtbir modülü ya da içindeki adı bağlama

Veri türleri

TürDeğişmez değerDeğiştirilebilir
int42, 1_000_000hayır
float3.14, 1e-3hayır
boolTrue, Falsehayır
str"metin", 'metin', """çok satırlı"""hayır
list[1, 2, 3]evet
tuple(1, 2), (1,)hayır
dict{"a": 1}evet
set{1, 2}, boş olanı — set()evet
NoneTypeNone—

Operatörler

GrupOperatörlerÖrnek → sonuç
Aritmetik+ - * / // % **7 // 2 → 3, 7 % 2 → 1, 2 ** 10 → 1024
Karşılaştırma== != < > <= >=1 < x < 10 — karşılaştırma zinciri
Mantıkand or notx or "varsayılan"
Üyelikin, not in"a" in "abc" → True
Özdeşlikis, is notx is None
Atama+= -= *= /=, :=if (n := len(s)) > 10: ...

Koşullar ve eşleştirme

if score >= 90:
    grade = "A"
elif score >= 70:
    grade = "B"
else:
    grade = "C"

status = "yetişkin" if age >= 18 else "çocuk"   # koşullu (üçlü) ifade

match command:
    case "start":
        print("Başlatıldı")
    case "stop" | "exit":
        print("Durduruldu")
    case _:
        print("Bilinmeyen komut")

Yanlış (False) sayılan değerler: False, None, 0, boş metin ve boş koleksiyonlar. Bu yüzden if len(items) > 0 yerine doğrudan if items yazılır.

Python'da döngüler: for ve while sözdizimi

for döngüsü

Python for döngüsü sözdizimi: for değişken in dizi: ve girintili gövde. Döngü her yinelenebilir nesneyi — metni, listeyi, sözlüğü, dosyayı, range sonucunu — gezebilir.

for i in range(5):              # 0 1 2 3 4
    print(i)

for i in range(10, 0, -2):      # 10 8 6 4 2
    print(i)

for i, fruit in enumerate(["elma", "armut"], start=1):
    print(i, fruit)

for name, score in zip(names, scores):
    print(name, score)

for key, value in prices.items():
    print(key, value)

while döngüsü

attempts = 3
while attempts > 0:
    password = input("Parola: ")
    if password == "secret":
        print("Giriş yapıldı")
        break
    attempts -= 1
else:
    print("Denemeler bitti")   # break olmadan döngü bittiyse çalışır
KomutNe yapar
breakdöngüden erken çıkar
continuesonraki yinelemeye geçer
döngünün else'idöngü break olmadan biterse çalışır
range(stop), range(start, stop, step)sayı dizisi, stop dahil değildir

Liste üreteçleri (comprehension)

squares = [x ** 2 for x in range(10)]
evens = [x for x in numbers if x % 2 == 0]
lengths = {word: len(word) for word in words}
unique = {c.lower() for c in text}
total = sum(x * x for x in range(100))   # üreteç ifadesi

Fonksiyonlar

def greet(name: str, greeting: str = "Merhaba") -> str:
    """Selamlama metnini döndürür."""
    return f"{greeting}, {name}!"

def total(*args, **kwargs):
    return sum(args), kwargs

square = lambda x: x * x
print(greet("Ayşe"))                  # Merhaba, Ayşe!
print(greet("Ayşe", greeting="Selam"))  # Selam, Ayşe!
ÖğeAnlamı
def f(a, b=1)varsayılan değerli parametre
*argsistenen sayıda konumsal argüman (demet)
**kwargsistenen sayıda adlandırılmış argüman (sözlük)
returndeğer döndürür; yoksa fonksiyon None döndürür
lambda x: ...tek ifadelik kısa isimsiz fonksiyon
global, nonlocaldış kapsamdaki bir değişkeni değiştirme

Değiştirilebilir varsayılan değer kullanmayın, örneğin def f(items=[]): liste bir kez oluşturulur ve çağrılar arasında birikir. Doğrusu items=None yazıp içeride if items is None: items = [] kullanmaktır.

Yerleşik Python fonksiyonları

Python'un yerleşik fonksiyonları içe aktarma gerektirmeden kullanılabilir. Hemen hemen her betikte görülen temel fonksiyonlar bunlardır.

FonksiyonNe yaparÖrnek → sonuç
print()değerleri yazdırırprint(1, 2, sep="-") → 1-2
input()klavyeden metin okurint(input())
len()koleksiyonun ya da metnin uzunluğulen("abc") → 3
type()nesnenin türütype(3.0) → <class 'float'>
isinstance()tür kontrolüisinstance(5, int) → True
int() float() str() bool()tür dönüşümüint("42") → 42
list() tuple() set() dict()koleksiyon oluşturmalist("ab") → ['a', 'b']
range()sayı aralığılist(range(3)) → [0, 1, 2]
enumerate()(indeks, öğe) çiftlerilist(enumerate("ab")) → [(0, 'a'), (1, 'b')]
zip()dizileri çiftler halinde birleştirirlist(zip([1, 2], "ab")) → [(1, 'a'), (2, 'b')]
sum() min() max()toplam, en küçük, en büyükmax([3, 7, 1]) → 7
abs() round()mutlak değer ve yuvarlamaround(3.14159, 2) → 3.14
sorted()sıralanmış yeni listesorted(words, key=len, reverse=True)
reversed()tersten yineleyicilist(reversed([1, 2])) → [2, 1]
map() filter()fonksiyonu uygula / süzlist(map(str, [1, 2])) → ['1', '2']
any() all()en az biri / hepsi doğruall(x > 0 for x in nums)
open()dosya açaropen("a.txt", encoding="utf-8")
help() dir()yardım ve özellik listesihelp(str.split), dir(list)
id() hash()nesnenin kimliği ve özetihash("a")

Her zaman yanınızda bulunabilecek en kullanışlı Python referansı REPL'deki help() fonksiyonudur: help(dict) sözlüğün tüm metotlarını açıklamalarıyla gösterir, dir(obj) ise kullanılabilir adların listesini verir.

Metin (string) metotları

Python'da metin değiştirilemez: her metot yeni bir metin döndürür. Dilimleme listelerdekiyle aynı çalışır: s[1:4], s[::-1] — tersine çevirme.

MetotÖrnek → sonuç
upper() lower()"Py".upper() → 'PY'
capitalize() title()"hello world".title() → 'Hello World'
strip() lstrip() rstrip()" hi \n".strip() → 'hi'
split(sep)"a,b,c".split(",") → ['a', 'b', 'c']
join(iterable)"-".join(["a", "b"]) → 'a-b'
replace(old, new)"kalem".replace("a", "o") → 'kolem'
find() index()"hello".find("l") → 2; yoksa -1 (index ile hata)
count()"banana".count("a") → 3
startswith() endswith()"file.py".endswith(".py") → True
isdigit() isalpha() isspace()"123".isdigit() → True
removeprefix() removesuffix()"test_a".removeprefix("test_") → 'a'
zfill() center() ljust()"7".zfill(3) → '007'
format()"{} + {}".format(1, 2) → '1 + 2'

Liste komutları

Liste değiştirilebilir, sıralı bir koleksiyondur. Metotların çoğu listeyi yerinde değiştirir ve None döndürür, bu yüzden a = a.sort() sık yapılan bir hatadır.

İşlemNe yaparÖrnek
append(x)sona eklera.append(4)
extend(iter)tüm öğeleri eklera.extend([5, 6])
insert(i, x)indekse göre araya eklera.insert(0, "first")
remove(x)değerin ilk geçtiği yeri silera.remove(3)
pop(i)öğeyi siler ve döndürür (varsayılan: son)last = a.pop()
clear()listeyi temizlera.clear()
index(x)ilk geçtiği indeksa.index("b")
count(x)geçme sayısıa.count(1)
sort()yerinde sıralara.sort(key=str.lower)
reverse()yerinde tersine çevirira.reverse()
copy()yüzeysel kopyab = a.copy()
del a[i]indeks ya da dilime göre silerdel a[1:3]
Dilimlera[start:stop:step]a[-1] — son öğe, a[:3] — ilk üç

Sözlük komutları

İşlemNe yaparÖrnek
d[key]anahtarın değeri; anahtar yoksa KeyErrord["name"]
get(key, default)değer ya da yedek değerd.get("age", 0)
d[key] = valueekler ya da değiştirird["city"] = "Ankara"
keys() values() items()anahtarlar, değerler, çiftlerfor k, v in d.items():
update()başka bir sözlükle birleştirird.update({"a": 1})
d1 | d2birleştirilmiş yeni sözlükmerged = defaults | user
pop(key, default)siler ve değeri döndürürd.pop("tmp", None)
popitem()en son eklenen çifti silerd.popitem()
setdefault(key, value)değeri döndürür; anahtar yoksa oluştururd.setdefault("tags", []).append("py")
key in danahtarın varlığını kontrol ederif "name" in d:
dict.fromkeys()anahtarlardan tek değerli sözlükdict.fromkeys("abc", 0)
len(d), del d[key]boyut ve silmedel d["old"]

Demetler ve kümeler

İşlemÖrnek → sonuç
Demeti açmax, y = (3, 4)
Kümeye eklemes.add(5), silme — s.discard(5)
Birleşim / kesişim{1, 2} | {2, 3} → {1, 2, 3}; {1, 2} & {2, 3} → {2}
Fark{1, 2} - {2} → {1}
Listeden tekrarları silmelist(dict.fromkeys(items)) — sırayı koruyarak

İstisnalar ve dosyalar

try:
    number = int(input("Sayı: "))
except ValueError as err:
    print("Bu bir sayı değil:", err)
else:
    print("Başarılı")
finally:
    print("Her zaman çalışır")

with open("data.txt", "w", encoding="utf-8") as f:
    f.write("satır\n")

with open("data.txt", encoding="utf-8") as f:
    for line in f:
        print(line.rstrip())
İstisnaNe zaman oluşur
SyntaxError, IndentationErrorsözdizimi ya da girinti hatası
NameErrorad tanımlı değil (yazım hatası)
TypeErroruygun olmayan türle işlem: "1" + 1
ValueErrortür doğru, ama değer yanlış: int("abc")
IndexError, KeyErrorböyle bir indeks ya da anahtar yok
FileNotFoundErrordosya bulunamadı
ZeroDivisionErrorsıfıra bölme

Sınıflar

from dataclasses import dataclass

class Dog:
    def __init__(self, name: str):
        self.name = name

    def bark(self) -> str:
        return f"{self.name}: Hav!"

@dataclass
class Point:
    x: float
    y: float

print(Dog("Karabaş").bark())   # Karabaş: Hav!
print(Point(1, 2))             # Point(x=1, y=2)

Yerleşik Python modülleri

Standart kütüphane yorumlayıcıyla birlikte kurulur — yalnızca import yazmanız yeterli.

ModülNe içinÖrnek
mathmatematikmath.sqrt(16) → 4.0
randomrastgele sayılarrandom.randint(1, 6), random.choice(items)
datetimetarih ve saatdatetime.date.today()
pathlibyollar ve dosyalarPath("data").glob("*.csv")
os, syssistem, ortam değişkenleri, argümanlaros.environ.get("HOME"), sys.argv
jsonJSON okuma ve yazmajson.loads(text), json.dumps(obj, ensure_ascii=False)
csvCSV tablolarıcsv.DictReader(f)
collectionsCounter, defaultdict, dequeCounter("banana").most_common(1) → [('a', 3)]
itertoolskombinasyonlar ve yineleyici zincirleriitertools.chain(a, b)
redüzenli ifadelerre.findall(r"\d+", s)
timebeklemeler ve süre ölçümütime.sleep(1), time.perf_counter()
asyncioeşzamansız kodasyncio.run(main())

Python 3.15 ile tembel içe aktarma (PEP 810) geldi: lazy import pandas as pd modülün yüklenmesini ona ilk erişene kadar erteler; ağır bağımlılıkları olan bir betik belirgin biçimde daha hızlı başlar.

Terminalde Python komutları

«Python komutları» için ayrı bir arama grubu vardır: yorumlayıcıyı başlatma ve kütüphane kurma komutları. Windows'ta python3 yerine genellikle python ya da py yazılır.

KomutNe yapar
python3 --versionsürümü gösterir
python3etkileşimli konsolu (REPL) açar (çıkış — exit())
python3 script.pydosyayı çalıştırır
python3 -c "print(2 + 2)"tek satır çalıştırır
python3 -m venv .venvsanal ortam oluşturur
source .venv/bin/activate / .venv\Scripts\activateortamı etkinleştirir (Linux, macOS / Windows)
python3 -m pip install requestspaket kurar
pip list, pip freeze > requirements.txtpaket listesi ve kaydetme
pip install -r requirements.txtdosyadaki bağımlılıkları kurar
python3 -m http.server 8000geçerli klasörde basit bir web sunucusu
uv init, uv add requests, uv run main.pyuv yöneticisiyle proje, bağımlılık ve çalıştırma

Yeni başlayanların sık yaptığı hatalar

  • Karşılaştırmada = kullanmak — koşulda == gerekir; tek = atamadır.
  • Unutulan iki nokta üst üste — if, for, def sonrasında SyntaxError verir.
  • Metin ile sayıyı toplamak: "Yaş: " + 25 hatalıdır, f"Yaş: {25}" yazın.
  • Dönerken listeyi değiştirmek — for x in a[:] ile kopyasını dönün ya da yeni bir liste oluşturun.
  • input() metin döndürür — aritmetik için int() ya da float() ile sarın.

Sonuç

Python sözdizimi girintilere, iki noktalara ve küçük bir yapı setine dayanır: koşullar, for ve while döngüleri, fonksiyonlar, sınıflar. Bunlara yirmi kadar yerleşik fonksiyon ile metin, liste ve sözlük metotlarını eklediğinizde günlük işlerin büyük bölümünü çözersiniz. Kopya kağıdını saklayın; tablolar alışkanlık haline gelince modüllere ve eşzamansızlığa geçin — bunların hepsi «Python 3.15: sıfırdan uzmanlığa» kursunda adım adım, uygulamalı olarak anlatılıyor.

Sık sorulan sorular

Python'da girinti için kaç boşluk bırakmalıyım?

PEP 8 standardına göre her seviye için 4 boşluk. Önemli olan, bütün blokta tutarlı olmak ve sekmelerle karıştırmamak.

Liste ile demet (tuple) arasındaki fark nedir?

Liste değiştirilebilir; eklenebilir ve yerinde sıralanabilir. Demet değiştirilemez; bu yüzden sözlük anahtarı olarak ve sabit değer kümeleri için uygundur.

Bir nesnenin tüm metotlarını Python içinde nasıl görürüm?

Ad listesi için dir(obj), açıklama için help(obj) çağırın — örneğin help(str) tüm metin metotlarını gösterir.

sort() ile sorted() arasındaki fark nedir?

list.sort() listenin kendisini sıralar ve None döndürür; sorted() fonksiyonu ise yeni bir liste döndürür ve herhangi bir yinelenebilir koleksiyonla çalışır.

Python'da satır sonunda noktalı virgül gerekir mi?

Hayır. Noktalı virgül aynı satırda birden fazla komut için kullanılabilir, ama normal kodda her komut yeni bir satırda yazılır.