Python'un Temelleri
Bu makale, Python'un temel kavramlarını açıklar.
YouTube Video
"Hello World!" Çalıştırma
1print("Hello World!")
Python'da Değişkenler
Python'da değişkenler, bir programda veri ve bilgiyi saklama ve kullanma amacıyla adlandırılmış depolama alanlarıdır. Değişkenler çeşitli veri türlerini tutabilir ve gerektiğinde yeniden atanabilir. Aşağıda, Python'daki değişkenlerin temel kullanımını göstermek için birkaç örnek kod sağlıyoruz.
1# 1. Assigning values to variables
2# Integer type variable
3age = 25
4print("Age:", age) # Output: Age: 25
5
6# Floating-point type variable
7height = 175.5
8print("Height:", height, "cm") # Output: Height: 175.5 cm
9
10# String type variable
11name = "John"
12print("Name:", name) # Output: Name: John
13
14# Boolean type variable
15is_student = True
16print("Are you a student?", is_student) # Output: Are you a student? True
17
18# 2. Assigning values to multiple variables simultaneously
19# You can assign multiple variables at once
20x, y, z = 5, 10, 15
21print("x =", x, ", y =", y, ", z =", z) # Output: x = 5 , y = 10 , z = 15
22
23# 3. Updating the value of a variable
24# The value of a variable can be updated by reassignment
25age = 26
26print("Updated age:", age) # Output: Updated age: 26
27
28# 4. Updating multiple variables at once
29# Example of swapping values between variables
30a, b = 1, 2
31a, b = b, a
32print("a =", a, ", b =", b) # Output: a = 2 , b = 1
33
34# 5. Type conversion
35# Type conversion allows operations between different types
36count = "5" # String "5"
37count = int(count) # Convert to integer type
38print("Handling count as an integer:", count * 2) # Output: Handling count as an integer: 10
39
40# Conversion to floating-point number
41pi_approx = "3.14"
42pi_approx = float(pi_approx)
43print("Approximation of pi:", pi_approx) # Output: Approximation of pi: 3.14
Görüldüğü gibi, Python'daki değişkenler esnek bir şekilde kullanılabilir. Değişkenler, türleri belirtilmeden kullanılabilir ve gerektiğinde yeniden atanabilir. Ayrıca, tür dönüşümü farklı veri türleri arasında geçiş yapmayı kolaylaştırır.
Python'daki Veri Türleri
Python'un birkaç temel veri türü vardır. Aşağıda, her biri için açıklamalar ve örnek kodlar sağlıyoruz.
Tam Sayı Türü
Tam sayı türü, ondalık nokta içermeyen tam sayıları işlemek için kullanılır.
1# Example of integer type
2x = 10
3print(x) # Output: 10
4print(type(x)) # Output: <class 'int'>
Ondalıklı Sayı Türü
Ondalıklı sayı türü, ondalık noktaya sahip sayıları işlemek için kullanılır.
1# Floating Point Number Example
2y = 3.14
3print(y) # Output: 3.14
4print(type(y)) # Output: float
Dize Türü
String türü, bir karakter dizisini temsil eder. Stringler, tek tırnak '
veya çift tırnak "
ile çevrilebilir.
1# Example of String
2s = "Hello, World!"
3print(s) # Output: Hello, World!
4print(type(s)) # Output: <class 'str'>
Boolean Türü
Boolean türü, iki değere sahiptir: true (True
) ve false (False
).
1# Example of Boolean
2b = True
3print(b) # Output: True
4print(type(b)) # Output: <class 'bool'>
Liste Türü
Liste türü, değiştirilebilir bir dizidir ve birden çok öğe depolayabilir. Öğeler farklı veri türlerinden olabilir.
1# Example of List
2lst = [1, 2, 3, "four", 5.0]
3print(lst) # Output: [1, 2, 3, 'four', 5.0]
4print(type(lst)) # Output: <class 'list'>
Demet (Tuple) Türü
Demet (Tuple), birden fazla öğe içerebilen bir dizidir ve oluşturulduktan sonra içerikleri değiştirilemez.
1# Example of Tuple
2tup = (1, "two", 3.0)
3print(tup) # Output: (1, 'two', 3.0)
4print(type(tup)) # Output: <class 'tuple'>
Sözlük (Dictionary) Türü
Sözlük türü, anahtar-değer çiftlerini depolayan bir koleksiyondur. Anahtarlar benzersiz olmalıdır.
1# Example of Dictionary
2dct = {"one": 1, "two": 2, "three": 3}
3print(dct) # Output: {'one': 1, 'two': 2, 'three': 3}
4print(type(dct)) # Output: <class 'dict'>
Küme (Set) Türü
Küme türü, benzersiz öğeler içeren bir koleksiyondur. Yinelenen değerler dahil edilemez.
1# Example of Set
2st = {1, 2, 2, 3}
3print(st) # Output: {1, 2, 3}
4print(type(st)) # Output: <class 'set'>
Bu veri türleri, Python'da veri işlemek için yaygın olarak kullanılan temel türlerdir. Onları uygun şekilde kullanarak programlarınızda çeşitli gereksinimleri karşılayabilirsiniz.
Python Genel Bakış
Python, 1991 yılında Guido van Rossum tarafından geliştirilmiş bir üst düzey programlama dilidir. Tasarım felsefesi 'basitlik,' 'açıklık,' ve 'okunabilirlik' üzerine odaklanır. Bu da sezgisel, yazması ve okuması kolay bir kod sağlar. Aşağıda Python'un ana özelliklerinin bir genel bakışı yer almaktadır.
-
Okunması kolay ve basit:
- Açık bir yapı ve doğal dile yakın ifadeler ile yeni başlayanların kolayca öğrenebileceği bir dildir.
- Bloklar girinti ile tanımlanır, bu da kodu otomatik olarak biçimlendirir ve okunabilirliği artırır.
-
Zengin Kütüphane ve Çerçeveler:
- Zengin bir standart kütüphaneye sahiptir ve birçok görevin kolayca gerçekleştirilmesini sağlar.
- Sayısal hesaplama (NumPy), veri analizi (Pandas), makine öğrenimi (scikit-learn, TensorFlow) ve web geliştirme (Django, Flask) gibi çeşitli alanlar için özel kütüphaneler ve çerçeveler mevcuttur.
-
Çok Yönlülük:
- Python hem bir betik dili olarak hem de tam özellikli uygulama geliştirme için uygundur. Web uygulamaları, masaüstü uygulamaları, bilimsel hesaplama, makine öğrenimi, veri analizi ve IoT gibi çeşitli uygulamalarda kullanılmaktadır.
-
Çapraz Platform:
- Platformdan bağımsızdır ve Windows, macOS ve Linux dahil birçok işletim sisteminde çalıştırılabilir.
-
Açık Kaynak ve Topluluk:
- Python, aktif bir topluluk tarafından desteklenen açık kaynaklı bir projedir. Bu nedenle sık güncellemeler, kütüphane geliştirme ve destek sağlanır.
-
Dinamik Tür Belirleme ve Otomatik Bellek Yönetimi:
- Dinamik tür belirleme, değişken türlerini belirtme ihtiyacını ortadan kaldırır ve daha hızlı geliştirme sağlar.
- Çöp toplama, otomatik bellek yönetimi sağlar ve bellek yönetimini basitleştirir.
Bu özellikleriyle Python, eğitim, endüstri ve akademi dahil olmak üzere çeşitli alanlarda yaygın olarak kullanılmaktadır.
Python'da Kaçış Karakterleri
Python'da kaçış karakterleri, dizelerde belirli kontrol karakterlerini veya özel anlamı olan karakterleri içermek için kullanılır. Kaçış karakterleri, normal dizelere belirli anlamlar eklemek için kullanılan özel sembollerdir. Python'da kaçış karakterlerine yakından bakalım.
Kaçış Karakterlerinin Temelleri
Python'da kaçış karakterleri ters eğik çizgi (\
) kullanılarak tanımlanır. Kaçış karakterleri, normal bir dize içinde belirli bir davranışı belirtir. Örneğin, \n
bir yeni satırı temsil ederken, \t
bir sekme boşluğunu temsil eder.
Kaçış karakterleri içeren bir dizeyi şu şekilde tanımlayabilirsiniz:.
1# Example of escape characters
2print("Hello\nWorld") # A newline is inserted after "Hello"
3
4# Output:
5# Hello
6# World
Ana Kaçış Karakterlerinin Listesi
Python'da kullanılan ana kaçış karakterleri şunlardır:.
\\
: Ters eğik çizginin kendisini temsil eder.\'
: Bir dizede tek tırnak içerir.\"
: Bir dizede çift tırnak içerir.\n
: Yeni satır\t
: Sekme\r
: Satır başı\b
: Geri silme\f
: Sayfa sonu\a
: Uyarı sesi (çan)\v
: Dikey sekme\N{name}
: Unicode veritabanındaki adıyla karakter\uXXXX
: 16-bit Unicode karakteri (4 onaltılık rakamla belirtilir)\UXXXXXXXX
: 32-bit Unicode karakteri (8 onaltılık rakamla belirtilir)\xXX
: Onaltılı düzende belirtilen karakter
Yaygın Kullanılan Kaçış Karakteri Örnekleri
Kaçış karakterlerini nasıl kullanacağınıza dair bazı özel örnekler burada.
Çift Tırnak ve Tek Tırnak İşaretleri
Bir dizi içinde çift tırnak veya tek tırnak işaretlerini dahil etmek için kaçış karakterlerini kullanın.
1# String containing double quotes
2quote = "He said, \"Python is amazing!\""
3print(quote)
4
5# String containing single quotes
6single_quote = 'It\'s a beautiful day!'
7print(single_quote)
8
9# Output:
10# He said, "Python is amazing!"
11# It's a beautiful day!
Yeni Satırlar ve Sekmeler
Yeni satırlar ve sekmeler genellikle metin biçimlendirmek için kullanılır.
1# Example using newline
2multiline_text = "First line\nSecond line"
3print(multiline_text)
4
5# Example using tab
6tabbed_text = "Column1\tColumn2\tColumn3"
7print(tabbed_text)
8
9# Output:
10# First line
11# Second line
12# Column1 Column2 Column3
Unicode Kaçış Karakterleri
Python'da, Unicode karakterleri \u
veya \U
kullanılarak temsil edilir. Bu, özellikle İngilizce dışındaki karakterlerle çalışırken kullanışlıdır.
1# Example of Unicode escape
2japanese_text = "\u3053\u3093\u306B\u3061\u306F" # Hello in Japanese
3print(japanese_text)
4# Output:
5# こんにちは(Hello in Japanese)
Özel Kaçış Karakterleriyle İlgili Uyarılar
Kaçış karakterlerini kullanırken dikkat edilmesi gereken birkaç nokta vardır.
- Ham string: Eğer ters eğik çizgi () içeren bir dizeyi olduğu gibi göstermek istiyorsanız, dizenin başına
r
ekleyin.
1raw_string = r"C:\Users\name\Documents"
2print(raw_string)
3# Output:
4# C:\Users\name\Documents
Ham dizilerde, ters eğik çizgi bir kaçış karakteri olarak yorumlanmaz ve olduğu gibi çıktı verir.
- Unicode Kullanımı: Unicode kaçış karakterlerini kullanırken, belirtilen onaltılık kodların doğru olduğundan emin olun. Yanlış tanımlamalar hatalı karakter görüntüsüne neden olur.
Ters Eğik Çizgi Kaçışı
Bir dizi içinde ters eğik çizginin kendisini dahil etmek için çift ters eğik çizgi kullanın.
1# Example containing backslash
2path = "C:\\Program Files\\Python"
3print(path)
4# Output:
5# C:\Program Files\Python
İleri Seviye Örnek: Karmaşık Dizi Biçimlendirme
Kaçış karakterlerini birleştirerek karmaşık diziler biçimlendirmek de mümkündür.
1# Example of formatting a message
2message = "Dear User,\n\n\tThank you for your inquiry.\n\tWe will get back to you shortly.\n\nBest Regards,\nCustomer Support"
3print(message)
4# Output:
5# Dear User,
6#
7# Thank you for your inquiry.
8# We will get back to you shortly.
9#
10# Best Regards,
11# Customer Support
Özet
Python'un kaçış karakterleri, diziler içinde belirli kontrol karakterlerini veya özel karakterleri dahil etmek için güçlü bir araçtır. Bunların nasıl kullanılacağını anlamak ve gerektiği şekilde uygun bir şekilde uygulamak, daha esnek dizi işlemeye olanak tanır.
Python Sürümleri
Başlıca Python sürümlerini ve özelliklerini kısaca gözden geçirelim.
- Python 1.0 (1994)
1# Sample code that works in Python 1.0
2def greet(name):
3 print "Hello, " + name # print was a statement
4
5greet("World")
İlk resmi sürüm. Python’un temel sözdizimi ve standart kütüphanesi oluşturuldu.
- Python 2.0 (2000)
1# Sample code that works in Python 2.0
2
3# List comprehension
4squares = [x * x for x in range(5)]
5print squares
6
7# Unicode string (u"...")
8greet = u"Hello"
9print greet
Liste kavramaları, tam çöp toplama ve Unicode desteğinin başlangıcı gibi önemli özellikler eklendi. Python 2 uzun süre kullanıldı ancak 2020'de desteği sona erdi.
- Python 3.0 (2008)
1# Sample code that works in Python 3.0
2
3# print is now a function
4print("Hello, world!")
5
6# Unicode text is handled natively
7message = "Hello"
8print(message)
Büyük bir güncelleme, geriye dönük uyumluluk olmadan. print
bir fonksiyon haline getirildi, Unicode
varsayılan dize türü haline geldi ve tamsayılar birleştirildi, bu da Python’un tutarlılığını ve kullanılabilirliğini büyük ölçüde artırdı. Python 3, şu anki ana akım sürümdür.
- Python 3.5 (2015)
1# Sample code that works in Python 3.5
2import asyncio
3
4async def say_hello():
5 await asyncio.sleep(1)
6 print("Hello, async world!")
7
8asyncio.run(say_hello())
async
/await
söz dizimi tanıtıldı, bu sayede asenkron programlama yazması daha basit hale geldi.
- Python 3.6 (2016)
1# Sample code that works in Python 3.6
2
3name = "Alice"
4age = 30
5print(f"{name} is {age} years old.") # f-string makes formatting simple
String biçimlendirmeyi daha kullanışlı hale getiren Biçimlendirilmiş String Literalleri (f-strings) eklendi. Ek olarak, tür ipuçları genişletildi.
- Python 3.7 (2018)
1# Sample code that works in Python 3.7
2
3from dataclasses import dataclass
4
5@dataclass
6class Person:
7 name: str
8 age: int
9
10p = Person("Bob", 25)
11print(p)
Veri sınıfları (Dataclasses) tanıtıldı, bu sayede yapı benzeri sınıflar tanımlamak daha kolay hale geldi. async
/await
desteği de geliştirildi.
- Python 3.8 (2019)
1# Sample code that works in Python 3.8
2
3# Assignment inside an expression
4if (n := len("hello")) > 3:
5 print(f"Length is {n}")
Atama ifadelerinin kullanımına olanak tanıyan Walrus Operatörü (:=) eklendi. Sadece konumsal parametreler
tanıtıldı, bu sayede fonksiyon argümanlarında esneklik artırıldı.
- Python 3.9 (2020)
1# Sample code that works in Python 3.9
2
3a = {"x": 1}
4b = {"y": 2}
5c = a | b # merge two dicts
6print(c) # {'x': 1, 'y': 2}
Tür ipuçları geliştirildi ve listeler ile sözlükler için birleştirme operatörü (|
) eklendi. Standart kütüphane de yeniden düzenlendi.
- Python 3.10 (2021)
1# Sample code that works in Python 3.10
2
3def handle(value):
4 match value:
5 case 1:
6 return "One"
7 case 2:
8 return "Two"
9 case _:
10 return "Other"
11
12print(handle(2))
Daha güçlü koşullu ifadeler yazılmasını sağlayan Desen eşleme (Pattern Matching) eklendi. Hata mesajları iyileştirildi ve tür sistemi daha da güçlendirildi.
- Python 3.11 (2022)
1# Sample code that works in Python 3.11
2
3# Improved performance (up to 25% faster in general)
4# More informative error messages
5try:
6 eval("1/0")
7except ZeroDivisionError as e:
8 print(f"Caught an error: {e}")
Önceki sürümlere kıyasla daha hızlı çalışan **önemli performans iyileştirmeleri** yapıldı. Ayrıca, istisna işleme ve tür kontrolü konularında da iyileştirmeler yapıldı.
- Python 3.12 (2023)
1# Sample code that works in Python 3.12
2
3# Automatically shows exception chains with detailed traceback
4def f():
5 raise ValueError("Something went wrong")
6
7def g():
8 try:
9 f()
10 except Exception:
11 raise RuntimeError("Higher level error") # Automatically chained
12
13try:
14 g()
15except Exception as e:
16 import traceback
17 traceback.print_exception(type(e), e, e.__traceback__)
Hata mesajları daha da iyileştirildi ve performans artırıldı. Ek olarak, istisna zincirleme otomatik olarak görüntülenir, bu da daha ayrıntılı hata ayıklamayı sağlar. Yeni söz dizimi özellikleri ve standart kütüphaneye yapılan iyileştirmelerle geliştirici verimliliği artırıldı.
- Python 3.13 (2024)
1# Sample code that works in Python 3.13
2
3# Using the new 'except*' syntax for handling multiple exceptions in parallel
4import asyncio
5
6async def raise_errors():
7 raise ExceptionGroup("Multiple errors", [
8 ValueError("Invalid value"),
9 TypeError("Wrong type"),
10 ])
11
12async def main():
13 try:
14 await raise_errors()
15 except* ValueError as e:
16 print("Caught ValueError(s):", e.exceptions)
17 except* TypeError as e:
18 print("Caught TypeError(s):", e.exceptions)
19
20asyncio.run(main())
Python 3.13'te, ExceptionGroup
ve except*
sözdizimi daha da geliştirildi ve eşzamanlı işlemlerde birden fazla istisnanın paralel olarak yakalanmasına olanak tanıdı. Bu, paralel işlem veya asyncio
kullanan uygulamalarda hata ayıklamayı ve hata yönetimini daha sezgisel ve güçlü hale getirir. Ayrıca, tür ipuçlarındaki geliştirmeler ve standart kütüphanedeki güncellemeler, bakım kolaylığını ve ifade gücünü artırmıştır.
Python 3 sürümü sürekli olarak gelişmektedir; en son sürümler, performans iyileştirmeleri, tür sistemi geliştirmeleri ve yeni özellikler sunmaktadır.
Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.