Python for Project Managers 9 – Tuples

Photo by Linda Eller-Shein on Pexels.com

1. What is a Tuple?

A tuple in Python is an ordered and immutable data structure used to store multiple values in a single variable. It is very similar to a list, but the main difference is that tuples cannot be changed after creation.

my_tuple = (1, 2, 3)

2. Creating a Tuple

  • Using parentheses:
fruits = ("apple", "banana", "cherry")
  • Parentheses are optional (a comma is enough):
colors = "red", "green", "blue"
  • For a single-element tuple, a trailing comma is required:
one_element = ("hello",)

3. Accessing Tuple Elements

You can access tuple elements using index numbers. Indexing starts at 0.

print(fruits[0])  # apple
print(fruits[-1]) # cherry

4. Iterating Through a Tuple

for fruit in fruits:
    print(fruit)

5. Nested Tuples

Tuples can contain other tuples:

nested = (1, 2, (3, 4))
print(nested[2])      # (3, 4)
print(nested[2][0])   # 3

6. Immutability

Tuple contents cannot be changed after creation. The following will raise an error:

fruits[1] = "orange"  # ❌ TypeError

7. Advantages of Tuples

  • Faster: Tuples consume less memory and are faster than lists.
  • Safer: Immutable nature ensures data integrity.
  • Hashable: Tuples can be used as keys in dictionaries (lists cannot).

8. Tuple Functions

FunctionDescription
len(t)Returns the number of elements
t.count(x)Counts how many times x appears
t.index(x)Returns the index of the first occurrence of x
numbers = (4, 2, 7, 2, 9)
print(numbers.count(2))  # 2
print(numbers.index(7))  # 2

9. Converting Between Tuples and Lists

my_list = [1, 2, 3]
my_tuple = tuple(my_list)

new_list = list(my_tuple)

Summary:

FeatureTupleList
Ordered
Mutable❌ (immutable)✅ (mutable)
Syntax()[]
PerformanceFasterMore flexible
Use CasesFixed sets, safe dataDynamic collections

Try Yourself: https://colab.research.google.com/drive/1w3s04eF5v9Y3OiXZgdA4k8s47SscLaEY?usp=sharing

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 #7

Photo by Ann H on Pexels.com

Python’da Boolean veri tipi (True / False) ve karşılaştırma operatörleri konusu, programlamada karar verme süreçlerinin temelini oluşturur.


Boolean (Mantıksal) Veri Tipi

Python’da sadece iki adet Boolean değeri vardır:

  • True  → Doğru
  • False → Yanlış

Bu değerler bool veri tipi olarak tanımlanır:

print(type(True))   # <class 'bool'>
print(type(False))  # <class 'bool'>

Bu değerler genellikle koşullu ifadelerde (if, while vb.) ve karşılaştırmalardan elde edilen sonuçlarda kullanılır.


Boolean Değer Üreten Karşılaştırmalar

Python’da karşılaştırma operatörleriyle iki değer arasında ilişki kurabiliriz. Bu işlemler sonucunda True ya da False döner.

OperatörAnlamıÖrnekSonuç
==Eşittir5 == 5True
!=Eşit değildir5 != 3True
>Büyüktür10 > 7True
<Küçüktür3 < 8True
>=Büyük veya eşittir5 >= 5True
<=Küçük veya eşittir4 <= 2False
a = 10
b = 20

print(a == b)  # False
print(a < b)   # True

Boolean Mantık Operatörleri

Koşulları birleştirmek veya tersine çevirmek için mantık operatörlerini kullanırız:

OperatörAnlamıÖrnekAçıklama
andveTrue and FalseHer ikisi de True ise True olur
orveyaTrue or FalseBiri bile True ise sonuç True olur
notdeğil (tersi)not TrueTrue → False, False → True
x = 5
y = 10

print(x > 3 and y < 20)   # True
print(x > 3 and y > 20)   # False
print(x > 10 or y < 20)   # True
print(not (x == 5))       # False

bool() Fonksiyonu

Herhangi bir ifadeyi Boolean’a çevirmek için bool() fonksiyonu kullanılır:

print(bool(0))          # False
print(bool(42))         # True
print(bool(""))         # False
print(bool("Python"))   # True

False olarak değerlendirilen ifadeler:

  • 0 (sayısal olarak)
  • 0.0
  • ” (boş string)
  • [], {}, () (boş veri yapıları)
  • None

Diğer her şey Python’da True olarak kabul edilir.


Uygulama Örneği

username = "admin"
password = "1234"

if username == "admin" and password == "1234":
    print("Giriş başarılı")
else:
    print("Giriş başarısız")

Özet

  • bool sadece True veya False olabilir.
  • Karşılaştırma operatörleri ile bool değerler elde edilir.
  • and, or, not gibi mantıksal operatörler koşulları birleştirmekte kullanılır.
  • bool() fonksiyonu, her ifadeyi True/False’a çevirir.

Örnek 1: Basit Karşılaştırma

a = 15
b = 20

print(a > b)

Beklenen Çıktı:

False

Açıklama: 15, 20’den büyük olmadığı için sonuç False olur.


Örnek 2: Mantıksal and Operatörü

age = 25
has_license = True

if age >= 18 and has_license:
    print("Araç kullanabilirsiniz.")
else:
    print("Araç kullanamazsınız.")

Beklenen Çıktı:

Araç kullanabilirsiniz.

Açıklama: Hem 18 yaşından büyük hem de ehliyeti olduğu için şartlar sağlanır.


Örnek 3: not Kullanımı

is_raining = False

if not is_raining:
    print("Şemsiye almanıza gerek yok.")
else:
    print("Şemsiye alın!")

Beklenen Çıktı:

Şemsiye almanıza gerek yok.

Açıklama: Yağmur yağmıyorsa (is_raining = False), not ile bu ifade tersine çevrilir ve True olur.


Örnek 4: bool() ile Boşluk Kontrolü

text = ""

if bool(text):
    print("Metin boş değil.")
else:
    print("Metin boştur.")

Beklenen Çıktı:

Metin boştur.

Açıklama: Boş bir string (“”) Python’da False olarak değerlendirilir.


Örnek 5: or ile Çoklu Koşul

temperature = 35
is_hot = temperature > 30
is_humid = True

if is_hot or is_humid:
    print("Bol su için!")
else:
    print("Hava güzel.")

Beklenen Çıktı:

Bol su için!

Açıklama: Sıcaklık 30’dan büyük veya nemli hava varsa, uyarı mesajı gösterilir.


Örnek 6: Proje Zaman ve Bütçe Durumu Değerlendirmesi

# Proje bilgileri
actual_duration = 45     # Gerçekleşen gün sayısı
planned_duration = 40    # Planlanan gün sayısı

actual_cost = 110000     # Harcanan para (TL)
budget = 100000          # Bütçe (TL)

# Karşılaştırmalar
is_delayed = actual_duration > planned_duration
is_over_budget = actual_cost > budget

# Durumu değerlendirme
if is_delayed and is_over_budget:
    print("Proje hem gecikmiş hem de bütçeyi aşmış durumda.")
elif is_delayed and not is_over_budget:
    print("Proje gecikmiş ama bütçe içinde kalmış.")
elif not is_delayed and is_over_budget:
    print("Proje zamanında tamamlanmış ama bütçeyi aşmış.")
else:
    print("Proje zamanında ve bütçe içinde tamamlanmış.")

Beklenen Çıktı:

Proje hem gecikmiş hem de bütçeyi aşmış durumda.

Açıklama:

Bu örnek, bir projenin zaman ve maliyet performansını kontrol eden bir yapı sunar. and, not, karşılaştırma operatörleri ve bool mantığı birlikte kullanılmıştır. Bu tür bir yapı, ileride daha büyük bir proje yönetim sisteminin temeli olabilir (örneğin Earned Value hesaplamaları gibi).


Google Colab ile kendiniz deneyin.

https://colab.research.google.com/drive/1qBdufGOH_F7XJW-CDhrVx4LRJHM5kFos?usp=sharing

File ->Save a copy in Drive: Dosyayı kendi Google Drive klasörünüze almanız için kullanabilirsiniz.