Proje Yöneticileri için Python #8 – Listeler (Lists)

Photo by cottonbro studio on Pexels.com

1. Liste Nedir?

Liste, birden fazla veriyi tek bir değişkende tutmamızı sağlayan, sıralı (ordered) ve değiştirilebilir (mutable) bir veri yapısıdır. Python’daki listeler köşeli parantez [ ] ile tanımlanır.

my_list = [1, 2, 3, 4, 5]

2. Liste Elemanları

Listelerde farklı veri tipleri bir arada bulunabilir:

mixed_list = [42, 'Python', 3.14, True]

Liste içinde başka bir liste bile olabilir (iç içe liste):

nested_list = [1, [2, 3], 4]

3. Liste Elemanlarına Erişim (Indexing)

Python’da dizinler (index) 0’dan başlar:

fruits = ['elma', 'muz', 'kiraz']
print(fruits[0])   # elma
print(fruits[2])   # kiraz

Negatif indeksler sondan başlamayı sağlar:

print(fruits[-1])  # kiraz
print(fruits[-2])  # muz

4. Dilimleme (Slicing)

Bir listenin belli bir kısmını almak için liste[start:stop] yazılır.

numbers = [10, 20, 30, 40, 50]
print(numbers[1:4])  # [20, 30, 40]
print(numbers[:3])   # [10, 20, 30]
print(numbers[3:])   # [40, 50]

5. Liste Elemanlarını Değiştirme

Listeler değiştirilebilen (mutable) yapılardır.

colors = ['kırmızı', 'yeşil', 'mavi']
colors[1] = 'sarı'
print(colors)  # ['kırmızı', 'sarı', 'mavi']

6. Liste Metotları

Python’da listelerle çalışmayı kolaylaştıran birçok yerleşik metod vardır:

append()

: Listeye eleman ekler

my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # [1, 2, 3, 4]

insert(index, value)

: Belirtilen index’e eleman ekler

my_list.insert(1, 99)
print(my_list)  # [1, 99, 2, 3, 4]

remove(value)

: İlk bulunan elemanı siler

my_list.remove(2)
print(my_list)  # [1, 99, 3, 4]

pop(index)

: Belirtilen index’teki elemanı çıkarır (index verilmezse sonuncuyu çıkarır)

my_list.pop()      # 4 çıkarıldı
my_list.pop(0)     # 1 çıkarıldı

sort()

: Listeyi sıralar (kalıcı)

nums = [3, 1, 4, 2]
nums.sort()
print(nums)  # [1, 2, 3, 4]

sorted()

: Sıralı yeni liste döner (orijinali değişmez)

nums = [3, 1, 4, 2]
print(sorted(nums))  # [1, 2, 3, 4]
print(nums)          # [3, 1, 4, 2]

reverse()

: Listeyi ters çevirir

nums.reverse()
print(nums)  # [2, 4, 1, 3]

len()

: Liste uzunluğunu verir

len(nums)  # 4

7. Liste İçinde Dolaşmak (Loop)

names = ['Ali', 'Ayşe', 'Mehmet']
for name in names:
    print(name)

8. Liste Oluşturmanın Kısa Yolu: List Comprehension

Listeleri hızlı oluşturmak için kullanılır:

squares = [x**2 for x in range(5)]
print(squares)  # [0, 1, 4, 9, 16]

9. Listeyi Temizleme

my_list.clear()
print(my_list)  # []

10. Liste Kopyalama

copy_list = my_list.copy()

Örnek: Proje Yöneticilerine Yönelik Liste Kullanımı

Bir proje yöneticisi görev listesini Python’da liste olarak tutabilir:

task_list = ['Kapsam Tanımı', 'Zaman Planı', 'Bütçe Hesaplama']
task_list.append('Risk Analizi')
print("Güncel Görevler:", task_list)

5 Uygulama Sorusu


Görev 1: Şehirler Listesi

cities = ['Paris', 'Tokyo', 'Berlin', 'New York', 'İstanbul']

Görev:

  • Listenin ilk şehrini yazdırın.
  • Listenin son şehrini yazdırın.
  • Listede kaç şehir olduğunu yazdırın (len() fonksiyonunu kullanın).

Görev 2: Meyveler Listesi

fruits = ['elma', 'muz', 'kiraz']

Görev:

  • ‘muz’ öğesini ‘portakal’ ile değiştirin.
  • Listenin sonuna ‘üzüm’ ekleyin.
  • ‘elma’yı listeden silin.
  • Listenin son halini yazdırın.

Görev 3: Filmler Listesi

movies = ['Inception', 'Avatar', 'The Matrix', 'Interstellar']

Görev:

Listeyi döngü ile dolaşın ve her film için şu formatta bir mesaj yazdırın:

“Ben <film> izlemeyi çok seviyorum!”


Görev 4: Sayılar Listesi

numbers = [34, 12, 5, 66, 29, 100, 3]

Görev:

  • Dilimleme (slicing) kullanarak ilk 3 sayıyı yazdırın.
  • Listeyi artan sıraya göre sıralayın ve yazdırın.
  • Sıralanmış listenin son 2 elemanını yazdırın.

Görev 5: Çift Sayıların Karesini Oluşturma

Bu görevde başlangıç listesi yoktur — listeyi kendiniz oluşturmanız gerekiyor.

Görev:

  • 1 ile 20 arasındaki çift sayıların karelerinden oluşan bir listeyi liste kavrayışı (list comprehension) kullanarak oluşturun.
  • Oluşturduğunuz listeyi yazdırın.

Cevaplar


Görev 1: Şehirler Listesi

cities = ['Paris', 'Tokyo', 'Berlin', 'New York', 'İstanbul']

print(cities[0])       # Paris
print(cities[-1])      # İstanbul
print(len(cities))     # 5

Görev 2: Meyveler Listesi

fruits = ['elma', 'muz', 'kiraz']

fruits[1] = 'portakal'    # muz yerine portakal
fruits.append('üzüm')     # liste sonuna üzüm
fruits.remove('elma')     # elma silindi

print(fruits)  # ['portakal', 'kiraz', 'üzüm']

Görev 3: Filmler Listesi

movies = ['Inception', 'Avatar', 'The Matrix', 'Interstellar']

for movie in movies:
    print(f"Ben {movie} izlemeyi çok seviyorum!")

🖨️ Çıktı:

Ben Inception izlemeyi çok seviyorum!
Ben Avatar izlemeyi çok seviyorum!
Ben The Matrix izlemeyi çok seviyorum!
Ben Interstellar izlemeyi çok seviyorum!

Görev 4: Sayılar Listesi

numbers = [34, 12, 5, 66, 29, 100, 3]

print(numbers[:3])  # [34, 12, 5]

numbers.sort()
print(numbers)      # [3, 5, 12, 29, 34, 66, 100]

print(numbers[-2:]) # [66, 100]

Görev 5: Çift Sayıların Karesi (List Comprehension)

even_squares = [x**2 for x in range(1, 21) if x % 2 == 0]

print(even_squares)  
# [4, 16, 36, 64, 100, 144, 196, 256, 324, 400]

Google Colab ile Kendiniz Deneyin: https://colab.research.google.com/drive/11XI7qqcjyfLnyYyo3vF6pjS1YC9QFfII?usp=sharing

Proje Yöneticileri için Python #6

Buğday Taneleri

Photo by Pixabay on Pexels.com

Giriş

Uzun zaman önce, akıllı bir hizmetkâr bir prensin hayatını kurtarmış. Kral, ona istediği her şeyi vereceğini söylemiş. Hizmetkâr da kralın satrancı çok sevdiğini bildiğinden, buğday tanesi istemiş. “Satranç tahtasının ilk karesine 1 tane, her sonraki kareye de öncekinin iki katı kadar buğday koyun” demiş.

Talimatlar

Bu görevde, satranç tahtasındaki buğday tanelerinin sayısını hesaplaman gerekiyor.

Bir satranç tahtasında 64 kare vardır.

  • 1. kare: 1 tane
  • 2.kare: 2 tane
  • 3.kare: 4 tane
  • 4.kare: 8 tane

Şu kodları yazmanız bekleniyor:

  • Belirli bir karede kaç tane buğday olduğunu hesapla
  • Tüm tahtadaki toplam buğday sayısını hesapla

Hata mesajları

Bazen bir şeyler yanlış gittiğinde programı durdurup hata göstermek gerekir. Bunu yaparken, hatanın neden kaynaklandığını açıklamak önemlidir.

Bu görevde, kare numarası 1 ile 64 arasında değilse şu kodla hata vermelisin:

raise ValueError("square must be between 1 and 64")

Bu, kodunun anlaşılmasını kolaylaştırır ve hataları düzeltmeyi kolaylaştırır.


CEVAP

square_no = int(input("Give the number of square: "))

if square_no < 1 or square_no > 64:
    raise ValueError("square must be between 1 and 64")
total = 0
for i in range(0, square_no):
    total += 2**i
print(total)