Bu depo, Helsinki Üniversitesi'nin University of Helsinki MOOC kapsamında sunduğu Python programlama kursuna ait çözüm ödevlerini içermektedir.
- Ders Kaynağı: Bu projede yer alan soruların ve egzersizlerin tamamı https://programming-25.mooc.fi adresindeki resmi Python kursundan alınmıştır.
- Kapsam: Depoda kursun tüm bölümlerinin çözümleri bulunmamaktadır. Sadece Part 8 ve sonraki bölümlere (Nesne Yönelimli Programlama - OOP, Fonksiyonel Programlama, Düzenli İfadeler, Pygame vb.) ait çözümler mevcuttur.
Projeyi yerel makinenize indirmek için terminalinizden aşağıdaki komutu çalıştırabilirsiniz:
git clone https://github.com/ogsammaenr/python-programming.git
cd python-programmingProjedeki özellikle görsel ve oyun tabanlı ödevleri (Part 13 ve Part 14) çalıştırabilmek için sisteminizde Pygame kütüphanesinin kurulu olması gerekmektedir.
Pygame kütüphanesi sistem genelinde kurulu değilse, aşağıdaki komut ile kullanıcı bazlı kurulum yapabilirsiniz:
python3 -m pip install -U pygame --user💡 Ek Kaynak: Pygame ile ilgili fonksiyonlar, modüller ve daha detaylı kullanım detayları için resmi Pygame Dokümantasyonu adresini ziyaret edebilirsiniz.
Projedeki dosyaları (özellikle görsel varlıklar içeren Part 13 ve Part 14 altındaki Pygame uygulamalarını) çalıştırarken yolların doğru çözümlenebilmesi için kesinlikle projenin kök dizininde (root directory) bulunmalısınız.
Proje ana dizinindeyken terminal üzerinden şu komut şablonuyla çalıştırma yapmalısınız:
python part_14/main.pyEğer ilgili klasörün içine (cd part_14) girip python main.py şeklinde çalıştırırsanız, robot.bmp veya assets/ altındaki görseller yüklenirken yol hataları ('FileNotFoundError') alabilirsiniz.
Depoda yer alan bazı önemli konu başlıkları ve örnek dosyalar şu şekildedir:
- Part 8 & 9: Sınıf (Class) ve Metot tanımlamaları, Kapsülleme (Encapsulation) mantığı (
car.py,recording.py), Sınıf Nitelikleri (postcodes.py). - Part 10: Sınıf Hiyerarşileri ve Miras Alma (Inheritance) yapısı (
areas.py,laptop_computer.py,word_game.py). - Part 11: List Comprehensions (
begin_with_a_vowel.py), İleri Seviye Yineleme ve Özyineleme (Recursion) algoritmaları (recursive_sum.py,greatest_node.py). - Part 12: Fonksiyonlerin Argüman Olarak Kullanımı, Üreticiler (Generators -
prime_numbers.py), Fonksiyonel Programlama (reduce,filter,map) ve Düzenli İfadeler (Regex -regular_expressions.py). - Part 13 & 14: Pygame ile Temel Grafik/Animasyon İşlemleri (
bouncing_ball.py,robot_invasion.py) ve Flappy Bird benzeri modüler mini oyun uygulaması (main.py,player.py,pipes.py).
- Part 14 altındaki Flappy Bird projesinde kullanılan grafik ve görsel varlıklar, Megacrash tarafından hazırlanan Flappy Bird Assets paketinden alınmıştır.
Not: Kod içindeki yorum satırlarında Türkçe karakterlerin nadir olmasının sebebi kullandığım klavye düzeni ile ilgilidir.