Last chance! 50% off DataCamp Premium
Sale ends in
Python öğrenmenin en iyi yolu, tekrar, deney yapma ve problem çözme yoluyla aşinalık kazanmaktır. Bu yüzden “yaparak öğrenme” felsefesi, etkili programcıların nasıl yetiştirildiğinin merkezinde yer alır.
Kod yazmak, hata yapmak ve hataları düzeltmek, gerçek beceriler kazanmanın yoludur.
Bu yazıda, özellikle yeni başlayanlar için tasarlanmış, yapılandırılmış bir Python alıştırmaları setini birlikte ele alacağız. Alıştırmalar basit değişkenlerle başlar ve kademeli olarak fonksiyonlara, veri yapılarına ve küçük veri projelerine ilerler.
Devam etmeden önce size bir meydan okuma: Açıklamalara bakmadan, bu yazıdaki ilk üç alıştırmayı hemen çözmeyi deneyin. Takılsanız bile, öğrenmenin büyük kısmı denemekle gerçekleşir.
Daha yönlendirmeli bir deneyimi tercih ederseniz, DataCamp kursları sözdiziminizi ve mantığınızı adım adım otomatik olarak kontrol eder. Bu, küçük hataların ilerlemeyi engellemesini önler ve özellikle yeni başlayanlar için faydalıdır. İyi bir başlangıç noktası Introduction to Python kursudur.
Alıştırmalara dalmadan önce, Python kodu yazıp çalıştırmak için temel bir ortama ihtiyacınız var. Neyse ki başlamak her zamankinden daha kolay.
Python’ı yerel olarak çalıştırmak için Visual Studio Code gibi yeni başlayan dostu bir kod düzenleyicisi kurun.
Tipik bir kurulum şöyle görünür:
Visual Studio Code’u kurun
VS Code içinde Python uzantısını ekleyin
Yeni bir .py dosyası oluşturup kodlamaya başlayın

VS Code, açık kaynaklı ve ücretsiz olduğu için kodlamaya başlamak için iyi bir yerdir. Yazılımı indirmek için indirme sayfalarını ziyaret edebilirsiniz. İndirme tamamlandığında kurulumunu yapın.
Hiçbir şey kurmak istemezseniz, tarayıcı tabanlı bir ortam olan ve Python (ve SQL) kodunu anında çalıştırmanıza olanak tanıyan DataLab’i kullanabilirsiniz. Kurulum sorunlarını dert etmeden eğitimleri takip etmek, küçük kod parçalarını denemek ve deney yapmak için idealdir.
Öğreniminizi en üst düzeye çıkarmak için, bu yazıdaki her alıştırma çözüm veya açıklamayı okumadan önce denenecek şekilde tasarlanmıştır.
Bu alıştırmalardan en iyi şekilde yararlanmanın yolu şudur:
Tüm alıştırmaların eksiksiz cevap anahtarı buradaki bağlantılı DataLab çalışma kitabında mevcuttur. Bu sayede yaklaşımınızı çalışan bir çözüme kıyaslayabilir ve aynı problemi çözmenin alternatif yollarını anlayabilirsiniz.

Değerleri saklama, kullanıcı girdisini okuma ve çıktıyı ekrana yazdırma gibi temel yapı taşlarına odaklanan birkaç basit alıştırmayla başlayalım.
Öncelikle, kişiselleştirilmiş bir mesaj yazdıran basit bir Python alıştırmasına bakalım.
Bir program yazın; bu program:
Kullanıcıdan input() kullanarak adını ister
Kullanıcıdan input() kullanarak yaşını ister
Biçimlendirilmiş dizgiler kullanarak bir selamlama mesajı yazdırır
Kullanıcının 100 yaşına geldiği yılı hesaplar
Herhangi bir kod yazmadan önce, bu tür basit bir programda bilginin nasıl aktığını düşünmek faydalı olur. Kullanıcı ham girdiyi metin olarak sağlar, Python bu girdiyi değişkenlerde saklar ve siz de bu değerleri anlamlı bir şeye dönüştürürsünüz.
Bu alıştırma, pek çok gerçek programı yansıtır: Kullanıcı girdisi nadiren ilk hâliyle kullanılabilir; önce doğrulanması veya dönüştürülmesi gerekir.
Size yol göstermesi için bazı başlangıç kodları:
# Task: Ask for the user's name
name = input("Enter your name: ")
# Task: Ask for the user's age (note: input() returns a string)
age_str = input("Enter your age: ")
# Task: Convert age_str to an int
# age = ...
# Task: Calculate the year the user turns 100
# Tip: you'll need the current year
# current_year = ...
# year_turn_100 = ...
# Task: Print a personalized message using an f-string
# print(...)
input() her zaman bir dizge döndürür
Dizgeleri int() ile tam sayıya dönüştürme
Sayılarla temel aritmetik
f-string’lerle dizge biçimlendirme
Bu alıştırma, kullanıcı girdisinin çoğu zaman hesaplamalarda kullanılmadan önce dönüştürülmesi gerektiğini öğretir.
Python becerilerinizi bazı temel birim dönüşümlerine uygulayalım.
Bir program yazın; bu program:
Kullanıcıdan Santigrat cinsinden bir sıcaklık ister
Onu şu formülle Fahrenheit’a çevirir: F = (C × 9/5) + 32
Dönüştürülen sıcaklığı yazdırır
Size yol göstermesi için bazı başlangıç kodları:
# Task: Ask the user for a Celsius temperature
celsius_str = input("Temperature in Celsius: ")
# Task: Convert the input to a float
# celsius = ...
# Task: Apply the conversion formula
# fahrenheit = ...
# Task: Print the result (consider formatting to 1–2 decimal places)
# print(...)
Kayan noktalı sayılar
Aritmetik ifadeler
float() ile tür dönüştürme
Bu alıştırma, sayısal girdilerin her zaman tam sayı olmadığını ve Python’ın ondalıkları doğal biçimde ele aldığını pekiştirir.
Bu alıştırma önemsiz görünebilir, ancak yeni başlayanlar çoğu zaman değişkenleri adım adım boşaltılıp doldurulması gereken kutular gibi düşünür. Python’da nasıl değer değiş tokuşu yapabileceğimize bakalım.
Size iki değişken veriliyor: a = 5 ve b = 10. Değerlerini tek tek yeniden atama yapmadan değiştirin.
Python, atamayı daha ifade gücü yüksek bir şekilde düşünmeye olanak tanır; değerler tek bir işlemde açılıp yeniden atanabilir.
Size yol göstermesi için bazı başlangıç kodları:
a = 5
b = 10
# Task: Swap a and b
# Hint: Try a temporary variable first.
# Then try the Pythonic approach (tuple unpacking).
# Task: Print the swapped values to verify
# print("a:", a)
# print("b:", b)
Bu, Python’u hem özlü hem de ifade gücü yüksek kılan demet açmayı tanıtır.
Temeller hakkında daha fazla bilgi için Python Cheat Sheet’imize göz atın.
Kontrol akışı, programlarınızın koşullara göre karar vermesini ve eylemleri yinelemesini sağlar.
Modülüs işleci için yaygın bir kullanım, tek/çift kontrolüdür. Bunu aşağıda deneyelim.
Bir program yazın; bu program:
Kullanıcıdan bir sayı ister
% modülüs işleçini kullanır
Sayının çift mi tek mi olduğunu yazdırır
Size yol göstermesi için bazı başlangıç kodları:
# Task: Ask the user for a number
num_str = input("Enter a whole number: ")
# Task: Convert to int
# num = ...
# Task: Use modulo (%) to decide even vs odd
# if ...:
# print("Even")
# else:
# print("Odd")
Modülüs işleci
Boole mantığı
Bu, yeni başlayanların koşulların program davranışını nasıl kontrol ettiğini gördükleri ilk örneklerden biridir.
Pek çok kişinin yaptığı yaygın programlama meydan okumalarından biri FizzBuzz’dır. Bu alıştırmanın ne içerdiğine bakalım.
1’den 100’e kadar sayıları aşağıdaki kurallarla yazdırın:
3’ün katları için Fizz yazdırın
5’in katları için Buzz yazdırın
Her ikisinin katları için FizzBuzz yazdırın
Bu alıştırma, karar ağaçları ve sınır durumlar üzerine dikkatle düşünmeyi öğretir; bu da gerçek programlar yazarken kritik bir beceridir.
Size yol göstermesi için bazı başlangıç kodları:
# Task: Loop from 1 to 100
for n in range(1, 101):
# Task: Check multiples of 3 AND 5 first
# if ...:
# print("FizzBuzz")
# Task: Then multiples of 3
# elif ...:
# print("Fizz")
# Task: Then multiples of 5
# elif ...:
# print("Buzz")
# Task: Otherwise, print the number
# else:
# print(n)
pass
for döngüleri
Koşullu sıralama
Mantıksal işleçler
Bu alıştırma, programcılar için bir geçiş ritüelidir ve kontrol akışında yapılandırılmış düşünmeyi öğretmek için yaygın olarak kullanılır. Döngüler hakkında daha fazlası için Python Döngüleri eğitimimize bakın.
Bu alıştırma, kullanıcı girdisine dinamik olarak yanıt veren etkileşimli programları tanıtır.
Bir program yazın; bu program:
Rastgele bir sayı üretir (random içe aktarılır)
while döngüsüyle tahmin istemeye devam eder
Her tahminden sonra "Too high" veya "Too low" geri bildirimi verir
Doğru sayı tahmin edildiğinde durur
Bu, yeni başlayanların doğrusal olmaktan çok etkileşimli bir program deneyimlediği ilk alıştırmadır. Baştan sona çalışıp çıkan önceki betiklerin aksine, bu program bir koşul sağlanana kadar çalışmaya devam eder.
Buradaki temel kavramsal sıçrama, döngünün ne zaman biteceğini anlamaktır.
Size yol göstermesi için bazı başlangıç kodları:
import random
# Task: Pick a random number in a reasonable range
# target = random.randint(1, 100)
# Task: Use a while loop to keep asking until correct
# while ...:
# guess_str = input("Your guess (1–100): ")
# # guess = ...
# # if guess > target:
# # print("Too high")
# # elif guess < target:
# # print("Too low")
# # else:
# # print("Correct!")
# # break
Modül içe aktarma (random)
while döngüleri
Döngü bitiş koşulları
Listeler, değer koleksiyonlarıyla çalışmanıza; döngüler ise bunları verimli biçimde işlemenize olanak tanır.
Bu desen, veri işleme ve analitik iş akışlarında sıkça görülür.
Yerleşik sum() fonksiyonunu kullanmadan bir listedeki tüm sayıların toplamını alan bir program yazın. Program, başka bir biriktirme yardımcısına güvenmek yerine toplama mantığını döngü içinde açıkça gerçekleştirmelidir.
Size yol göstermesi için bazı başlangıç kodları:
numbers = [3, 7, 2, 9, 4]
# Task: Create an accumulator variable
# total = ...
# Task: Loop through numbers and add each value to total
# for ...:
# ...
# Task: Print the final total
# print(total)
Biriktirici değişken başlatma
for döngüleriyle yineleme
Değerleri adım adım güncelleme
Listeyle ilgili daha fazla örnek için En Yaygın Python Liste Soruları rehberimize göz atın.
Sıradaki alıştırma öncekine biraz benzer, ancak döngü içinde farklı çalışır. Algoritmik düşünmeyi pekiştirir ve yerleşik fonksiyonların içte nasıl çalıştığını yansıtır.
Kullanıcıya max() kullanmadan listedeki en büyük sayıyı bulma meydan okuması yapın.
Size yol göstermesi için bazı başlangıç kodları:
numbers = [12, 5, 27, 3, 19]
# Task: Initialize current_max using the first element
# current_max = numbers[0]
# Task: Loop through the remaining elements and update current_max
# for ...:
# if ...:
# current_max = ...
# Task: Print the largest number
# print(current_max)
Gerçek dünya verileri dağınıktır ve bu da çoğu zaman yinelenen veri noktalarını içerir. Aşağıdaki alıştırma sizi veri temizliğine hazırlar.
Yinelenen öğeler içeren bir listeyi, yalnızca benzersiz öğelerden oluşan yeni bir listeye dönüştürün.
İlk bakışta bu problem basit görünebilir; ancak daha önce gördüklerinizi izlemenin fikrini tanıtır. Bu, yinelenen kayıtları belirleme ve kaldırmanın rutin olduğu veri işlemeye dair temel bir kavramdır.
Size yol göstermesi için bazı başlangıç kodları:
data = ["apple", "banana", "apple", "orange", "banana", "kiwi"]
# Task: Create a new list for unique items
# unique = []
# Task: Loop through data and append items you haven't seen yet
# for item in data:
# if ...:
# ...
# Task: Print or return the unique list
# print(unique)
in ile üyelik kontrolleri
Yeni listeler oluşturma
Veri benzersizliğini anlama
Sözlükler ve dizgeler, metinsel verileri düzenlemek ve dönüştürmek için gereklidir. Onlarla nasıl başa çıkacağımıza bakalım.
Bu alıştırma, yaygın bir veri analizi görevi olan frekans tablolarını nasıl oluşturacağınızı öğretir.
Bir dizge girişi alın ve her karakterin ne sıklıkta göründüğünü sayan bir sözlük döndürün.
Bu alıştırma, programınız çalışırken dinamik olarak bir veri yapısı oluşturma fikrini temsil eder. Önceden tanımlı bir liste veya sözlükle çalışmak yerine, karşılaştığınız verilere göre girişler oluşturur ve güncellersiniz.
Size yol göstermesi için bazı başlangıç kodları:
text = input("Enter some text: ")
# Task: Create an empty dictionary
# counts = {}
# Task: Loop over each character and update counts
# for ch in text:
# # Option A: counts[ch] = counts.get(ch, 0) + 1
# # Option B: if ch in counts: ... else: ...
# pass
# Task: Print the frequency table
# print(counts)
Sözlükler
.get() yöntemi
Koşullu başlatma
Bu alıştırma, daha sonra tablo şeklindeki veri yapılarını anlamanın temelini oluşturan sözlük mantığına değinir.
İsimleri ve numaraları bir sözlükte saklayan ve kullanıcının ada göre arama yapmasına olanak tanıyan bir program oluşturun.
Bu alıştırma, programı tek seferlik bir hesaplamadan ziyade kalıcı bir arama aracı olarak kullanma fikrini tanıtır. Birçok uygulamanın bilgiyi nasıl saklayıp geri getirdiğinin basitleştirilmiş bir versiyonunu modellemiş olursunuz.
Size yol göstermesi için bazı başlangıç kodları:
phonebook = {
# "Alice": "9123 4567",
# "Ben": "9876 5432",
}
# Task: (Optional) add entries via input()
# name = input("Name to add: ")
# number = input("Number to add: ")
# phonebook[name] = number
# Task: Search loop (one lookup is fine for a start)
query = input("Search name: ")
# Task: Print the number if found, otherwise print a friendly message
# if ...:
# print(...)
# else:
# print("Not found")
Sözlüklere daha derinlemesine dalmak isterseniz, Python Dictionary Methods üzerine kapsamlı rehberimizi okumanızı öneririm.
Bu alıştırma, palindromlara bakarak metin işlemeyi mantıksal karşılaştırma ile birleştirir.
Palindrom; tersten okunduğunda da aynı kalan sözcük, ifade, sayı veya karakter dizisidir. Büyük/küçük harf ve boşlukları yok sayarak bir dizgenin tersten okunuşunun aynı olup olmadığını denetleyen bir betik oluşturun.
Size yol göstermesi için bazı başlangıç kodları:
text = input("Enter a word or phrase: ")
# Task: Normalize (lowercase + remove spaces)
# normalized = ...
# Task: Reverse using slicing
# reversed_text = ...
# Task: Compare and print a result message
# if ...:
# print("Palindrome")
# else:
# print("Not a palindrome")
Dizge yöntemleri (lower(), replace())
Dizge dilimleme ([::-1])
Fonksiyonlar, yinelenen mantığı tekrar yazmak yerine yeniden kullanılabilir, düzenli kod yazmanızı sağlar.
Faktöriyel hesaplayıcı, daha büyük programlar kurmak için kritik olan dönüş değerlerini anlamanıza yardımcı olur.
Bir tamsayı alan ve bir döngü kullanarak faktöriyelini döndüren bir fonksiyon tanımlayın.
Bir değeri yazdırmakla döndürmek arasındaki ayrım özellikle önemlidir. Sonuçları döndürmek, fonksiyonunuzun başka kodlarla birleştirilebilmesini sağlar; bu, programlar tek bir dosyanın ötesine geçtiğinde elzemdir.
Size yol göstermesi için bazı başlangıç kodları:
def factorial(n: int) -> int:
"""Return n! (factorial of n) using a loop."""
# Task: Decide how to handle n < 0
# Task: Initialize result
# result = ...
# Task: Multiply result by each integer from 1 to n
# for ...:
# ...
# Task: Return the computed factorial
# return result
pass
# Optional quick test
# print(factorial(5)) # expected: 120
Fonksiyonlar hakkında daha fazlası için Python fonksiyonları eğitimimize bakın.
Sırada bir asal sayı doğrulayıcı fonksiyona bakacağız. Bu, yeniden kullanılabilir fonksiyonlar yazmayı öğrenmenize yardımcı olur.
True döndüren (sayı asal ise) ve aksi halde False döndüren bir fonksiyon yazın.
Asal denetimi, fonksiyonların mantığı temiz biçimde kapsülleyebileceğini de gösterir. Bir kez yazıldıktan sonra, fonksiyon nerede olursa olsun iç işleyişini anlamadan tekrar kullanılabilir.
Size yol göstermesi için bazı başlangıç kodları:
def is_prime(n: int) -> bool:
"""Return True if n is prime, otherwise False."""
# Task: Handle small cases (n <= 1)
# Task: Check divisibility from 2 up to an appropriate limit
# for ...:
# if ...:
# return False
# Task: If no divisors found, return True
# return True
pass
# Optional quick tests
# print(is_prime(2)) # expected: True
# print(is_prime(15)) # expected: False
Bu, birçok Python kütüphanesinde kullanılan gelişmiş fonksiyon imzalarını tanıtır.
*args kullanarak herhangi sayıda argüman kabul eden ve bunları tek tek yazdıran bir fonksiyon oluşturun.
Bu alıştırma sizi Python’ın daha esnek özelliklerinden birine, değişken uzunluklu argümanlara maruz bırakır. Düşüncenizi sabit girdilerden, farklı kullanım örüntülerine uyum sağlayabilen fonksiyonlara doğru kaydırır.
*args kavrayışı, gerçek dünya Python kütüphanelerini okumayı ve kullanmayı kolaylaştırır; çünkü fonksiyonlar sıklıkla kolaylık ve genişletilebilirlik için esnek sayıda parametre kabul eder.
Size yol göstermesi için bazı başlangıç kodları:
def print_args(*args) -> None:
"""Print each positional argument on its own line."""
# Task: Loop over args and print each one
# for ...:
# print(...)
pass
# Optional quick test
# print_args("hello", 42, True)
Alıştırmalar beceri kazandırır, ancak projeler bu becerileri özgüvene dönüştürür.

Investigating Netflix Movies yönlendirmeli projesi aldatıcı derecede basit bir soru sorar: Filmler zaman içinde kısalıyor mu? Buna yanıt vermek için Netflix başlıklarından oluşan gerçek bir veri kümesiyle çalışacak ve ham veri satırlarını kademeli olarak net, görsel bir içgörüye dönüştüreceksiniz.
Bu projeyi güçlü kılan, yeni başlayan Python temelleri ile uygulamalı veri analizi arasındaki boşluğu kapatmasıdır. Basit mantığın doğru araçlarla birleştiğinde nasıl ölçeklendiğini görürsünüz; hem de yerel olarak hiçbir şey kurmanız gerekmeden.

Bu Dr. Semmelweis and the Importance of Handwashing projesi, sizi gerçek bir tarihsel sorunu araştıran bir veri analisti rolüne yerleştirir. 19. yüzyılın ortalarında Dr. Ignaz Semmelweis, bir hastane koğuşunda diğerine kıyasla olağandışı derecede yüksek ölüm oranları gözlemledi; ancak nedenini kanıtlayacak hesaplama araçlarından yoksundu.
Tarihsel kayıtları kullanarak, el yıkamanın uygulanmasından önce ve sonra ölüm oranlarını analiz edeceksiniz. Proje, pandas ile tablolu verileri işlemenin, oranları hesaplamanın ve zaman dönemleri arasında ortalamaları karşılaştırmanın üzerinde durur.

Exploring Airbnb Market Trends projesinde, gerçek dünya analitik işine çok benzeyen bir senaryoya adım atarsınız: Anlamlı bir analize başlamadan önce önemli ölçüde temizlenmesi gereken dağınık, tutarsız veriler.
Veri kümesi; dizge olarak saklanmış fiyatlar, eksik inceleme puanları ve tutarsız biçimlendirmeye sahip kiralık ilanları içerir.
Birincil göreviniz verileri temizlemek ve standartlaştırmaktır. Proje, veri hazırlamanın ön çalışma değil, temel bir analitik beceri olduğu fikrini pekiştirir. Çoğu zaman veri uygulayıcılarının zamanının çoğu veriyi temizlemekle geçer ve bu proje bu yetkinlik için harika bir pratik kontrol noktasıdır.
Basit değişkenler ve kullanıcı girdisiyle başladınız; ardından kontrol akışı, veri yapıları, fonksiyonlar üzerinden ilerlediniz ve sonunda hepsini yönlendirmeli projelerde uyguladınız. Bu alıştırmalar, Python’ın gerçek dünya ortamlarında nasıl kullanıldığına dair iyi bir fikir vermiş olmalı.
Doğal bir sonraki adımınız yapılandırılmış öğrenmedir. Tutarlı pratik ile yapılandırılmış, yönlendirmeli öğretimi eşleştirmek, alıştırmaları uzmanlığa dönüştürmenin en hızlı yoludur. Başlamak için Python Programming veya Data Scientist rotamıza kaydolmanızı öneririm.
En güçlü platformlar, uygulamalı kodlamayı yapılandırılmış geri bildirimle birleştirir. DataCamp, tarayıcıda kodlama (kurulum yok), alıştırmalarda anlık geri bildirim, yapılandırılmış beceri ve kariyer rotaları ve gerçek veri kümeleriyle yönlendirmeli projeler sunduğu için yönlendirmeli pratikte mükemmeldir.
Aralıklı tekrar en iyi, yalnızca sözdizimine değil kavramlara uygulandığında işe yarar. Notları tekrar tekrar okumak yerine, aynı fikirlere zaman içinde giderek zorlaşan alıştırmalarla geri dönün.
Gelişmiş projelere iyi örnekler arasında dosya kalıcılığı olan bir komut satırı yapılacaklar uygulaması oluşturmak, pandas ve temel görselleştirmelerle bir CSV veri kümesini analiz etmek veya herkese açık bir uç noktadan veri çekip işleyen küçük bir API istemcisi yazmak yer alır.
Ben Austin, sağlık sektöründe veri bilimci ve veri analisti olarak yıllara dayanan deneyime sahip bir blogger ve teknoloji yazarıyım. Biyoloji geçmişiyle başladığım teknoloji yolculuğumda, şimdi teknoloji blogum aracılığıyla başkalarının da aynı geçişi yapmasına yardımcı oluyorum. Teknolojiye olan tutkum, onlarca SaaS şirketine yazılı katkılar sunmama, başkalarına ilham vermeme ve deneyimlerimi paylaşmama vesile oldu.
Yeni Başlayanlar İçin Python Kursları
Kurs
Kurs
Kurs
blog
Dario Radečić
15 dk.

blog
Abid Ali Awan
14 dk.
Eğitim
Adel Nehme
Eğitim
Kurtis Pykes
8 dk.