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.

Yazılımcılar Neden Kariyer Yolunu Proje Yöneticiliğine Doğru Çevirmeli?

Photo by Mikhail Nilov on Pexels.com

Teknoloji dünyası hızla değişiyor. Yapay zekânın yükselişinden çevik (agile) yöntemlerin baskın hale gelmesine kadar, yazılım geliştirme ekiplerindeki roller giderek daha dinamik bir hal alıyor. Bu ortamda yazılımcılar için en stratejik geçişlerden biri, kodlamadan proje yönetimine yönelmek olabilir. İlk bakışta teknik dünyadan uzaklaşmak gibi görünse de, bu geçiş hem doğal hem tatmin edici hem de etkili bir kariyer adımıdır.


1. Büyük Resmi Görme Yeteneği

Bir yazılımcı olarak genellikle belirli problemleri çözmeye veya özellikler geliştirmeye odaklanırsınız. Ancak bir proje yöneticisi (PM) olduğunuzda, tüm bu görevlerin nasıl bir stratejiye hizmet ettiğini görmeye başlarsınız. Kodlamadan gelen biri olarak, teknolojik sınırları, yazılım geliştirme sürecinin hızını ve mantığını bildiğiniz için planlamada ve takımla iletişimde büyük avantaj sağlarsınız.


2. Teknik ve İş Dünyası Arasında Köprü Olmak

Birçok proje, teknoloji başarısız olduğu için değil, iş gereksinimleri doğru anlaşılmadığı için başarısız olur. Kodlamadan gelen bir Proje Yöneticisi, teknik ve teknik olmayan dünyalar arasında mükemmel bir çevirmen olur. Hem iş birimlerini hem geliştiricileri anlayarak gereksiz karmaşayı önler, netlik sağlar ve gerçekten ihtiyaç duyulan ürünlerin ortaya çıkmasına katkı sunar.


3. Kariyer Gelişimi ve Etki Alanının Artması

Bir yazılımcı olarak derinleşmediğiniz sürece kariyeriniz bir noktada tıkanabilir. Ancak proje yöneticileri için kariyer yolu genellikle daha açık ve yukarı doğrudur: Program Yöneticisi, Ürün Sahibi, Mühendislik Direktörü hatta CTO gibi roller. Çünkü bu pozisyonlar, sadece teknik değil, aynı zamanda zamanlama, insan yönetimi ve iş sonuçları gibi konularda da yetkinlik gerektirir.


4. Teknolojiden Anlayan PM’lere Artan Talep

Şirketler, kodlama bilen proje yöneticilerinin ne kadar değerli olduğunu artık daha iyi anlıyor. Bu kişiler hem geliştiricilerle anlamlı teknik tartışmalar yapabilir, hem de sorunları daha çıkmadan fark edip çözüme kavuşturabilir. Kodlama yeteneğinizi tamamen bırakmanız gerekmez – hala kodları okuyabilir, mimari kararlar alabilir ve teknik hedeflerle iş hedeflerini buluşturabilirsiniz.


5. Zor Bilgilerle Yumuşak Becerileri Birleştirme

Yazılımcılar olarak zaten analitik düşünceye, detaylara dikkat etmeye ve sorun çözmeye alışıksınız. Proje yönetimi ise bu becerilerin üstüne iletişim, müzakere, liderlik, risk yönetimi ve paydaşlarla ilişki kurma gibi soft-skill’leri (yumuşak beceriler) eklemenizi sağlar. Bu yetkinlikler, ister teknik ister yönetici olsun, tüm üst düzey rollerde hayati öneme sahiptir.


6. Hâlâ Sorun Çözüyor Olacaksınız – Sadece Daha Geniş Ölçekte

Proje yöneticileri sadece takvimleri yönetmez. Sorunları önceden fark eder, öncelikleri dengeler, krizleri önler. Kod yazmanın zevkinden uzaklaşmak istemeyen yazılımcılar için Proje Yöneticiliği hâlâ problem çözme işidir – ama bu kez takımların ve süreçlerin karşılaştığı sorunları çözersiniz.


7. Teknikten Uzaklaşmak Zorunda Değilsiniz (İsterseniz)

Özellikle çevik yapılarda, birçok proje yöneticisi hâlâ teknik süreçlerin içinde yer alır. Teknik Proje Yöneticisi ya da Mühendislik Yöneticisi gibi pozisyonlar, teknik kararlarla iç içe kalmanıza olanak tanır. Yani “koddan uzak kalacağım” endişesi taşımadan hibrit bir rol üstlenebilirsiniz.


8. Farklı Rollerle Empati Kurmayı Öğrenirsiniz

Proje yöneticisi olduğunuzda sadece yazılımı değil, tasarımcıları, testçileri, pazarlama ekibini, hukuk ve uyum süreçlerini de tanımaya başlarsınız. Bu rollerin ne kadar karmaşık ve kritik olduğunu anlayarak, daha güçlü bir iletişim kurar ve daha sağlıklı ekip çalışmaları yürütürsünüz.


Bir Yön Değişikliği Değil, Stratejik Bir Adım

Proje yöneticisi olmak, kodu bırakmak değil – bir orkestrayı yönetmek gibi, artık sadece bir enstrümanı değil tüm yapıyı yönetiyorsunuz. Teknik bilginizi stratejik düşünce, liderlik ve iş zekâsıyla birleştirdiğinizde, sadece kod yazmakla kalmaz, projeleri ve ekipleri yönlendiren kişi olursunuz.

Eğer sistem düşüncesine sahipseniz, takım çalışmasına değer veriyorsanız ve daha büyük etki yaratmak istiyorsanız, yazılımcılıktan proje yöneticiliğine geçiş sizin için mükemmel bir adım olabilir.


İstanbul Kurumsal Gelişim olarak her türlü Proje Yönetimi kariyer yolculuğunuzda sizlerle birlikteyiz. http://www.projeyonetimi.com

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)

Proje Yöneticileri için Python #5

String Yapıları için Uygulama Örnekleri


1. Soru: “un” ön eki ekleme

Soru: Elinizde bir kelime var: “happy”. Bu kelimeye “un” ön ekini ekleyerek yeni bir kelime oluşturun. Sonucu ekrana yazdırın.

Beklenen çıktı:

unhappy

2. Soru: Ön ekli kelime grubu oluşturma

Soru: Aşağıdaki listedeki ilk öğe bir ön ektir. Diğer kelimelere bu ön eki ekleyerek yeni kelimeler oluşturun.

Sonuçları aşağıdaki formatta birleştirip ekrana yazdırın:

vocab_words = ['en', 'close', 'joy', 'lighten']

Beklenen çıktı:

en :: enclose :: enjoy :: enlighten

3. Soru: “-ness” son ekini kaldırma

Soru: Aşağıdaki kelimenin sonundaki “ness” ekini kaldırın. Eğer bu ekten önceki harf “i” ise, bu harfi “y” harfiyle değiştirin.

Aşağıdaki örnek için doğru sonucu ekrana yazdırın:

word = "heaviness"

Beklenen çıktı:

heavy

4. Soru: Cümledeki sıfattan fiil oluşturma

Soru:

Verilen cümledeki kelimelerden, belirtilen index’teki kelimeyi bulun.

Bu kelimenin sonuna “en” ekleyerek onu bir fiile çevirin. Noktalamayı temizlemeyi unutmayın.

sentence = "It got dark as the sun set."
index = 2

Beklenen çıktı:

darken

Cevaplar


1. “un” ön eki ekleme

word = "happy"
prefixed_word = "un" + word
print(prefixed_word)  # "unhappy"

✅ 2. Ön ekli kelime grubu oluşturma

vocab_words = ['en', 'close', 'joy', 'lighten']
prefix = vocab_words[0]
result = prefix

for word in vocab_words[1:]:
    result += " :: " + prefix + word

print(result)  # "en :: enclose :: enjoy :: enlighten"

✅ 3. “-ness” son ekini kaldırma

word = "heaviness"

if word.endswith("ness"):
    root = word[:-4] # son 4 harfi sildik.
    if root.endswith("i"): # eğer son harf "i" ise bunu "y" ile değiştirmeliyiz.
        root = root[:-1] + "y" # son harfi silip yerine "y" koyduk.
    print(root)  # "heavy"

✅ 4. Cümledeki sıfattan fiil oluşturma

sentence = "It got dark as the sun set."
index = 2

sentence_list = sentence.split() # cümleyi liste yapısına  dönüştürdük.

adjective = sentence_list[index].sprit(".,?!") # sıfatı bulduk ve tüm noktalama işaretlerinden kurtulduk.
verb = adjective + "en" # sıfatı fiile çevirdik.

print(verb)  # "darken"

https://colab.research.google.com/drive/1icXpFCJiV5-XjoqLhP6iVDNoFIXyjhrm?usp=sharing

Proje Yöneticileri için Python #4

Benim Python yolculuğum, projelerimi daha iyi yönetebilmek amacıyla başladı. Bu notlar, kendi ders notlarımdır.


str Veri Tipi

1. String (Metin) Nedir?

Nasıl ki insanlar mesaj veya yazı yazmak için harfleri kullanırsa, Python’da da metinleri temsil etmek için string (yani karakter dizisi) kullanırız.

Python’da bir metin, başına ve sonuna tırnak işareti konularak yazılır:

"Merhaba"
'Python öğreniyorum'

Her ikisi de Python’da string (metin) olarak kabul edilir.


2. String (Metin) Nasıl Tanımlanır?

Bir metni bir değişkende saklayabiliriz:

name = "Gökrem"
message = 'Bugün hava çok güzel.'

Artık name ve message adında iki kutumuz var ve bu kutular string (metin) değerleri içeriyor.


3. Bir Metnin İçeriğine Nasıl Ulaşılır?

Bir metindeki her karakterin bir sırası (pozisyonu) vardır. Buna indeks denir ve Python’da 0’dan başlar:

name = "Gökrem"
print(name[0])   # G
print(name[1])   # ö
print(name[-1])  # m → son harf
print(name[2:4]) # kr
print(type(name)) # <class 'str'>

4. String Birleştirme ve Tekrar Etme

Birleştirme ( + )

İki string’i + operatörü ile birleştirebilirsin:

first_name = "Gökrem"
last_name = "Tekir"
print(first_name + " " + last_name)
# Çıktı: Gökrem Tekir

✖️ Tekrar Etme (*)

Bir metni tekrar ettirmek için * kullanılır:

print("Hey! " * 3)
# Çıktı: Hey! Hey! Hey! 

5. Bir Metnin Uzunluğunu Bulmak

Bir metnin kaç karakterden oluştuğunu görmek için len() fonksiyonu kullanılır:

name = "Gökrem"
print(len(name))  # 6

6. Sık Kullanılan String Fonksiyonları

Python’da string’lerle çalışırken bazı yerleşik fonksiyonlar (metotlar) oldukça sık kullanılır:

  • .upper() → Tüm harfleri büyük harfe çevirir. Örnek: “gökrem”.upper() sonucu “GÖKREM” olur.
  • .lower() → Tüm harfleri küçük harfe çevirir. Örnek: “GÖKREM”.lower() sonucu “gökrem” olur.
  • .strip() → Metnin başındaki ve sonundaki boşlukları siler. Örnek: ” Hello “.strip() sonucu “Hello” olur.
  • .replace() → Metnin bir kısmını başka bir metinle değiştirir. Örnek: “Men came”.replace(“Men”, “Women”) sonucu “Women came” olur.
  • .split() → Belirtilen karaktere göre metni böler ve bir liste döndürür (varsayılan karakter boşluktur). Örnek: “John Wick”.split() sonucu [“John”, “Wick”]

Google Colab Gösterimi

"gökrem".upper()       # GÖKREM
"GÖKREM".lower()       # gökrem
" Hello ".strip()      # Hello
"Men came".replace("Men", "Women")  # Women came
"John Wick".split()    # ['John', 'Wick'] → bir liste örneği

7. Basit Bir Örnek

Aşağıdaki kodu Google Colab’da deneyebilirsin:

name = "   gökrem tekir   "
print("Orijinal:", name)
print("Boşluksuz:", name.strip())
print("BÜYÜK HARFLİ:", name.upper())
print("küçük harfli:", name.lower())
print("Parçalanmış:", name.strip().split())

Sorular

Alıştırma 1: Selamlaşma Üretici

Görev: first_name ve last_name adında iki değişken oluştur. Bunları birleştirerek tam isim yap ve selamlayan bir mesaj yazdır.

Beklenen Çıktı:

Hello, Gökrem Tekir!

Alıştırma 2: Kelime Tekrarlayıcı

Görev: word = “Wow!” şeklinde bir değişken oluştur. Bu kelimeyi aynı satırda 5 kere yazdır.

Beklenen Çıktı:

Wow!Wow!Wow!Wow!Wow!

Alıştırma 3: Metin Uzunluğu Bulucu

Görev: city = “Amsterdam” şeklinde bir değişken oluştur. Bu şehrin kaç harf olduğunu len() fonksiyonuyla yazdır.

Beklenen Çıktı:

The word 'Amsterdam' has 9 characters.

Alıştırma 4: Metin Temizleyici

Görev: Boşluklu bir metin oluştur: dirty_text = ”   Hello Python!   “

Boşlukları temizleyip sade metni yazdır.

Beklenen Çıktı:

Hello Python!

Alıştırma 5: Büyük Harfe Dönüştürücü

Görev: Kullanıcıdan input() ile favori filmini al. Ardından bu filmi tamamen büyük harflerle yazdır.

Örnek Çalıştırma:

Enter your favorite movie: Inception
Output: INCEPTION

Cevaplar

Cevap 1: Selamlaşma Üretici

first_name = "Gökrem"
last_name = "Tekir"
full_name = first_name + " " + last_name
print("Hello, " + full_name + "!")

Cevap 2: Kelime Tekrarlayıcı

word = "Wow!"
print(word * 5)

Cevap 3: Metin Uzunluğu Bulucu

city = "Amsterdam"
length = len(city)
print(f"The word '{city}' has {length} characters.")

Cevap 4: Metin Temizleyici

dirty_text = "   Hello Python!   "
cleaned_text = dirty_text.strip()
print(cleaned_text)

Cevap 5: Büyük Harfe Dönüştürücü

movie = input("Enter your favorite movie: ")
print(movie.upper())

UDEMY KURSUMUZU ALMAK İSTERSENİZ:

https://www.udemy.com/course/proje-yoneticileri-icin-python/?couponCode=C4635C3ECAC411AC6E74

Proje Yöneticileri için Python #3

Python ile ilk kodlama egzersizinize hoş geldiniz! Bu alıştırmada, Gürbüz Usta’nın meşhur lazanyasını hazırlamak ve pişirmek için ne kadar zaman gerektiğini hesaplamasına yardım edeceksiniz.

Photo by Augusto Carneiro Junior on Pexels.com

Adım 1: Problemi Anlayın

Gürbüz Usta’nın lazanya tarifi iki ana adımdan oluşur:

  • Lazanya katlarını hazırlamak (her bir kat 2 dakika sürer)
  • Lazanyayı fırında pişirmek (40 dakika sürer ve bu süre her zaman aynıdır)

Bu egzersizde yazacağınız Python kodu şu süreleri hesaplamalıdır:

  1. Katları hazırlamak için geçen süre
  2. Pişirme süresi (her zaman 40 dakika)
  3. Mutfakta geçirilen toplam süre (hazırlık süresi + pişirme süresi)

Adım 2: Bir Programcı Gibi Düşünün

Hayal edin:

  • Size kaç kat lazanya yapılacağı söylendi – örneğin 3 ya da 5.
  • Bu sayıyı 2 ile çarparak hazırlık süresini hesaplayabilirsiniz.
  • Pişirme süresi her zaman 40 dakikadır, kat sayısı fark etmez.
  • Toplam süreyi bulmak için, hazırlık süresi ile pişirme süresini toplamanız yeterlidir.

Adım 3: Kodunuzu Planlayın

Aşağıdaki adımları izleyerek kodunuzu yazabilirsiniz:

  1. kat_sayisi adında bir değişken oluşturun ve bir sayı atayın (örneğin 3)
  2. Bu sayıyı 2 ile çarpın → sonucu hazirlik_suresi değişkenine atayın
  3. pisirme_suresi değişkenini 40 olarak belirleyin
  4. hazirlik_suresi + pisirme_suresi ile toplam_sure değişkenini hesaplayın
  5. Bu bilgileri ekrana yazdırın ki Gürbüz Usta plan yapabilsin

Yeni Başlayanlar İçin İpuçları

  • kat_sayisi değişkenine farklı değerler vererek kodunuzu test edebilirsiniz.
  • Açıklama yazmak için # işaretini kullanın – bu satırlar kodu çalıştırmaz, ama anlatır.
  • Python girintilere (boşluklara) duyarlıdır, dikkat edin.
  • Her adımda sonucu yazdırarak programın nasıl çalıştığını gözlemleyin.

🔹 Çözüm: Kod Yapısı

# Adım 1: Kat sayısını belirle
kat_sayisi = 3  # Bu sayıyı değiştirebilirsiniz

# Adım 2: Hazırlık süresini hesapla (her kat 2 dakika)
hazirlik_suresi = kat_sayisi * 2

# Adım 3: Pişirme süresi (her zaman 40 dakika)
pisirme_suresi = 40

# Adım 4: Toplam süre = hazırlık + pişirme
toplam_sure = hazirlik_suresi + pisirme_suresi

# Adım 5: Sonuçları yazdır
print("Hazırlık süresi:", hazirlik_suresi, "dakika")
print("Pişirme süresi:", pisirme_suresi, "dakika")
print("Mutfakta geçirilen toplam süre:", toplam_sure, "dakika")

Proje Yöneticileri için Python #2

proje yöneticileri python ile kod yazıyorlar.

Ders Konumuz: Temel Veri Tipleri ve Değişkenler — Sayılar (int, float, complex)

Python programlamaya yeni başladıysanız, ilk anlamanız gereken kavramlardan biri veri tipleridir. Bu bölümde, sayı veri tiplerine odaklanacağız. Python’da sayılar üç ana kategoriye ayrılır:

  • int — Tam sayılar
  • float — Ondalıklı sayılar
  • complex — Karmaşık sayılar

Ayrıca bu sayı türlerinin nasıl kullanıldığını, aralarında nasıl dönüşüm yapılacağını ve temel matematiksel işlemleri Python’da nasıl gerçekleştireceğimizi göreceğiz.

📌 Lütfen Google Colab’ı açın ve aşağıdaki örnekleri kendiniz deneyin. Python ile Kodlamaya başlamak için ilk yazımı aşağıdaki linkten okumanızı tavsiye ederim:


1. int (Tam Sayılar)

Tam sayılar virgül içermez ve negatif ya da pozitif olabilir.

number1 = 10
number2 = -42
number3 = 0

Python çok büyük tam sayıları da destekler:

big_number = 123456789012345678901234567890

Sık kullanılan işlemler:

x = 5
y = 2
print(x + y)   # Toplama → 7  
print(x - y)   # Çıkarma → 3  
print(x * y)   # Çarpma → 10  
print(x // y)  # Tam bölme → 2  
print(x % y)   # Mod alma → 1  
print(x ** y)  # Üs alma → 25

2. float (Ondalıklı Sayılar)

Ondalık içeren sayılar float tipindedir.

pi = 3.14
negative = -12.5
decimal = 0.0

📝 Not: Ondalık ayırıcı olarak nokta (.), virgül (,) değil kullanılır.

float ile işlemler:

a = 7.5
b = 2
print(a + b)  # 9.5  
print(a / b)  # 3.75

int ve float birlikte kullanılabilir. Sonuç genellikle float olur:

print(4 + 2.0)  # 6.0

3. complex (Karmaşık Sayılar)

Python, ileri düzey matematikte kullanılan karmaşık sayıları destekler. Sanal kısmı belirtmek için j kullanılır (i değil).

z = 3 + 4j
print(type(z))  # <class 'complex'>

Gerçek ve sanal kısımlar:

print(z.real)  # 3.0  
print(z.imag)  # 4.0

Karmaşık sayılarla işlemler:

a = 2 + 3j
b = 1 - 1j
print(a + b)  # (3+2j)  
print(a * b)  # (5+1j)

Tür Dönüşümü (Type Conversion / Casting)

Farklı sayı türleri arasında dönüşüm yapmanız gerekebilir. Python bunu kolaylaştırır:

x = 10
print(float(x))      # 10.0

y = 3.7
print(int(y))        # 3 (ondalık kısmı atılır)

z = 5
print(complex(z))    # (5+0j)

Veri Tipini Öğrenmek için 

type()

 Fonksiyonu

print(type(7))       # <class 'int'>  
print(type(2.5))     # <class 'float'>  
print(type(3 + 1j))  # <class 'complex'>

Gelişmiş İşlemler için “math Modülü

Python’un yerleşik math modülü, özellikle float tipleriyle çalışırken gelişmiş fonksiyonlar sunar:

import math

print(math.sqrt(16))     # Karekök: 4.0  
print(math.pow(2, 3))    # Üs alma: 8.0  
print(math.pi)           # Pi sayısı  
print(math.floor(4.9))   # Aşağı yuvarlama: 4  
print(math.ceil(4.1))    # Yukarı yuvarlama: 5

Uygulama Görevi

Bilgisayarınızda aşağıdaki örneği çalıştırın ve çıktıyı gözlemleyin:

a = float(input("Birinci sayıyı girin: "))
b = float(input("İkinci sayıyı girin: "))
print(f"Toplam: {a + b}")
print(f"Fark: {a - b}")
print(f"Çarpım: {a * b}")
print(f"Bölüm: {a / b}")

Ödevler

Alıştırma 1 — Veri Tipini Belirle

Aşağıdaki değişkenlerin veri tipini type() ile yazdıran bir Python betiği yazın:

a = 17
b = 3.14
c = -5
d = 2 + 3j
e = 0.0

Beklenen çıktı:

<class 'int'>
<class 'float'>
<class 'int'>
<class 'complex'>
<class 'float'>

Alıştırma 2 — Temel Aritmetik İşlemler

İki sayı alın, dört temel işlemi yapın: toplama, çıkarma, çarpma, bölme. Sayılar ondalıklı olabilir.

Örnek çıktı:

Birinci sayı: 8.5  
İkinci sayı: 2  
Toplam: 10.5  
Fark: 6.5  
Çarpım: 17.0  
Bölüm: 4.25

Alıştırma 3 — Tür Dönüşümü

Aşağıdaki dönüşüm sonuçlarını tahmin edin ve her değişkenin değeri ile tipini yazdırın:

x = 5
y = 3.8

x_float = float(x)
y_int = int(y)
z_complex = complex(x)

print(x_float)
print(type(x_float))
print(y_int)
print(type(y_int))
print(z_complex)
print(type(z_complex))

Alıştırma 4 — Karmaşık Sayılarla İşlem

Aşağıdaki karmaşık sayıları toplayan ve çarpan bir Python betiği yazın:

z1 = 4 + 2j
z2 = 1 - 5j

z_sum = z1 + z2
z_product = z1 * z2

print(f"Toplam: {z_sum}")         # (5-3j)
print(f"Çarpım: {z_product}")     # (14-18j)

Alıştırma 5 — math Modülü Kullanımı

Aşağıdaki işlemleri yapan bir program yazın:

  • 25’in karekökü
  • 3.2 sayısını aşağı yuvarlama
  • 6.8 sayısını yukarı yuvarlama
  • 2 üzeri 5
  • Pi sayısını yazdırma

İpucu: import math komutunu unutmayın.


Cevaplar

Alıştırma 1

a = 17
b = 3.14
c = -5
d = 2 + 3j
e = 0.0

print(type(a))  # <class 'int'>
print(type(b))  # <class 'float'>
print(type(c))  # <class 'int'>
print(type(d))  # <class 'complex'>
print(type(e))  # <class 'float'>

Alıştırma 2

a = float(input("Birinci sayı: "))  # örnek: 8.5
b = float(input("İkinci sayı: "))   # örnek: 2

print(f"Toplam: {a + b}")         # 10.5
print(f"Fark: {a - b}")           # 6.5
print(f"Çarpım: {a * b}")         # 17.0
print(f"Bölüm: {a / b}")          # 4.25

📝 Not: Çıktı, kullanıcının girişine bağlı olarak değişecektir.


Alıştırma 3

x = 5
y = 3.8

x_float = float(x)
y_int = int(y)
z_complex = complex(x)

print(x_float)       # 5.0
print(type(x_float)) # <class 'float'>

print(y_int)         # 3
print(type(y_int))   # <class 'int'>

print(z_complex)     # (5+0j)
print(type(z_complex))  # <class 'complex'>

Alıştırma 4

z1 = 4 + 2j
z2 = 1 - 5j

z_sum = z1 + z2
z_product = z1 * z2

print(f"Toplam: {z_sum}")         # (5-3j)
print(f"Çarpım: {z_product}")     # (14-18j)

Alıştırma 5

import math

print(math.sqrt(25))     # 5.0
print(math.floor(3.2))   # 3
print(math.ceil(6.8))    # 7
print(math.pow(2, 5))    # 32.0
print(math.pi)           # 3.141592653589793

Artık Python’daki temel sayı türleriyle çalışmaya başlayabilirsiniz 👏

Proje Yöneticileri için Python #1

Yakın zamanda “Yeni Başlayanlar için Python” adlı bir kursa kaydoldum, ancak bu eğitime farklı bir bakış açısıyla yaklaşıyorum. Yazılım geliştirici olmak için değil, bir proje yöneticisi olarak kod yazmayı öğrenmek istiyorum.

Blog sayfam üzerinden ise öğrendiklerimi paylaşacağım — yalnızca ilerlememi belgelemek için değil, aynı zamanda öğrendiklerimi pekiştirmek ve üzerine düşünmek için.

Aynı zamanda amacım, proje yöneticisi rolümde kodlamayı bir araç olarak kullanmak — görevleri otomatikleştirmek, verileri analiz etmek ve yönettiğim sistemleri daha iyi anlamak.

Birinci derste şunları ele alacağız:

  • Python’un neden bu kadar popüler ve çok yönlü bir dil olduğu
  • Kodlama ortamınızın nasıl kurulacağı (Google Colab dahil)
  • İlk Python betiğinizin (script) nasıl çalıştırılacağı

Neden Python Öğrenmelisiniz?

Python, programlama dünyasının İsviçre çakısı gibidir. Milyonlarca insanın onu sevmesinin nedenleri:

  • Basit ve okunması kolay — Söz dizimi İngilizce’ye benzer.
  • Çok yönlü olması — Web geliştirme, veri bilimi, otomasyon, yapay zeka, finans, oyun geliştirme ve daha fazlasında kullanılır.
  • Büyük bir topluluk — Bol miktarda öğretici, kütüphane ve topluluk desteği vardır.
  • Harika iş fırsatları — Python, sürekli olarak en çok talep gören diller arasında yer alır.

Gerçek Hayattaki Kullanım Alanları

  • Veri Bilimi: Pandas, NumPy gibi kütüphanelerle veri analizi
  • Web Geliştirme: Flask, Django ile uygulama oluşturma
  • Finans: Risk modelleme, otomasyon, işlem botları
  • Otomasyon: Sıkıcı işleri sizin yerinize yapan betikler yazmak
  • Yapay Zeka & Makine Öğrenmesi: TensorFlow, PyTorch ile model eğitmek
  • Eğitim: Çocuklara kodlamayı öğretmek

Python Ortamınızı Kurmak

Python kodu yazmanın ve çalıştırmanın üç yaygın yolu vardır. Bunlardan sadece birine ihtiyacınız var ve biz yeni başlayanlar için Google Colab’ı öneriyoruz.

Google Colab (Yeni Başlayanlar için Önerilen)

  • Kurulum gerekmez
  • Tarayıcınızda çalışır
  • Kod yazmak, test etmek ve başkalarıyla paylaşmak için idealdir

Şuraya gidin: https://colab.research.google.com

“New Notebook”a tıklayın ve kodlamaya hazırsınız!


İlk Python Betiğinizi Çalıştırmak

İlk Python satırınızı yazalım ve çalıştıralım!

Google Colab kullanıyorsanız, aşağıdaki satırı bir hücreye yapıştırın ve Shift + Enter tuşlarına basın:

print("Hello, Python world! 🚀")

Çıktı olarak şunu görmelisiniz:

Hello, Python world! 🚀

Tebrikler! İlk Python programınızı yazdınız 🎉


Uygulamalı Mini Alıştırma

Aşağıdaki satırları yeni Colab kod hücrelerine yazıp çalıştırın:

# Python'da matematik
print(5 + 3)

# Basit bir mesaj
print("Learning Python is fun!")

# Metinleri birleştirme
print("Hello" + " " + "World!")

Özet

Artık şunları yaptınız:

✅ Python’un neden güçlü bir araç olduğunu öğrendiniz

✅ Python kodlama ortamınızı (Google Colab) kurdunuz

✅ İlk Python betiğinizi yazıp çalıştırdınız

Harika bir başlangıç yaptınız, tebrikler! 🚀👏