Bu dersin sonunda
Run penceresi
Hacettepe Üniversitesi - Not Dökümü (örnek)
Toplam kredi: 9
Toplam ağırlıklı puan: 26.5
AGNO: 2.9444444444444446
<class 'int'> <class 'float'>
Bu dersin sonunda bu not dökümünü yazdıran programı kendiniz yazabileceksiniz.
Ders 1'in hedef programı
print("Hacettepe Üniversitesi - Not Dökümü (örnek)")
mat_credits = 4
fiz_credits = 3
tkd_credits = 2
mat_points = mat_credits * 2.50 # C1
fiz_points = fiz_credits * 3.00 # B2
tkd_points = tkd_credits * 3.75 # A2
total_credits = mat_credits + fiz_credits + tkd_credits
total_points = mat_points + fiz_points + tkd_points
print("Toplam kredi:", total_credits)
print("Toplam ağırlıklı puan:", total_points)
print("AGNO:", total_points / total_credits)
print(type(total_credits), type(total_points))
Kurulum kontrolü
Current File seçiliyken Run, açık dosyayı çalıştırır.
1 Current File
2 Run
3 Run penceresi
Run penceresi
Python sürümü: 3.14.8 Adınızı yazıp Enter'a basın: Fatih Teşekkürler Fatih, kurulumunuz tamam.
1A konuları
Bu yarının sonunda ilk programınızı yazacak, error message'ları okuyabileceksiniz.
1. CPU, memory, code ve dataCPU, RAM, disk, interpreter
2. Program, statement ve print()print(), argument, Run
3. Literal ve expression"Hacettepe", 7, 3.25, 7 + 3
4. Comment#, Ctrl+/
5. Error messagestraceback, NameError, SyntaxError
1. CPU, memory, code ve data
Bilgisayarın parçaları ve bir programın çalışması
Bilgisayarın dört parçası
Bilgisayarın dört parçası
Bilgisayarın dört parçası. Üstte soldan sağa Input kutusunda klavye, ortada CPU, sağda Output kutusunda ekran. Altta, şeklin odağı olarak açık mavi zeminli ve kalın çivit mavisi çerçeveli tek bir Memory (RAM); kesikli bir çizgi onu Code ve Data diye ikiye böler. Code bölümünde Python interpreter şeridi ve iki satır kod: 1 name = input("Adınız: "), 2 print("Merhaba", name); sağ üstte Önizleme etiketi. Data bölümünde lacivert name ismi "Mehmet" değerini gösteriyor; Mehmet (str, yeşil). CPU kutusunda: adımları sırayla, birer birer çalıştırır. Klavyede M, e, h, m, e, t ve Enter tuşları; ekranda Adınız: Mehmet ve Merhaba Mehmet. Oklar: klavyeden CPU'ya input(), CPU'dan ekrana print(), Code bölümünden CPU'ya instruction'lar, CPU ile Data arasında iki yönlü okur / yazar.
Input
klavye
M
e
h
m
e
t
Enter
CPU
adımları sırayla,
birer birer çalıştırır
Output
ekran
Adınız: Mehmet
Merhaba Mehmet
input()
print()
Memory (RAM)
Code
Önizleme
Python interpreter
1
name = input("Adınız: ")
2
print("Merhaba", name)
Data
name
"Mehmet"
instruction'lar
okur / yazar
Bilgisayarın dört parçası (2)
Bilgisayar bir kantin mutfağı gibi
Elle çizilmiş gibi basit, geniş bir resim: bir kantin mutfağının kesiti, soldan sağa okunuyor. Solda duvardaki sipariş penceresinden bir öğrencinin eli içeri bir sipariş kağıdı uzatıyor. Ortada şapkalı usta uzun bir tezgahın arkasında duruyor ve tezgahtaki tarif kartını gösteriyor; tezgahta domates, yumurta ve biber var. Ustanın konuşma balonunda "Tarif olmadan hiçbir şey yapmam." yazıyor. Arkada açık bir kapıdan kavanozlu bir depo rafı görünüyor. Sağda ikinci pencereden bir tabak dışarı çıkıyor ve dışarıdan bir el tabağı alıyor. Etiketler: ustanın yanında "usta: CPU", tezgahın önünde "tezgah: memory".
Tarif olmadan hiçbir şey yapmam.
usta: CPU
tezgah: memory
Bilgisayar bir kantin mutfağı gibidir: sipariş gelir, usta tezgahta çalışır, tabak çıkar.
CPU ve instruction (komut)
CPU instruction'ları sırayla çalıştırır
Solda çivit mavisi çerçeveli CPU bloğu, altında: kendi başına bir şey yapmaz. Sağda instruction'lar başlığı altında numaralı dört satır: 1 memory'den 4'ü oku, 2 memory'den 3'ü oku, 3 ikisini topla, 4 sonucu, 7'yi, memory'ye yaz. 4, 3 ve 7 (int, turuncu). CPU'dan instruction sütununa giden ok: sırayla. 1 ve 2 numaralı satırlar bitti ve gri; 3 numaralı ikisini topla satırı açık mavi, çivit mavisi çerçeveli; CPU'dan ona ikinci bir ok gider: şu an. Alt satır: CPU instruction'ları sırayla, birer birer çalıştırır.
CPU
kendi başına
bir şey yapmaz
instruction'lar
1
memory'den 4 'ü oku
2
memory'den 3 'ü oku
3
ikisini topla
4
sonucu, 7 'yi, memory'ye yaz
sırayla
şu an
CPU instruction'ları sırayla, birer birer çalıştırır.
CPU, instruction denen küçük adımları sırayla, birer birer çalıştırır.
Memory (bellek)
Disk ve memory
Disk ve memory. Altta Disk (SSD) bloğunda iki dosya: hello.py ve Python interpreter'ının kendisi olan python. Üstte Memory (RAM) bloğu kesikli bir çizgiyle Code ve Data diye ikiye bölünmüş. İki Run oku diskten memory'ye çıkar: python'dan Code bölümündeki Python interpreter şeridine, hello.py'den iki satır koda: name = input("Adınız: ") ve print("Merhaba", name); run durumunda bu iki Run okunun arkasında çivit mavisi çerçeveli açık mavi şeritler var. Data bölümünde lacivert name ismi "Mehmet" değerini gösteriyor; bu değer str olduğu için kutusu yeşil; diskte yok, yalnızca memory'de. Alt satır: Program bitince memory boşalır; dosyalar diskte kalır. Ders 1'de iki durum daha var. memory durumu: Memory bloğu açık mavi, çivit mavisi çerçeveli; Disk bloğu, dosyaları ve Run okları gri; alt satır: Memory şu an çalışan programı ve değerlerini tutar. disk durumu: Disk bloğu açık mavi, çivit mavisi çerçeveli, iki dosyası düz; Memory bölümünün içeriği ve Run okları gri; alt satır: Disk dosyaları tutar; bilgisayar kapanınca da silinmez. Ders 5'te aynı şekil iki durumla kullanılır ve Ders 1 parçaları gri olur. read durumu: diskteki transcript.txt dosyasından (satırlar MAT123;4;C1, FIZ127;3;B2 ve devamını gösteren üç nokta; dosyadaki satırlar str olduğu için yeşil) for line in f oku Data bölümüne çıkar; latest_grade ismi kahverengi kutudaki {'MAT123': 'C1', ve devamı} değerini (dict) gösterir; bu kutu çivit mavisi çerçeveli açık mavi bir şeridin içinde, çünkü bu durumda yeni gelen o; alt satır: transcript.txt diskte kalır; okunan satırlar memory'de data olur. write durumu: transcript.txt kısmı da gri; gpa ismi hardal sarısı kutudaki 3.0833333333333335 değerini (float) gösterir, Data bölümünden report.write(...) oku diskteki açık mavi report.txt dosyasına iner (yeşil str satırlar MAT123 4 C1 True, üç nokta, AGNO: 3.08); alt satır: report.txt program bitince de diskte kalır; gpa gibi variable'lar silinir.
Memory
RAM
Code
Python interpreter
Data
Disk
SSD
name = input("Adınız: ")
print("Merhaba", name)
name
"Mehmet"
hello.py
python
Run
transcript.txt
MAT123;4;C1
FIZ127;3;B2
latest_grade
{'MAT123': 'C1',
}
for line in f
report.txt
MAT123 4 C1 True
AGNO: 3.08
gpa
3.0833333333333335
report.write(...)
Program bitince memory boşalır; dosyalar diskte kalır.
Memory şu an çalışan programı ve değerlerini tutar.
Disk dosyaları tutar; bilgisayar kapanınca da silinmez.
transcript.txt diskte kalır; okunan satırlar memory'de data olur.
report.txt program bitince de diskte kalır; gpa gibi variable'lar silinir.
Memory (2)
Program bitince memory boşalır
İki panel yan yana. Solda Program çalışırken: çivit mavisi çerçeveli Memory (RAM) bloğu kesikli bir çizgiyle Code ve Data diye ikiye bölünmüş. Code bölmesinde Python interpreter şeridi ve iki satır kod: name = input("Adınız: ") ve print("Merhaba", name). Data bölmesinde lacivert name ismi "Mehmet" değerini gösteriyor; Mehmet (str, yeşil), çevresinde çivit mavisi çerçeveli açık mavi bir şerit var. Ortada program biter yazan bir ok sağ panele gider. Sağda Program bitince: aynı Memory (RAM) bloğu, Code ve Data bölmeleri boş; eski içeriğin yerinde gri kesikli çerçeveler ve boş yazısı. Alt satır: Memory geçicidir: program bitince içindekiler silinir.
Program çalışırken
Program bitince
Memory (RAM)
Code
Data
Python interpreter
name = input("Adınız: ")
print("Merhaba", name)
name
"Mehmet"
Memory (RAM)
Code
Data
boş
boş
program
biter
Memory geçicidir: program bitince içindekiler silinir.
Program bitince ya da elektrik gidince memory boşalır.
Memory (3)
Tezgah memory gibi
Elle çizilmiş gibi basit, geniş bir resim: bir kantin mutfağının kesiti, soldan sağa okunuyor. Solda duvardaki sipariş penceresinden bir öğrencinin eli içeri bir sipariş kağıdı uzatıyor. Ortada şapkalı usta uzun bir tezgahın arkasında duruyor ve tezgahtaki tarif kartını gösteriyor; tezgahta domates, yumurta ve biber var. Ustanın konuşma balonunda "Tarif olmadan hiçbir şey yapmam." yazıyor. Arkada açık bir kapıdan kavanozlu bir depo rafı görünüyor. Sağda ikinci pencereden bir tabak dışarı çıkıyor ve dışarıdan bir el tabağı alıyor. Etiketler: ustanın yanında "usta: CPU", tezgahın önünde "tezgah: memory". Tezgah kırmızı bir halkayla çevrelenmiş.
Tarif olmadan hiçbir şey yapmam.
usta: CPU
tezgah: memory
Memory mutfağın tezgahıdır: o an yapılan iş orada durur, kapanışta silinir.
Memory ve disk
Disk ve memory
Disk ve memory. Altta Disk (SSD) bloğunda iki dosya: hello.py ve Python interpreter'ının kendisi olan python. Üstte Memory (RAM) bloğu kesikli bir çizgiyle Code ve Data diye ikiye bölünmüş. İki Run oku diskten memory'ye çıkar: python'dan Code bölümündeki Python interpreter şeridine, hello.py'den iki satır koda: name = input("Adınız: ") ve print("Merhaba", name); run durumunda bu iki Run okunun arkasında çivit mavisi çerçeveli açık mavi şeritler var. Data bölümünde lacivert name ismi "Mehmet" değerini gösteriyor; bu değer str olduğu için kutusu yeşil; diskte yok, yalnızca memory'de. Alt satır: Program bitince memory boşalır; dosyalar diskte kalır. Ders 1'de iki durum daha var. memory durumu: Memory bloğu açık mavi, çivit mavisi çerçeveli; Disk bloğu, dosyaları ve Run okları gri; alt satır: Memory şu an çalışan programı ve değerlerini tutar. disk durumu: Disk bloğu açık mavi, çivit mavisi çerçeveli, iki dosyası düz; Memory bölümünün içeriği ve Run okları gri; alt satır: Disk dosyaları tutar; bilgisayar kapanınca da silinmez. Ders 5'te aynı şekil iki durumla kullanılır ve Ders 1 parçaları gri olur. read durumu: diskteki transcript.txt dosyasından (satırlar MAT123;4;C1, FIZ127;3;B2 ve devamını gösteren üç nokta; dosyadaki satırlar str olduğu için yeşil) for line in f oku Data bölümüne çıkar; latest_grade ismi kahverengi kutudaki {'MAT123': 'C1', ve devamı} değerini (dict) gösterir; bu kutu çivit mavisi çerçeveli açık mavi bir şeridin içinde, çünkü bu durumda yeni gelen o; alt satır: transcript.txt diskte kalır; okunan satırlar memory'de data olur. write durumu: transcript.txt kısmı da gri; gpa ismi hardal sarısı kutudaki 3.0833333333333335 değerini (float) gösterir, Data bölümünden report.write(...) oku diskteki açık mavi report.txt dosyasına iner (yeşil str satırlar MAT123 4 C1 True, üç nokta, AGNO: 3.08); alt satır: report.txt program bitince de diskte kalır; gpa gibi variable'lar silinir.
Memory
RAM
Code
Python interpreter
Data
Disk
SSD
name = input("Adınız: ")
print("Merhaba", name)
name
"Mehmet"
hello.py
python
Run
transcript.txt
MAT123;4;C1
FIZ127;3;B2
latest_grade
{'MAT123': 'C1',
}
for line in f
report.txt
MAT123 4 C1 True
AGNO: 3.08
gpa
3.0833333333333335
report.write(...)
Program bitince memory boşalır; dosyalar diskte kalır.
Memory şu an çalışan programı ve değerlerini tutar.
Disk dosyaları tutar; bilgisayar kapanınca da silinmez.
transcript.txt diskte kalır; okunan satırlar memory'de data olur.
report.txt program bitince de diskte kalır; gpa gibi variable'lar silinir.
Memory ve disk (2)
Elektrik gidince memory boşalır
Elle çizilmiş gibi basit bir resim. Gece, tavandaki lamba sönük. Solda şaşkın bir öğrenci elleri yanaklarında duruyor; konuşma balonunda "Ödevim gitti." yazıyor. Masadaki dizüstü bilgisayarın ekranı simsiyah. Bilgisayarın üstünde boş bir düşünce bulutu var; yanında "memory: boş" yazıyor. Masanın altındaki açık çekmecede düzgün bir kağıt duruyor; yanında "disk: kaydedilen dosya duruyor" yazıyor.
memory: boş
Ödevim gitti.
disk: kaydedilen dosya duruyor
Kaydetmeden elektrik giderse ödev gider: o yazı diskte değil, memory'deydi.
Code (kod) ve data (veri)
Code ve data aynı memory'de
Büyütülmüş tek bir çivit mavisi çerçeveli Memory (RAM) bloğu, kesikli bir çizgiyle ikiye bölünmüş. Solda Code bölmesi: Python interpreter şeridi ve numaralı iki satır kod, 1 name = input("Adınız: "), 2 print("Merhaba", name);; satırların sağında yapılacak işler yazan bir köşeli ayraç. Sağda Data bölmesi: lacivert name ismi "Mehmet" değerini gösteriyor, Mehmet (str, yeşil); yanında üzerinde çalışılan değer yazan bir köşeli ayraç. data-focus panes durumunda iki bölmenin zemini açık gri mavi; alt satır: Code: .py dosyanızın satırları. Data: o satırların kullandığı değerler. data-focus same durumunda zeminler düz, ayırıcının üstünde çivit mavisi çerçeveli açık mavi bir kutu: aynı memory; alt satır: Code da data da aynı memory'de durur.
Memory (RAM)
Code
Önizleme
Python interpreter
1
name = input("Adınız: ")
2
print("Merhaba", name)
yapılacak
işler
Data
name
"Mehmet"
üzerinde
çalışılan
değer
aynı memory
Code: .py dosyanızın satırları. Data: o satırların kullandığı değerler.
Code da data da aynı memory'de durur.
Code, programın satırlarıdır; data, bu satırların üzerinde çalıştığı şeylerdir.
Code ve data (2)
Code ve data aynı memory'de
Büyütülmüş tek bir çivit mavisi çerçeveli Memory (RAM) bloğu, kesikli bir çizgiyle ikiye bölünmüş. Solda Code bölmesi: Python interpreter şeridi ve numaralı iki satır kod, 1 name = input("Adınız: "), 2 print("Merhaba", name);; satırların sağında yapılacak işler yazan bir köşeli ayraç. Sağda Data bölmesi: lacivert name ismi "Mehmet" değerini gösteriyor, Mehmet (str, yeşil); yanında üzerinde çalışılan değer yazan bir köşeli ayraç. data-focus panes durumunda iki bölmenin zemini açık gri mavi; alt satır: Code: .py dosyanızın satırları. Data: o satırların kullandığı değerler. data-focus same durumunda zeminler düz, ayırıcının üstünde çivit mavisi çerçeveli açık mavi bir kutu: aynı memory; alt satır: Code da data da aynı memory'de durur.
Memory (RAM)
Code
Önizleme
Python interpreter
1
name = input("Adınız: ")
2
print("Merhaba", name)
yapılacak
işler
Data
name
"Mehmet"
üzerinde
çalışılan
değer
aynı memory
Code: .py dosyanızın satırları. Data: o satırların kullandığı değerler.
Code da data da aynı memory'de durur.
İkisi aynı memory'de durur. Bu fikre stored-program denir.
Code ve data (3)
Tarif code, malzeme data
Elle çizilmiş gibi basit bir resim: kantin tezgahının yakından görünüşü, ortasından kesik bir çizgiyle ikiye ayrılmış. Sol yarının üstünde "code" yazıyor; orada başlığı "Menemen tarifi" olan bir tarif kartı var, üzerinde 1, 2 ve 3 numaralı üç karalama satırı. Sağ yarının üstünde "data" yazıyor; orada iki domates, bir sivri biber ve iki yumurta duruyor.
code
data
Menemen tarifi
1. 2. 3.
Menemen tarifi code'dur; domates, biber ve yumurta data'dır. İkisi de aynı tezgahtadır.
Input (girdi) ve output (çıktı)
input() ve print()
Soldan sağa üç blok. Solda Input bloğu, altında klavye: M, e, h, m, e, t ve Enter tuşları. Ortada Data bloğu: lacivert name ismi "Mehmet" değerini gösteriyor; Mehmet (str, yeşil). Sağda Output bloğu, altında ekran: Adınız: Mehmet ve Merhaba Mehmet satırları. Klavyeden Data'ya giden okun üstünde input(), Data'dan ekrana giden okun üstünde print() yazıyor. En üstte iki kod satırı: name = input("Adınız: ") ve print("Merhaba", name). Alt satır: input() klavyeden memory'ye, print() memory'den ekrana.
name = input("Adınız: ")
print("Merhaba", name)
Input
klavye
M
e
h
m
e
t
Enter
Data
name
"Mehmet"
Output
ekran
Adınız: Mehmet
Merhaba Mehmet
input()
print()
input() klavyeden memory'ye, print() memory'den ekrana.
input() klavyeden memory'ye, print() memory'den ekrana.
Input ve output (3)
Sipariş input, tabak output gibi
Elle çizilmiş gibi basit, geniş bir resim: bir kantin mutfağının kesiti, soldan sağa okunuyor. Solda duvardaki sipariş penceresinden bir öğrencinin eli içeri bir sipariş kağıdı uzatıyor. Ortada şapkalı usta uzun bir tezgahın arkasında duruyor ve tezgahtaki tarif kartını gösteriyor; tezgahta domates, yumurta ve biber var. Ustanın konuşma balonunda "Tarif olmadan hiçbir şey yapmam." yazıyor. Arkada açık bir kapıdan kavanozlu bir depo rafı görünüyor. Sağda ikinci pencereden bir tabak dışarı çıkıyor ve dışarıdan bir el tabağı alıyor. Etiketler: sol pencerenin üstünde "sipariş: input", sağ pencerenin üstünde "tabak: output". İki pencere de kırmızı birer halkayla çevrelenmiş.
Tarif olmadan hiçbir şey yapmam.
sipariş: input
tabak: output
input() siparişi tezgaha getirir; print() hazır olanı müşteriye verir.
Interpreter (yorumlayıcı)
Interpreter satırları birer birer okur
Solda çivit mavisi çerçeveli Disk bloğunda hello.py dosyası. Run yazan bir ok Memory (RAM) bloğuna gider. Memory'de üstte Python interpreter şeridi, altında numaralı iki kod satırı: 1 name = input("Adınız: "), 2 print("Merhaba", name). Satırların solunda çivit mavisi küçük bir üçgen okuma işareti ve numaralı bir daire var. Interpreter şeridinden çıkan, instruction'lar yazan bir ok sağdaki CPU bloğuna iner. data-step 1 durumunda işaret ve 1 numaralı daire 1. satırda, bu satırın zemini açık mavi. data-step 2 durumunda işaret ve 2 numaralı daire 2. satırda, 2. satırın zemini açık mavi, 1. satırın yazısı gri. Alt satır: Python da memory'de çalışan bir programdır.
Disk
hello.py
Run
Memory (RAM)
Python interpreter
1
name = input("Adınız: ")
2
print("Merhaba", name)
Önizleme
1
2
CPU
instruction'lar
Python da memory'de çalışan bir programdır.
Interpreter, .py dosyanızı okuyup çalıştıran programdır.
Interpreter (2)
Interpreter satırları birer birer okur
Solda çivit mavisi çerçeveli Disk bloğunda hello.py dosyası. Run yazan bir ok Memory (RAM) bloğuna gider. Memory'de üstte Python interpreter şeridi, altında numaralı iki kod satırı: 1 name = input("Adınız: "), 2 print("Merhaba", name). Satırların solunda çivit mavisi küçük bir üçgen okuma işareti ve numaralı bir daire var. Interpreter şeridinden çıkan, instruction'lar yazan bir ok sağdaki CPU bloğuna iner. data-step 1 durumunda işaret ve 1 numaralı daire 1. satırda, bu satırın zemini açık mavi. data-step 2 durumunda işaret ve 2 numaralı daire 2. satırda, 2. satırın zemini açık mavi, 1. satırın yazısı gri. Alt satır: Python da memory'de çalışan bir programdır.
Disk
hello.py
Run
Memory (RAM)
Python interpreter
1
name = input("Adınız: ")
2
print("Merhaba", name)
Önizleme
1
2
CPU
instruction'lar
Python da memory'de çalışan bir programdır.
Interpreter, şimdilik, satırları birer birer okur ve CPU'ya yaptırır.
Interpreter (3)
Interpreter bir tercüman gibi
Elle çizilmiş gibi basit bir resim: düz bir fonun önünde, iki mikrofonlu bir basın toplantısı masası. Solda lacivert tişörtlü teknik direktör konuşuyor; balonunda print("Merhaba") kodu yazıyor. Sağda kulaklıklı, şapkalı tercüman sahaya doğru dönmüş; balonunda 0110 1001 yazıyor. Masa örtüsünde, tercümanın önündeki isim levhasında "interpreter" yazıyor.
interpreter
print("Merhaba")
0110 1001
Interpreter, yabancı teknik direktörün tercümanı gibidir: her cümleyi sırayla çevirip oyunculara iletir.
Diskteki .py dosyası
Run diskteki dosyayı değiştirmez
Önce ve sonra. Solda Run'dan önce başlığı altında hello.py dosya simgesi, içinde iki satır: name = input("Adınız: ") ve print("Merhaba", name). Sağda Run'dan sonra başlığı altında aynı hello.py simgesi ve aynı iki satır; satırların çevresi çivit mavisi çerçeveli açık mavi, altında petrol mavisi aynı iki satır yazısı. İki simge arasında Run, Mehmet yazılır diye etiketli bir ok. Sağ simgenin altında kırmızı yazılmış ve üstü çizilmiş Mehmet, yanında dosyada yok yazısı. Alt satır: Değerler memory'de oluşur; diskteki dosya aynı kalır.
Run'dan önce
Run'dan sonra
hello.py
name = input("Adınız: ")
print("Merhaba", name)
hello.py
name = input("Adınız: ")
print("Merhaba", name)
aynı iki satır
Run,
Mehmet yazılır
Mehmet
dosyada yok
Değerler memory'de oluşur; diskteki dosya aynı kalır.
Run, .py dosyasını değiştirmez; yazdığınız ad dosyaya eklenmez.
Python ve bu kurs
Python'un hikayesi, neden Python ve kursun düzeni
Ders programı
Ders programı: beş Salı ve beş Ödev
Beş sütunlu ders programı, soldan sağa. İlk sütunun üstünde Salı, 18.00, D4. Ders 1, 20 Ekim (bugün, açık mavi ve çivit mavisi çerçeveyle vurgulu): bilgisayar, print(), error messages, int (turuncu), float (hardal sarısı), variable; Ödev 1, 25 Ekim Pazar 23.59. Ders 2, 27 Ekim: str (yeşil), input(), f-string, index, slicing, bool (deniz yeşili), if / elif; Ödev 2, 1 Kasım Pazar 23.59. Ders 3, 3 Kasım: while, for, break, continue, try / except, assert; Ödev 3, 8 Kasım Pazar 23.59. Ders 4, 10 Kasım: import, def, return, scope, None (bej), class; Ödev 4, 15 Kasım Pazar 23.59. Ders 5, 17 Kasım: list (vişneçürüğü), tuple (mavi gri), aliasing, dict (kahverengi), set (zeytin yeşili), file; Ödev 5, 22 Kasım Pazar 23.59. Alt satır: Her Ödev, dersten sonraki Pazar 23.59'a kadar teslim edilir.
Salı, 18.00, D4
Ders 1
20 Ekim
bilgisayar
print()
error messages
int
float
variable
Ödev 1
25 Ekim Pazar
23.59
Ders 2
27 Ekim
str
input()
f-string
index, slicing
bool
if / elif
Ödev 2
1 Kasım Pazar
23.59
Ders 3
3 Kasım
while
for
break
continue
try / except
assert
Ödev 3
8 Kasım Pazar
23.59
Ders 4
10 Kasım
import
def
return
scope
None
class
Ödev 4
15 Kasım Pazar
23.59
Ders 5
17 Kasım
list
tuple
aliasing
dict
set
file
Ödev 5
22 Kasım Pazar
23.59
Her Ödev, dersten sonraki Pazar 23.59'a kadar teslim edilir.
Ödevler ve değerlendirme
Ödev teslimi: odev1.py, form, Pazar 23.59, geri bildirim
Yukarıdan aşağıya, oklarla bağlı dört adım, solda 1'den 4'e numaralı. 1: küçük bir file simgesi ve yanında odev1.py, TODO'lar dolu. 2: Google Form, altında isim, odev1.py. 3: Pazar 23.59, açık mavi ve çivit mavisi çerçeveyle vurgulu. 4: Geri bildirim e-postanıza.
odev1.py , TODO'lar dolu
Google Form
isim, odev1.py
Pazar 23.59
Geri bildirim e-postanıza
1
2
3
4
Sorular ve QR kod
QR ile cevap: soru slaydı ve telefondaki cevap sayfası
Solda küçültülmüş bir soru slaydı: başlık Python ne yazdırır?, kod print("A", "B"), iki metin yeşil (str), A-D şıklı dört seçenek: A A B, B AB, C A, D B ve bir QR kod çizimi; altında N cevap. QR koddan sağdaki telefona bir ok gidiyor, üstünde telefon kamerası. Telefonda cevap sayfası: A'dan D'ye dört büyük düğme; A düğmesi basılı, açık mavi ve çivit mavisi çerçeveli. Altında Cevabınız alındı. Kapanana kadar değiştirebilirsiniz. Ad alanı ve giriş yok. Bu kod Python 3.14'te A B yazdırır, yani A şıkkı.
Python ne yazdırır?
print("A" , "B" )
A
A B
B
AB
C
A
D
B
N cevap
A
B
C
D
Cevabınız alındı.
Kapanana kadar
değiştirebilirsiniz.
telefon kamerası
Sorular QR kod ile cevaplanır; ad ve giriş istenmez.
Derste çalışma düzeni
Kodları derste kendiniz yazarsınız; PyCharm'da AI ile tamamlama kapalıdır.
1 AI ile tamamlama kutusu boş
2. Program, statement ve print()
İlk program ve onu çalıştırmak
Yeni Python dosyası
python-kurs klasöründe New, Python File; dosyanın adı example.
1 python-kurs
2 New, Python File
3 example
print() ve argument (argüman)
print("Selam") satırının parçaları
print("Selam") satırı: 1 isim print, 2 iki parantez, 3 argument "Selam" (str, yeşil, açık mavi bantta); Run penceresinde tırnaksız Selam. Kod paneli ortada; 1 numaralı işaret print ismini, 2 numaralı işaret iki ayrı çizgiyle açılan ve kapanan parantezi, 3 numaralı işaret tırnak içindeki "Selam" argument'ını gösterir. Sağdaki ok Run penceresine gider; orada yalnızca Selam yazar, altında "tırnaklar yazılmaz" notu var.
print(
"Selam"
)
1
3
2
isim
argument
parantezler
Run penceresi
Selam
tırnaklar yazılmaz
print(), parantezin içindeki argument'ı ekrana yazar.
İlk hello, world programı (1973)
Görsel: Brian Kernighan, “Hello World Brian Kernighan 1978”, Wikimedia Commons, CC BY-SA 3.0. Boyutu küçültüldü.
İlk hello, world programı 1973'te B dili için yazıldı; Python'da tek satırdır.
Python'da
print("hello, world")
Çıktı
hello, world
print() (2)
print() ile iki argument
Solda iki satırlık kod: print("Selam") ve print("Hacettepe", "Üniversitesi"); iki str literal "Hacettepe" ve "Üniversitesi" yeşil. İkinci satırdaki virgül çivit mavisi bir halkayla işaretli; oradan çıkan ok sağdaki Run penceresine gider. Run penceresinde iki satır var: Selam ve Hacettepe Üniversitesi. İki kelimenin arasındaki tek boşluk açık mavi bir bantla vurgulu, okun ucu bu banttadır, yanında "bir boşluk" yazar. Sağdaki köşeli çizgi iki çıktı satırını kapsar: her print() bir satır.
print("Selam" )
print("Hacettepe" , "Üniversitesi" )
Selam
Hacettepe
Üniversitesi
bir boşluk
her print() bir satır
Virgülle ayrılan argument'lar arasına bir boşluk konur.
Program ve statement (cümle)
Statement sırası
Üç satırlık kod ve Run penceresindeki üç çıktı satırı, 1, 2 ve 3 numaralı oklarla eşleşiyor; metinler yeşil (str). Solda example.py: 1 print("Hacettepe"), 2 print("Üniversitesi"), 3 print("Ankara"); yanında aşağı doğru bir ok ve "yukarıdan aşağıya" yazısı. Sağda Run penceresi: Hacettepe, Üniversitesi, Ankara. Her kod satırının sonundaki numaralı daire, aynı numaralı çıktı satırına bir çizgiyle bağlı. Alt yazı: Her satır bir statement; Python onları sırayla çalıştırır.
example.py
Run penceresi
1
print("Hacettepe" )
Hacettepe
1
1
2
print("Üniversitesi" )
Üniversitesi
2
2
3
print("Ankara" )
Ankara
3
3
yukarıdan
aşağıya
Her satır bir statement; Python onları sırayla çalıştırır.
Program, sırayla çalışan statement'lardan oluşur.
Program ve statement (3)
Program durakları sırayla geçen bir dolmuş gibi
Elle çizilmiş gibi basit bir resim: yukarıdan aşağıya inen bir yol, bir kod dosyası gibi. Yolun sağında iki durak tabelası var: üstteki tabelada 1 print("Hacettepe"), alttakinde 2 print("Üniversitesi") yazıyor. Sarı bir dolmuş iki durağın arasında aşağı doğru iniyor; şoför camdan sarkıp el sallıyor. Balonunda "Sıradaki durak: 2. satır." yazıyor.
1 print("Hacettepe")
2 print("Üniversitesi")
Sıradaki durak: 2. satır.
Program, durakları sırayla geçen bir dolmuş gibidir: satırlar yukarıdan aşağıya tek tek çalışır.
Programı çalıştırmak
Run penceresinin ilk satırı, interpreter'ı dosyanızla başlatır.
1 interpreter'ın yolu 2 .py dosyanızın yolu
python, python3 ve sürüm
Python'u Windows'ta python, macOS'ta python3 komutu açar.
Windows macOS
python, pypython3
print ve SyntaxError
print ve parantezler
İki sütun. Solda kırmızı "Geçersiz" başlığı altında print "Selam"; print ile tırnak arasındaki boşluk kırmızı kesikli bir elipsle işaretli. Altında Python 3.14'ün son hata satırı kırmızı: SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)? Sağda petrol mavisi "Geçerli" başlığı altında print("Selam"); açılan ve kapanan parantezin arkasında açık mavi birer bant var. Altındaki çıktı panelinde Selam yazar. "Selam" str literal olarak yeşil.
Geçersiz
Geçerli
print "Selam"
SyntaxError: Missing parentheses
in call to 'print'.
Did you mean print(...)?
print
(
"Selam"
)
Selam
print'ten sonra parantez gerekir.
Python ne yazdırır?
print("A")
print("B", "C")
print("D")
A B C D
A
B C
D
A
BC
D
A
B
C
D
Her print() bir satır yazar; virgülle ayrılan argument'lar arasına bir boşluk konur.
3. Literal ve expression
Koda doğrudan yazılanlar ve Python'un hesapladıkları
Literal (sabite)
Üç çeşit literal
Hacettepe (yeşil), 7 ve 2026 (turuncu), 3.25 (hardal sarısı). Üç sütun. Birinci sütunda print("Hacettepe"); koddaki iki tırnak gri, "tırnaklar ekrana yazılmaz" notu okun yanında; ok yeşil Hacettepe kutusuna iner, altında "tırnak içinde metin". İkinci sütunda print(7) ve print(2026); oklar turuncu 7 ve 2026 kutularına iner, altında "noktasız sayı". Üçüncü sütunda print(3.25); ok hardal sarısı 3.25 kutusuna iner, altında "noktalı sayı".
print(" Hacettepe " )
tırnaklar ekrana
yazılmaz
Hacettepe
tırnak içinde metin
print(7 )
print(2026 )
7
2026
noktasız sayı
print(3.25 )
3.25
noktalı sayı
Literal, koda doğrudan yazılmış bir metin ya da sayıdır.
Expression (ifade)
Expression hesaplanır
10, 9 ve 6 (turuncu). Üç satır, her biri bir expression'ın hesaplanması: 7 + 3 kutusundan "Python hesaplar" yazan bir okla 10 kutusuna; 4 + 3 + 2 kutusundan 9 kutusuna; 10 - 4 kutusundan 6 kutusuna. Sayılar turuncu (int), + ve - işaretleri siyah. Ortadaki satırın sonucu 9, açık mavi bir bant içinde: üç sayı tek bir sonuca dönüşür. Alt yazı: Bir expression tek bir sonuca dönüşür.
7 + 3
Python hesaplar
10
4 + 3 + 2
Python hesaplar
9
10 - 4
Python hesaplar
6
Bir expression tek bir sonuca dönüşür.
Expression, Python'un hesaplayıp tek bir sonuca çevirdiği koddur.
987654321 ve 123456789
print(987654321 - 123456789)
print(987654321 + 123456789)
Çıktı
864197532
1111111110
Fark 864197532: her rakam bir kez
987654321 - 123456789 farkı 864197532. Üst sırada bu sayının dokuz rakamı dokuz hücrede, solda fark yazıyor: 8 6 4 1 9 7 5 3 2. Alt sırada aynı rakamlar sıralanmış: 1 2 3 4 5 6 7 8 9, solda sıralanınca yazıyor; bu sıra çivit mavisi çerçeveli açık mavi bir bantta. İnce çizgiler her üst rakamı alttaki aynı rakama bağlıyor: 1'den 9'a her rakam tam bir kez geçer.
fark
sıralanınca
8
6
4
1
9
7
5
3
2
1
2
3
4
5
6
7
8
9
Farkta 1'den 9'a kadar her rakam tam bir kez geçer.
print("7 + 3") ve print(7 + 3)
print("7 + 3") ve print(7 + 3)
Solda print("7 + 3"): tırnak içindeki "7 + 3" yeşil bir kutuda (yeşil, metin); ok olduğu gibi yazısıyla çıktıya iniyor ve çıktı 7 + 3. Sağda print(7 + 3): tırnaksız 7 + 3 bir kutuda, rakamları turuncu; hesaplanır yazılı ok 10 kutusuna gidiyor, 10 (turuncu, sayı) çivit mavisi çerçeveli açık mavi bir bantta; oradan çıktıya iniyor ve çıktı 10. Altta: Tek fark tırnaklar.
print("7 + 3" )
"7 + 3"
olduğu gibi
Çıktı
7 + 3
print(7 + 3 )
7 + 3
10
hesaplanır
Çıktı
10
Tek fark tırnaklar.
Tırnak içi olduğu gibi yazılır; tırnaksız expression hesaplanır.
Frege ve tırnak işareti (1892)
Fotoğraf: Bilinmeyen fotoğrafçı, “Young frege”, Wikimedia Commons, kamu malı.
Frege 1892'de yazdı: bir kelimenin kendisinden söz ederken onu tırnak içine alırız.
Metin ve expression yan yana
Metin ve expression yan yana
print("7 + 3 =", 7 + 3): ilk argument tırnak içinde (yeşil, metin) olduğu gibi gider; ikincisi 7 + 3 hesaplanır, 10 (turuncu, sayı). Run penceresinde 7 + 3 = 10; = ile 10 arasındaki tek boşluk çivit mavisi çerçeveli açık mavi bantla işaretli, altında virgülün koyduğu boşluk yazıyor.
print("7 + 3 =" , 7 + 3 )
hesaplanır
10
Run penceresi
7 + 3 =
10
olduğu gibi
virgülün koyduğu boşluk
Bir print() hem metin hem expression alabilir; aralarına bir boşluk konur.
Tek tırnak ve çift tırnak
print('Selam')
print("Selam")
print("Ankara'da")
Çıktı
Selam
Selam
Ankara'da
Tek tırnak da metin yazar; bu kursta çift tırnak kullanıyoruz.
Tek tırnak ve çift tırnak (2)
Tek tırnaklı metin erken biter
Üst satırda print("Ankara'da"): iki çift tırnağın her biri çivit mavisi çerçeveli açık mavi bir bantta; aradaki Ankara'da yeşil (metin), üstünde petrol mavisi yazıyla tek metin. Çıktı: Ankara'da. Alt satırda print('Ankara'da'): 'Ankara yeşil, üstünde metin yazıyor; kesme işareti olan ikinci tek tırnak kırmızı çerçeveli küçük bir kutuda, altında kırmızı yazıyla metin burada biter. Geriye kalan da') kırmızı kesikli çizgiyle üstü çizili. En altta kırmızı hata satırı: SyntaxError: unterminated string literal (detected at line 1).
tek metin
print(
"
Ankara'da
"
)
Çıktı
Ankara'da
metin
print(
'Ankara
'
da')
metin burada biter
SyntaxError: unterminated string literal (detected at line 1)
Ankara'da kesmesi, tek tırnaklı metni erken bitirir.
4. Comment
Koda insanlar için not yazmak
Comment (yorum)
Python bu kısmı okumaz
# University name
print("Hacettepe Üniversitesi" )
# transcript title
Python bu kısmı okumaz
Run penceresi
Hacettepe Üniversitesi
Python # işaretinden sonraki kısmı okumaz.
Comment (3)
ne yaptığını söyler
kod zaten bunu söylüyor
print(4 + 3 + 2 )
# adds 4, 3 and 2
neden yaptığını söyler
print(4 + 3 + 2 )
# credits of MAT123, FIZ127, TKD103
Çıktı
9
9
İki satır aynı şeyi yazar; ikinci comment bir şey öğretir.
İyi comment ne yapıldığını değil, neden yapıldığını söyler.
Comment (4)
önce
print("Selam" )
print("Hacettepe" )
Selam
Hacettepe
Ctrl+/ ile 2. satır comment oldu
print("Selam" )
#
print("Hacettepe")
Selam
yazılmadı
Başına # konan satır çalışmaz; çıktısı kaybolur.
Ctrl+/ (macOS'ta Cmd+/)
Comment (5)
print("Selam # dünya")
Çıktı
Selam # dünya
Tırnak içindeki # metnin parçasıdır.
Comment ve SyntaxError
University name
print("Hacettepe Üniversitesi")
Çıktı
File "…/python-kurs/example.py", line 1 University name ^^^^ SyntaxError: invalid syntax
# olmadan yazılan not kod sanılır; hiçbir satır çalışmaz.
5. Error messages
Python bir şeyi yapamayınca ne der
Error message (hata mesajı)
Traceback: bir error message'ın parçaları
Üstte Run penceresi: A, yanında petrol mavisi hatadan önce çalıştı. Altında gri bir panelde beş satırlık traceback: Traceback (most recent call last): / File "…/python-kurs/example.py", line 2, in <module> / prnt("B") / ^^^^ / kırmızı son satır NameError: name 'prnt' is not defined. Did you mean: 'print'? Okuma durumunda üç numaralı işaret görünür: 1 son satırda, hatanın adı ve açıklaması; son satır açık mavi, çivit mavisi çerçeveli bir şeritte. 2 line 2 üzerinde, düzeltilecek satır. 3 şapka işaretlerinde (^^^^), hatanın yeri.
Run penceresi
A
hatadan önce çalıştı
Traceback (most recent call last):
File "…/python-kurs/example.py", line 2, in <module>
prnt("B")
^^^^
NameError: name 'prnt' is not defined. Did you mean: 'print'?
1
hatanın adı ve açıklaması
2
düzeltilecek satır
3
hatanın yeri
Python bir satırı çalıştıramayınca error message yazar.
Traceback (yığın izi)
Traceback: bir error message'ın parçaları
Üstte Run penceresi: A, yanında petrol mavisi hatadan önce çalıştı. Altında gri bir panelde beş satırlık traceback: Traceback (most recent call last): / File "…/python-kurs/example.py", line 2, in <module> / prnt("B") / ^^^^ / kırmızı son satır NameError: name 'prnt' is not defined. Did you mean: 'print'? Okuma durumunda üç numaralı işaret görünür: 1 son satırda, hatanın adı ve açıklaması; son satır açık mavi, çivit mavisi çerçeveli bir şeritte. 2 line 2 üzerinde, düzeltilecek satır. 3 şapka işaretlerinde (^^^^), hatanın yeri.
Run penceresi
A
hatadan önce çalıştı
Traceback (most recent call last):
File "…/python-kurs/example.py", line 2, in <module>
prnt("B")
^^^^
NameError: name 'prnt' is not defined. Did you mean: 'print'?
1
hatanın adı ve açıklaması
2
düzeltilecek satır
3
hatanın yeri
Traceback son satırından okunur; sonra satır numarasına ve ^^^^ işaretlerine bakılır.
NameError
NameError: program o satırda durur
Solda üç satırlık kod: 1 print("A"), yanında petrol mavisi çalıştı ve Run penceresindeki A satırına bir ok; 2 prnt("B"), yanında kırmızı bir durma işareti ve kırmızı NameError burada; 3 print("C") gri, çalışmadı. String'ler yeşil (str). Sağda Run penceresi: A ve kırmızı NameError: name 'prnt' is not defined. Altta: NameError, satırı çalışınca bulunur.
1
2
3
print("A" )
prnt("B" )
print("C")
çalıştı
NameError burada
çalışmadı
Run penceresi
A
NameError: name 'prnt'
is not defined.
NameError, satırı çalışınca bulunur.
NameError, satırı çalışınca bulunur; önceki satırlar çoktan çalışmıştır.
NameError (3)
NameError, bilinmeyen sokağa sapan dolmuş gibi
Elle çizilmiş gibi basit bir resim. Yukarıdan aşağıya inen yolda üç durak var. Birinci durağın yanında yere bırakılmış bir kağıtta "Çıktı: A" yazıyor. İkinci durakta sağa dönen bir sokak tabelası var, tabelada prnt yazıyor ama orada sokak yok. Sarı dolmuş tabelanın önünde durmuş; şoför inmiş, omuz silkiyor. Balonunda "Böyle bir sokak yok." yazıyor. Üçüncü durak boş.
Çıktı: A
prnt
Böyle bir sokak yok.
NameError, bilinmeyen sokağa sapan dolmuş gibidir: önceki duraklarda inenler çoktan inmiştir.
NameError (4)
Kod Son satır
Print("Selam")NameError: name 'Print' is not defined. Did you mean: 'print'?
prınt("Selam")NameError: name 'prınt' is not defined. Did you mean: 'print'?
print(Merhaba)NameError: name 'Merhaba' is not defined
Python isimleri harfi harfine okur.
Syntax (söz dizimi) ve SyntaxError
SyntaxError: hiçbir satır çalışmaz
Solda üç satırlık kod, üçü de gri: 1 print("A"), 2 print("B), 3 print("C"); her birinin yanında çalışmadı, 2. satırda ayrıca kırmızı bir durma işareti. Üç satırı saran bir köşeli ayraç, açık mavi ve çivit mavisi çerçeveli bir kutuya bağlanır: önce bütün dosya denetlenir. Sağda Run penceresi boş: çıktı yok. Kod panelinin altında kırmızı SyntaxError: unterminated string literal (detected at line 2). En altta: Python dosyanın syntax'ını çalıştırmadan önce denetler.
1
2
3
print("A")
print("B)
print("C")
çalışmadı
çalışmadı
çalışmadı
önce bütün
dosya
denetlenir
Run penceresi
çıktı yok
SyntaxError: unterminated string literal (detected at line 2)
Python dosyanın syntax'ını çalıştırmadan önce denetler.
Python önce bütün dosyayı denetler; SyntaxError varsa hiçbir satır çalışmaz.
SyntaxError (2)
SyntaxError, muayeneden geçemeyen dolmuş gibi
Elle çizilmiş gibi basit bir resim. Yukarıdan aşağıya inen yolun başında bir muayene bariyeri kapalı. Sarı dolmuş bariyerin önünde duruyor; ön camına kırmızı bir "GEÇMEDİ" damgası basılmış. Bariyerin ötesindeki yol ve üç durak tabelası bomboş. Sağda elinde kontrol listesi olan muayene görevlisi, balonunda "2. satırda tırnak eksik." diyor. Sağ altta boş bir çıktı penceresi var; üstünde "Çıktı yok" yazıyor.
GEÇMEDİ
2. satırda tırnak eksik.
Çıktı yok
SyntaxError, muayeneden geçemeyen dolmuş gibidir: hiç yola çıkmaz, hiçbir durağa uğramaz.
SyntaxError (3)
Kod Son satır
print(“Selam”)SyntaxError: invalid character '“' (U+201C)
print("Selam"SyntaxError: '(' was never closed
print('Ankara'da')SyntaxError: unterminated string literal (detected at line 1)
Son satır neyin eksik ya da yanlış olduğunu söyler.
Error message'ı PyCharm'da okumak
Mavi bağlantı sizi hatalı satıra götürür.
1 son satır 2 mavi bağlantı 3 düzelt, yeniden Run
^^^ işaretleri ve PEP 657 (2022)
print("Merhaba", Dunya)
Çıktı
Traceback (most recent call last): File "…/python-kurs/example.py", line 1, in <module> print("Merhaba", Dunya) ^^^^^ NameError: name 'Dunya' is not defined
^^^ işaretleri Python 3.11 ile geldi; yazarlarından biri Batuhan Taşkaya.
Mark II'deki güve (1947)
Fotoğraf: U.S. Naval History and Heritage Command, NH 96566-KN (Courtesy of the Naval Surface Warfare Center, Dahlgren, VA, 1988), “First Computer Bug, 1947”, Wikimedia Commons, kamu malı. Boyutu küçültüldü.
Mark II'nin rölesinde bulunan güve, kayıt sayfasına bantlandı.
Hatayı bulup düzeltmeye debugging denir.
Python ne yazdırır?
print("A")
print("B")
prnt("C")
print("D")
A
B
C
D
AB, ardından NameError
Hiçbir şey, yalnızca NameError
ABD ve NameError
NameError 3. satır çalışınca bulunur; ilk iki satır çoktan yazılmıştır, 4. satır çalışmaz.
print() ile çizim
# A # inside quotes is text, so print() can draw.
print(" ### ### ")
print(" ##### ##### ")
print(" ########### ")
print(" ######### ")
print(" ####### ")
print(" ##### ")
print(" ### ")
print(" # ")
Çıktı
### ###
##### #####
###########
#########
#######
#####
###
#
Tırnak içindeki # bir yazıdır; print() satırlarıyla resim de çizilebilir.
10 dakika ara
1A Bilgisayar, Python, ilk program ve error messages
1B Value, type, int, float, aritmetik ve variable
Sırada 1B
Bu yarının sonunda
Run penceresi
Hacettepe Üniversitesi - Not Dökümü (örnek)
Toplam kredi: 9
Toplam ağırlıklı puan: 26.5
AGNO: 2.9444444444444446
<class 'int'> <class 'float'>
Bu yarının sonunda bu not dökümünü kendi kodunuzla yazdırabileceksiniz.
Python ne yazdırır?
print("Hacettepe")
print("Ankara"
Hacettepe
Hacettepe
Ankara
Hacettepe, ardından SyntaxError
Hiçbir şey, yalnızca SyntaxError
SyntaxError dosya çalışmadan önce bulunur; ilk satır da çalışmaz.
1B konuları
Bu yarının sonunda bu not dökümünü kendi kodunuzla yazdırabileceksiniz.
6. Value ve typevalue, type(), str
7. int ve float7, 3.5, 0.1 + 0.2
8. Arithmetic operators+ - * / // % **
9. Variable ve assignmentcredits = 4
6. Value ve type
Her value'nun bir çeşidi vardır
Value (değer)
Beş value
Bir sırada beş value kutusu: 7 (turuncu), 3.5 (hardal sarısı), "7" ve "Hacettepe" (yeşil), 2026 (turuncu); type etiketi yok. Kutuların altında: sayı, noktalı sayı, tırnak içinde, tırnak içinde, sayı. Aynı renkteki kutular aynı çeşitten.
7
sayı
3.5
noktalı sayı
"7"
tırnak içinde
"Hacettepe"
tırnak içinde
2026
sayı
Value, programın üzerinde çalıştığı tek bir data parçasıdır.
Value (2)
Value'lar memory'de
Memory (RAM) bloğu, çivit mavisi çerçeveli, kesikli çizgiyle ikiye ayrılmış. Solda Code: Python interpreter çubuğu ve kod satırı print(7, 3.5, "7", "Hacettepe", 2026), iki satıra bölünmüş. Sağda Data: beş value kutusu açık mavi, çivit mavisi çerçeveli bir şeridin içinde: 7 (int, turuncu), 3.5 (float, hardal sarısı), "7" ve "Hacettepe" (str, yeşil), 2026 (int, turuncu). Data kısmından aşağı, print() etiketli bir ok Çıktı paneline iniyor: 7 3.5 7 Hacettepe 2026.
Memory (RAM)
Code
Python interpreter
print(7 , 3.5 ,
"7" , "Hacettepe" , 2026 )
Data
7
3.5
"7"
"Hacettepe"
2026
print()
Çıktı
7 3.5 7 Hacettepe 2026
Program çalışırken value'lar memory'nin Data kısmında durur.
Type (tip)
Value ve type
Aynı beş value kutusu, altlarında type adlarıyla: 7 (int, turuncu), 3.5 (float, hardal sarısı), "7" ve "Hacettepe" (str, yeşil), 2026 (int, turuncu). Sıranın üstünde bir köşeli çizgi 7 ile 2026'yı, altında bir köşeli çizgi iki str kutusunu birleştiriyor; ikisinin yanında da aynı type yazıyor.
7
int
3.5
float
"7"
str
"Hacettepe"
str
2026
int
aynı type
aynı type
Type, bir value kümesi ve bu value'larla yapılabilecek işlemlerdir.
str (karakter dizisi)
"7" ve 7
İki sütun. Solda print("7"): "7" bir str (yeşil kutu, str etiketi), Çıktı panelinde 7. Sağda print(7): 7 bir int (turuncu kutu, int etiketi), Çıktı panelinde 7. İki kutu çivit mavisi çerçeveyle vurgulu ve bir çizgiyle birleşiyor: type'ları farklı. İki çıktı paneli de bir çizgiyle birleşiyor: ekranda aynı.
print(
"7"
)
"7"
str
print(
7
)
7
int
type'ları farklı
Çıktı
7
Çıktı
7
ekranda aynı
Tırnak içindeki her value bir str'dir; ekranda tırnaksız görünür.
type()
print(type(7), type(3.5), type("7"))
Çıktı
<class 'int'> <class 'float'> <class 'str'>
type()
Üç satır. 7 (int, turuncu) type() kutusuna girer, sonuç <class 'int'>. 3.5 (float, hardal sarısı) girer, sonuç <class 'float'>. "7" (str, yeşil) girer, sonuç <class 'str'>. Sonuçlarda type adı kendi renginde bir çizgiyle altı çizili: int turuncu, float hardal sarısı, str yeşil.
7
type()
<class 'int'>
3.5
type()
<class 'float'>
"7"
type()
<class 'str'>
type(), bir value'nun type'ını söyler.
type() (2)
print(type("7 + 3"))
print(type(7 + 3))
Tırnak içindeki 7 + 3 bir str, hesaplanan 10 bir int'tir.
Çıktı
<class 'str'>
<class 'int'>
"7 + 3" ve 7 + 3
Üstte "7 + 3" bir value kutusunda (str, yeşil). Altta 7 + 3 etiketli bir ok, 10 kutusuna gidiyor: 7 + 3 hesaplanır, 10 (int, turuncu).
"7 + 3"
str
7 + 3
10
int
Data types (veri tipleri)
value
Numbers (sayılar)
Integral
Real
Sequences (diziler)
Immutable
str"7"rangeDers 3 tupleDers 5
Mutable
Set types (kümeler)
Mappings
None
bu derste daha önce sonraki derslerde
type() ve NameError
Type ve type
İki sütun. Geçersiz: print(Type(7)), büyük T kırmızı bir şeridin üzerinde; altında kırmızı son satır: NameError: name 'Type' is not defined. Did you mean: 'type'? Geçerli: print(type(7)), küçük t açık mavi, çivit mavisi çerçeveli bir şeridin üzerinde; Çıktı panelinde <class 'int'>. 7 iki tarafta da int (turuncu).
Geçersiz
Geçerli
print(
T
ype(
7
))
NameError: name 'Type' is not defined.
Did you mean: 'type'?
print(
t
ype(
7
))
Çıktı
<class 'int'>
Python büyük ve küçük harfi ayırır: Type ile type farklı isimlerdir.
7. int ve float
Tam sayılar ve noktalı sayılar
int (tam sayı)
int: tam sayılar
Solda -3'ten 3'e bir sayı doğrusu; noktalar yalnızca tam sayılarda (int, turuncu): -3, -2, -1, 0, 1, 2, 3. İki uçta ok ve sınır yok yazısı; 0 ile 1 arasında arada int yok yazısı. Sağda üç value kutusu: 7, -2 ve 2026 (int, turuncu), altlarında int.
-3
-2
-1
0
1
2
3
sınır yok
sınır yok
arada int yok
7
int
-2
int
2026
int
int, noktasız yazılan tam sayıdır; eksi de olabilir, artı da.
int (2)
Büyük bir int'e 1 eklemek
20 basamaklı bir int, 12345678901234567890 (turuncu), artı 1 (int, turuncu); ok sonuca gidiyor: 12345678901234567891 (int, turuncu). Sonucun son basamağı 1 çivit mavisi bir çerçeveyle vurgulu. Üç kutunun altında int yazıyor; ilk kutunun üstünde 20 basamak.
12345678901234567890
int
20 basamak
+
1
int
1234567890123456789
1
int
Python'da int'in bir üst sınırı yoktur.
float (gerçek sayı)
float: noktalı sayılar
int sayı doğrusuyla aynı eksen, -3'ten 3'e. Tam sayılarda nokta yok; üç noktalı sayı hardal sarısı noktalarla işaretli: -0.25 (-1 ile 0 arasında), 2.0 (2'nin tam üstünde) ve 2.5 (2 ile 3 arasında), her biri kendi value kutusunda (float, hardal sarısı). 2.0 açık mavi, çivit mavisi çerçeveli bir şeritte vurgulu; yanında float ve tam sayı gibi görünür, float'tır yazıyor.
-3
-2
-1
0
1
2
3
-0.25
2.0
float
tam sayı gibi görünür, float'tır
2.5
float, noktalı yazılan sayıdır; 2.0 da bir float'tır.
float (2)
0.1 + 0.2
Üç satır. 0.1 yazılır; memory'de tam 0.1 değil, 0.1000000000000000055511151231257827021181583404541015625 durur (float, hardal sarısı). 0.2 yazılır; memory'de 0.200000000000000011102230246251565404236316680908203125 durur (float, hardal sarısı). 0.1 + 0.2 hesaplanınca Çıktı panelinde 0.30000000000000004 yazılır; sondaki 4 açık mavi, çivit mavisi çerçeveli bir şeritte.
yazdığımız
memory'de duran
0.1
0.1000000000000000055511151231257827021181583404541015625
0.2
0.200000000000000011102230246251565404236316680908203125
0.1 + 0.2
Çıktı
0.3000000000000000
4
float, kayan noktalı yaklaşık bir value'dur: 0.1 + 0.2 tam 0.3 değildir.
IEEE 754 standardı (1985)
Fotoğraf: George M. Bergman, “William Kahan 2008”, Wikimedia Commons, CC BY-SA 4.0. Boyutu küçültüldü.
Python'un float'ı da IEEE'nin 754 standardına göre saklanır.
Standardın baş mimarı William Kahan.
int ve float birlikte
int ile float birlikte
3 (int, turuncu) artı 4.0 (float, hardal sarısı); Python hesaplar etiketli bir ok sonuca gidiyor: 7.0 (float, hardal sarısı), açık mavi ve çivit mavisi çerçeveli bir şeridin içinde. Kutuların altında int, float, float.
3
int
+
4.0
float
Python hesaplar
7.0
float
int ile float birlikte kullanılınca sonuç float olur.
Ondalık virgül
Ondalık virgül
İki satır. Üstte print(3,5 + 2): virgül kırmızı kesikli bir elipsle çevrili; altındaki iki köşeli çizgi parantezin içini iki argument'a ayırıyor: 1. argument 3 (int, turuncu), 2. argument 5 + 2, oku 7'ye (int, turuncu) gidiyor. Çıktı panelinde 3 7 ve kırmızı yazı: hata yok, sonuç yanlış. Altta print(3.5 + 2): nokta açık mavi, çivit mavisi çerçeveli bir şeritte, 3.5 float (hardal sarısı); Çıktı panelinde 5.5.
print(
3
,
5
+
2
)
3
1. argument
7
2. argument
Çıktı
3 7
hata yok, sonuç yanlış
print(
3
.
5
+
2
)
Çıktı
5.5
Python ondalık ayırıcı olarak nokta kullanır; virgül argument'ları ayırır.
8. Arithmetic operators
Python ile hesap yapmak
Operator (işlemci) ve operand (işlenen)
Operator ve operand
7 + 3 ifadesi büyük yazılmış; 7 ve 3 turuncu (int). Numaralı notlar: 1, 7: operand; 2, +: operator; 3, 3: operand. İfadenin tamamının üstünde bir köşeli çizgi ve expression yazısı. Bir ok sonuca gidiyor: 10 (int, turuncu), açık mavi ve çivit mavisi çerçeveli bir şeridin içinde.
7 + 3
expression
1
operand
2
operator
3
operand
10
int
Operator, operand'lar üzerinde bir işlem yapar; sonuç tek bir value'dur.
Operator aileleri
Operator aileleri
Kursta görülecek dört operator ailesi, dört sütun. Arithmetic, 7 operator: + - * / // % **; bu derste başlığı açık mavi ve çivit mavisi çerçeveyle vurgulu. Comparison, 6 operator: == != < > <= >=. Logical, 3 operator: and or not. Membership, 1 operator: in. Bu üç ailenin hücreleri gri kesikli, yazıları gri, başlıklarının sağında hangi derste görüleceği yazıyor: Ders 1'de Ders 2, Ders 2'de 2B. + ve * hücrelerinde Ders 2A için boş bir ikinci satır yeri var (str ile).
+
str ile
-
*
str ile
/
//
%
**
Arithmetic 7
Ders 2 2B
==
!=
<
>
<=
>=
Comparison 6
Ders 2 2B
and
or
not
Logical 3
Ders 2 2B
in
Membership 1
Ders 2 2B
Kursta dört operator ailesi göreceğiz; bugün aritmetik olanları öğreniyoruz.
Arithmetic operators (aritmetik işlemciler)
Yedi aritmetik operator
Dört sütunlu tablo: operator, adı, örnek, sonuç. + toplama 7 + 2, 9. - çıkarma 7 - 2, 5. * çarpma 7 * 2, 14. / bölme 7 / 2, 3.5. // tam bölme 7 // 2, 3. % kalan (mod) 7 % 2, 1. ** üs alma 7 ** 2, 49. 3.5 tek float sonuç (hardal sarısı), açık mavi ve çivit mavisi çerçeveli bir şeritte; öteki sonuçlar int (turuncu). Örneklerdeki 7 ve 2 de int.
operator
adı
örnek
sonuç
+
toplama
7 + 2
9
-
çıkarma
7 - 2
5
*
çarpma
7 * 2
14
/
bölme
7 / 2
3.5
tek float sonuç
//
tam bölme
7 // 2
3
%
kalan (mod)
7 % 2
1
**
üs alma
7 ** 2
49
Yedi aritmetik operator var; aynı iki sayıyla yedi farklı sonuç.
/, // ve %
/, // ve %
Solda 17 nokta (çivit mavisi), beşerli üç tam satır; yanlarında köşeli çizgi ve 3 tam satır yazısı. Dördüncü satırda artan iki nokta, açık mavi ve çivit mavisi çerçeveli bir şeritte: 2 artan. Sağda üç sonuç: 17 / 5 = 3.4 (float, hardal sarısı), kesirli sonuç; 17 // 5 = 3 (int, turuncu), kaç tam grup; 17 % 5 = 2 (int, turuncu), kalan.
3 tam satır
2 artan
17 / 5
3.4
kesirli sonuç
17 // 5
3
kaç tam grup
17 % 5
2
kalan
/ kesirli sonucu, // bölümün tam kısmını, % kalanı verir.
% ile çift ve tek
% ile çift ve tek
İki satır. 18 % 2: 18 nokta (çivit mavisi) dokuz çifte ayrılmış, her çiftin altında bir köşeli çizgi; ok sonuca gidiyor: 0 (int, turuncu), çift. 17 % 2: 17 nokta sekiz çifte ayrılmış, bir nokta artıyor ve açık mavi, çivit mavisi çerçeveli bir şeritte; ok sonuca gidiyor: 1 (int, turuncu), tek.
18 % 2
0
çift
17 % 2
1
tek
Bir sayının 2'ye bölümünden kalan 0 ise sayı çifttir, 1 ise tektir.
/ ve float
/ ve float
Üç satır. 6 / 2 sonucu 3.0 (float, hardal sarısı), açık mavi ve çivit mavisi çerçeveli bir şeritte vurgulu. 7 / 2 sonucu 3.5 (float, hardal sarısı). 7 // 2 sonucu 3 (int, turuncu). İlk iki satırın yanında bir köşeli çizgi: / her zaman float.
6 / 2
3.0
float
7 / 2
3.5
float
7 // 2
3
int
/ her zaman float
/ her zaman float verir; 6 / 2 bile 3.0'dır.
// ve % ile tur süresi
78792 milisaniye // ve % ile dakika, saniye ve milisaniyeye ayrılıyor
İki adımda bir tur süresi. 1. adım, dakika: 78792 // 60000 sonucu 1 (int, turuncu), 78792 % 60000 sonucu 18792 (int, turuncu). Altında 78792 milisaniyelik turuncu bir çubuk iki parçaya bölünmüş: solda 60000, yani 1 tam dakika, sağda artan 18792; sağdaki parça çivit mavisi çerçeveli açık mavi bir bantla vurgulu. İki ince çizgi bu 18792'lik parçayı alttaki çubuğa büyütüyor. 2. adım, saniye: 18792'lik çubuk her biri 1000 milisaniye olan 18 eşit turuncu kutuya ve sonda 792'lik dar bir kutuya bölünmüş; dar kutu çivit mavisi çerçeveli açık mavi bantla vurgulu. 18 kutunun altındaki parantezde 18 tam saniye ve 18792 // 1000, dar kutunun altında artan 792 ms ve 18792 % 1000 yazıyor. Sağda sonuç: 1:18.792; 1, 18 ve 792 turuncu.
1. adım: dakika
78792 // 60000
1
int
78792 % 60000
18792
int
60000
1 tam dakika
18792
artan
2. adım: saniye
1 :18 .792
18 tam saniye
18792 // 1000
artan 792 ms
18792 % 1000
// tam dakikaları, % artan milisaniyeleri verir; aynı adım saniyeler için tekrarlanır.
Üs alma
Üs alma: 2 ** 10
Üstte 2 ** 10. Altında yan yana on value kutusu 2 (int, turuncu), aralarında * işaretleri; altlarında bir köşeli çizgi ve 10 tane yazısı. Ok sonuca gidiyor: 1024 (int, turuncu), açık mavi ve çivit mavisi çerçeveli bir şeritte.
2
*
2
*
2
*
2
*
2
*
2
*
2
*
2
*
2
*
2
10 tane
2 ** 10
1024
int
** üs alır: 2 ** 10, on tane 2'nin çarpımıdır.
2 ** 1000
2 ** 1000
print(2 ** 1000) sonucu tek bir büyük value kutusunda (int, turuncu): 302 basamak, beş satırda 51'er ve altıncı satırda 47 basamak. 1071508607 ile başlar, 69376 ile biter. Kutunun altında int ve 302 basamak yazıyor.
print(2 ** 1000)
107150860718626732094842504906000181056140481170553
360744375038837035105112493612249319837881569585812
759467291755314682518714528569231404359845775746985
748039345677748242309854210746050623711418779541821
530464749835819412673987675591655439460770629145711
96477686542167660429831652624386837205668069376
int
302 basamak
2 ** 1000, 302 basamaklı bir int'tir; Python onu bir anda hesaplar.
Precedence (öncelik sırası)
Öncelik sırası: iki hesap ağacı
İki hesap ağacı. Solda 2 + 3 * 4: önce * (vurgulu, açık mavi ve çivit mavisi çerçeveli) 3 ve 4'ü çarpar, 1 numaralı sonuç 12; sonra + 2 ile 12'yi toplar, 2 numaralı sonuç 14. Sağda (2 + 3) * 4: önce parantezdeki + (vurgulu) 2 ile 3'ü toplar, 1 numaralı sonuç 5; sonra * 5 ile 4'ü çarpar, 2 numaralı sonuç 20. Bütün değerler int (turuncu).
2 + 3 * 4
2
3
4
*
12
1
+
14
2
(2 + 3) * 4
2
3
4
+
5
1
*
20
2
Çarpma ve bölme toplamadan önce yapılır; emin olmadığınız yerde parantez okumayı kolaylaştırır.
ZeroDivisionError
ZeroDivisionError: program o satırda durur
Solda üç satırlık kod: 1 print(7 / 2), yanında çalıştı ve Run penceresindeki 3.5 satırına bir ok; 2 print(7 / 0), yanında kırmızı bir durma işareti ve ZeroDivisionError burada; 3 print("son") gri, çalışmadı. Sağda Run penceresi: 3.5 ve kırmızı ZeroDivisionError: division by zero. Altta: Hata satırı çalışınca bulunur; önceki satırlar çalışmıştır.
1
print(7 / 2 )
2
print(7 / 0 )
3
print("son")
çalıştı
ZeroDivisionError burada
çalışmadı
Run penceresi
3.5
ZeroDivisionError:
division by zero
Hata satırı çalışınca bulunur; önceki satırlar çalışmıştır.
Sıfıra bölmenin cevabı yoktur; program o satırda durur.
^ işareti
^ işareti ve **
İki sütun. Beklenen bu değil: print(2 ^ 3), ^ kırmızı kesikli bir çemberde; ok 1'e (int, turuncu) gidiyor, yanında kırmızı error message yok. Üs alma: print(2 ** 3), ** açık mavi ve çivit mavisi çerçeveli bir şeritte; ok 8'e (int, turuncu) gidiyor.
Beklenen bu değil
Üs alma
print(
2
^
3
)
1
int
error message yok
print(
2
**
3
)
8
int
^ üs alma değildir; hata vermeden başka bir sonuç verir.
Python ne yazdırır?
print(23 // 4, 23 % 4, 8 / 4)
5 3 2
5.75 3 2.0
5 3 2.0
5 5.75 2.0
// tam kısmı, % kalanı verir; / her zaman float verir.
9. Variable ve assignment
Value'lara isim vermek
Variable (değişken)
Variable: isimler ve value'lar
Solda kod paneli: credits = 4, coefficient = 2.50, print(credits, coefficient); altında Çıktı paneli: 4 2.5. Sağda iki çerçeve. Soldaki İsimler çerçevesinde lacivert isim etiketleri credits ve coefficient; sağdaki Value'lar çerçevesinde 4 (int, turuncu) ve 2.5 (float, hardal sarısı) value kutuları, type'ları altlarında yazılı. credits ismi 4'ü, coefficient ismi 2.5'i birer okla gösterir; hiçbir value bir ismin kutusunun içinde değil. credits'ten 4'e giden ok, çivit mavisi çerçeveli açık mavi bir şeridin üzerinde. 2.5'in yanında: 2.50 yazıldı, 2.5 olarak durur.
credits = 4
coefficient = 2.50
print(credits, coefficient)
Çıktı
4 2.5
İsimler
Value'lar
credits
coefficient
4
int
2.5
float
2.50 yazıldı,
2.5 olarak durur
Variable, memory'deki bir value'yu gösteren bir isimdir.
Assignment (atama)
Assignment: önce sağ taraf, sonra isim
Üstte genel biçim: <isim> = <expression>. Solda kod paneli: total = 4 + 3, print(total); altında Çıktı paneli: 7. Sağda iki numaralı adım. 1, sağ taraf hesaplanır: 4 + 3 expression'ından bir ok, 7 value'suna (int, turuncu) gider; 7 bu adımda oluştuğu için çivit mavisi çerçeveli açık mavi bir şeridin içinde. 2, isim bağlanır: lacivert total isim etiketi aynı 7'yi bir okla gösterir; bu ok bu adımda eklendiği için açık mavi şeridin üzerinde. 1: 4 + 3 hesaplanır, 7 (int, turuncu). 2: total ismi 7'yi gösterir.
<isim> = <expression>
total = 4 + 3
print(total)
Çıktı
7
1
sağ taraf hesaplanır
4 + 3
7
int
2
isim bağlanır
total
7
int
Önce sağ taraf hesaplanır, sonra isim o value'ya bağlanır.
Recorde'un = işareti (1557)
Görsel: Robert Recorde, “Equals sign in Robert Recorde, The Whetstone of Witte, London 1557, p.238”, Wikimedia Commons, kamu malı.
Recorde 1557'de = işaretini "eşittir" için kullandı; Python'da = "olsun" demektir.
Variable kullanmak
Bir isim, value'sunun yazılabileceği her yerde kullanılabilir.
İsimler
İsim kuralları, PEP 8 ve büyük harfli isimler
Çizilmiş isim kartları, üç durum. Durum rules: üstte kod paneli: course_code = "BBM101", midterm2 = 85, print(course_code, midterm2); Çıktı: BBM101 85. Altta solda petrol mavisi çerçeveli geçerli kartlar: course_code, midterm2, _total, credits ve Credits; Credits'in altında credits'ten farklı bir isim yazar. Sağda kırmızı çerçeveli geçersiz kartlar, her birinin altında bozduğu kural: course code, boşluk var; 2course, rakamla başlıyor; not, Python'un kendi kelimesi. Durum pep8: kod paneli: total_credits = 9, print(total_credits); Çıktı: 9. Geçerli kartların altına bir satır eklenir: course_code, midterm2, _total ve credits için snake_case; Credits için büyük harfle başlamaz. Sol grubun altındaki üçüncü yer boş kalır. Geçersiz grup gri ve sönük çizilir. Durum const: pep8 durumunun aynısı, kod paneli: MAX_GPA = 4.0, print("En yüksek AGNO:", MAX_GPA); Çıktı: En yüksek AGNO: 4.0. Boş kalan yere petrol mavisi çerçeveli yeni bir geçerli kart gelir: MAX_GPA, altında hiç değişmeyecek value; kart açık mavi zeminli, çivit mavisi çerçeveli bir bantla vurgulanır. Kartlar isimdir, value değil; bu yüzden type renkleri yok.
Çıktı
course_code = "BBM101"
midterm2 = 85
print(course_code, midterm2)
BBM101 85
total_credits = 9
print(total_credits)
9
MAX_GPA = 4.0
print("En yüksek AGNO:", MAX_GPA)
En yüksek AGNO: 4.0
geçerli
course_code
midterm2
_total
credits
Credits
credits'ten farklı
bir isim
snake_case
snake_case
snake_case
snake_case
PEP 8: küçük harf
MAX_GPA
hiç değişmeyecek
value
geçersiz
course code
boşluk var
2course
rakamla başlıyor
not
Python'un kendi kelimesi
İsimler harf, rakam ve _ içerir; rakamla başlamaz, boşluk içermez.
İsimler (2)
Geçersiz Son satır Geçerli
course code = "BBM101"SyntaxError: invalid syntaxcourse_code = "BBM101"
2course = 1SyntaxError: invalid decimal literalcourse2 = 1
not = 85SyntaxError: invalid syntaxnote = 85
Geçersiz bir isim, hiçbir satır çalışmadan SyntaxError verir.
Keyword (anahtar kelime)
Python'un keyword'leri
Çizilmiş bir panel. Üstte example.py'deki satır: help("keywords"); bir çizginin altında Run penceresine yazılanlar. Altında Python'un yazdığı başlık: Here is a list of the Python keywords. Enter any keyword to get more help. Sonra dört sütunlu on satırda 37 keyword, Python'un yazdığı sırayla: False, class, global, pass, None, continue, if, raise, True, def, import, return, and, del, in, try, as, elif, is, while, assert, else, lambda, with, async, except, match, yield, await, finally, nonlocal, break, for, not, case, from, or. Bunlardan dokuzu çivit mavisi bir çerçeveyle çevrili: if, and, in, elif, while, else, for, not, or; while'ın yanındaki not: Ders 2-3'te göreceklerimiz.
help("keywords")
example.py, Run penceresi
Here is a list of the Python keywords. Enter any keyword to get more help.
False
class
global
pass
None
continue
if
raise
True
def
import
return
and
del
in
try
as
elif
is
while
assert
else
lambda
with
async
except
match
yield
await
finally
nonlocal
break
for
not
case
from
or
Ders 2-3'te
göreceklerimiz
Keyword'ler Python'un kendi kelimeleridir; isim olarak kullanılamaz.
PEP 8
İsim kuralları, PEP 8 ve büyük harfli isimler
Çizilmiş isim kartları, üç durum. Durum rules: üstte kod paneli: course_code = "BBM101", midterm2 = 85, print(course_code, midterm2); Çıktı: BBM101 85. Altta solda petrol mavisi çerçeveli geçerli kartlar: course_code, midterm2, _total, credits ve Credits; Credits'in altında credits'ten farklı bir isim yazar. Sağda kırmızı çerçeveli geçersiz kartlar, her birinin altında bozduğu kural: course code, boşluk var; 2course, rakamla başlıyor; not, Python'un kendi kelimesi. Durum pep8: kod paneli: total_credits = 9, print(total_credits); Çıktı: 9. Geçerli kartların altına bir satır eklenir: course_code, midterm2, _total ve credits için snake_case; Credits için büyük harfle başlamaz. Sol grubun altındaki üçüncü yer boş kalır. Geçersiz grup gri ve sönük çizilir. Durum const: pep8 durumunun aynısı, kod paneli: MAX_GPA = 4.0, print("En yüksek AGNO:", MAX_GPA); Çıktı: En yüksek AGNO: 4.0. Boş kalan yere petrol mavisi çerçeveli yeni bir geçerli kart gelir: MAX_GPA, altında hiç değişmeyecek value; kart açık mavi zeminli, çivit mavisi çerçeveli bir bantla vurgulanır. Kartlar isimdir, value değil; bu yüzden type renkleri yok.
Çıktı
course_code = "BBM101"
midterm2 = 85
print(course_code, midterm2)
BBM101 85
total_credits = 9
print(total_credits)
9
MAX_GPA = 4.0
print("En yüksek AGNO:", MAX_GPA)
En yüksek AGNO: 4.0
geçerli
course_code
midterm2
_total
credits
Credits
credits'ten farklı
bir isim
snake_case
snake_case
snake_case
snake_case
PEP 8: küçük harf
MAX_GPA
hiç değişmeyecek
value
geçersiz
course code
boşluk var
2course
rakamla başlıyor
not
Python'un kendi kelimesi
PEP 8, Python'un code conventions (kod geleneği) belgesidir: isimler snake_case yazılır.
Büyük harfli isimler
İsim kuralları, PEP 8 ve büyük harfli isimler
Çizilmiş isim kartları, üç durum. Durum rules: üstte kod paneli: course_code = "BBM101", midterm2 = 85, print(course_code, midterm2); Çıktı: BBM101 85. Altta solda petrol mavisi çerçeveli geçerli kartlar: course_code, midterm2, _total, credits ve Credits; Credits'in altında credits'ten farklı bir isim yazar. Sağda kırmızı çerçeveli geçersiz kartlar, her birinin altında bozduğu kural: course code, boşluk var; 2course, rakamla başlıyor; not, Python'un kendi kelimesi. Durum pep8: kod paneli: total_credits = 9, print(total_credits); Çıktı: 9. Geçerli kartların altına bir satır eklenir: course_code, midterm2, _total ve credits için snake_case; Credits için büyük harfle başlamaz. Sol grubun altındaki üçüncü yer boş kalır. Geçersiz grup gri ve sönük çizilir. Durum const: pep8 durumunun aynısı, kod paneli: MAX_GPA = 4.0, print("En yüksek AGNO:", MAX_GPA); Çıktı: En yüksek AGNO: 4.0. Boş kalan yere petrol mavisi çerçeveli yeni bir geçerli kart gelir: MAX_GPA, altında hiç değişmeyecek value; kart açık mavi zeminli, çivit mavisi çerçeveli bir bantla vurgulanır. Kartlar isimdir, value değil; bu yüzden type renkleri yok.
Çıktı
course_code = "BBM101"
midterm2 = 85
print(course_code, midterm2)
BBM101 85
total_credits = 9
print(total_credits)
9
MAX_GPA = 4.0
print("En yüksek AGNO:", MAX_GPA)
En yüksek AGNO: 4.0
geçerli
course_code
midterm2
_total
credits
Credits
credits'ten farklı
bir isim
snake_case
snake_case
snake_case
snake_case
PEP 8: küçük harf
MAX_GPA
hiç değişmeyecek
value
geçersiz
course code
boşluk var
2course
rakamla başlıyor
not
Python'un kendi kelimesi
Hiç değişmeyecek bir value'nun ismi büyük harfle yazılır: MAX_GPA.
Tur süresi ve variable
MS_PER_MINUTE = 60000
MS_PER_SECOND = 1000
lap_ms = 78792
minutes = lap_ms // MS_PER_MINUTE
rest_ms = lap_ms % MS_PER_MINUTE
seconds = rest_ms // MS_PER_SECOND
millis = rest_ms % MS_PER_SECOND
print("Dakika:", minutes)
print("Saniye:", seconds)
print("Milisaniye:", millis)
İsimlerle aynı hesap okunur olur: 60000'in ne olduğunu ismi söyler.
Çıktı
Dakika: 1
Saniye: 18
Milisaniye: 792
Tur süresi: yedi isim ve gösterdikleri value'lar
Yedi lacivert isim etiketi ve her birinden sağdaki turuncu int value kutusuna giden bir ok: MS_PER_MINUTE 60000, MS_PER_SECOND 1000, lap_ms 78792, minutes 1, rest_ms 18792, seconds 18, millis 792. Üstteki iki satır, büyük harfli iki isim, gri kesikli bir çerçevenin içinde; çerçevenin üst kenarında hiç değişmez yazıyor. lap_ms'in oku çivit mavisi çerçeveli açık mavi bir bantla vurgulu: başka bir tur için değiştirilecek value bu. Hiçbir value bir ismin kutusunun içinde değil.
hiç değişmez
MS_PER_MINUTE
60000
MS_PER_SECOND
1000
lap_ms
78792
minutes
1
rest_ms
18792
seconds
18
millis
792
Assignment ve SyntaxError
Assignment yönü: 5 = x ve x = 5
İki taraflı karşılaştırma. Solda kırmızı başlık Geçersiz: kod 5 = x; 5 (int, turuncu) kırmızı çerçeveli bir şeridin üzerinde. Altındaki Çıktı panelinde Python'un son satırı kırmızıyla, iki satıra bölünmüş: SyntaxError: cannot assign to literal here. Maybe you meant '==' instead of '='? Sağda petrol mavisi başlık Geçerli: kod x = 5; altında lacivert isim etiketi x, 5 value'sunu (int, turuncu) bir okla gösterir; ok çivit mavisi çerçeveli açık mavi bir şeridin üzerinde. Altında: sağdan sola: value isme bağlanır.
Geçersiz
5
= x
Çıktı
SyntaxError: cannot assign to literal here.
Maybe you meant '==' instead of '='?
Geçerli
x = 5
x
5
int
sağdan sola: value isme bağlanır
= işaretinin solunda bir isim olmalıdır.
Variable ve NameError
NameError: credit diye bir isim yok
Solda İsimler başlıklı bir çerçeve; içinde lacivert credits isim etiketi. credits'ten çıkan düz ok, çerçevenin dışındaki 4 değerini (int, turuncu) gösteriyor. Sağda kırmızı kesikli çerçeveli bir etiket: credit. Ondan hiçbir ok çıkmıyor; altında kırmızı yazıyla böyle bir isim yok. credit etiketinden credits etiketine ince bir çizgi gidiyor; yanında Python'un önerisi: Did you mean: 'credits'? En altta kırmızı hata satırı: NameError: name 'credit' is not defined. Did you mean: 'credits'? Özet: credits ismi 4'ü gösterir; credit diye bir isim yok, NameError. Python credits'i önerir.
İsimler
credits
4
int
credit
böyle bir isim yok
Did you mean: 'credits'?
NameError: name 'credit' is not defined. Did you mean: 'credits'?
Python yanlış yazılan ismi düzeltmez; yalnızca önerir.
Ödev 1
Ödev teslimi: odev1.py, form, Pazar 23.59, geri bildirim
Yukarıdan aşağıya, oklarla bağlı dört adım, solda 1'den 4'e numaralı. 1: küçük bir file simgesi ve yanında odev1.py, TODO'lar dolu. 2: Google Form, altında isim, odev1.py. 3: Pazar 23.59, açık mavi ve çivit mavisi çerçeveyle vurgulu. 4: Geri bildirim e-postanıza.
odev1.py , TODO'lar dolu
Google Form
isim, odev1.py
Pazar 23.59
Geri bildirim e-postanıza
1
2
3
4
Ödev 1, odev1.py dosyasıdır: TODO'ları doldurup aynı dosyayı formdan yüklersiniz.
Son gün: 25 Ekim Pazar, 23.59
Form: forms.gle/61hSuP7zyptmGsedA
Dersten sonra izlemek isteyenlere
Başlangıç CS50P, Lecture 0 (print, comment, ilk hata) Sayılar Corey Schafer, Integers and Floats Python'un hikayesi Python: The Documentary Bellek ve CPU Computerphile, Von Neumann Architecture float Computerphile, Floating Point Numbers
İsteğe bağlı; bağlantılar Ek kaynaklar sayfasında.
Bugün neler yapabiliyorsunuz
1 Program yazıp çalıştırmak 2 Error message okuyup düzeltmek 3 Sayılarla hesap yapmak 4 Variable ile AGNO hesaplamak
Çalışma soruları
Dersten sonra kendi başınıza: önce soruyu çözün, tıklayınca cevap gelir.
Python ne yazdırır?
print("10 - 4", 10 - 4)
10 - 4 10 - 4
6 6
10 - 4 6
"10 - 4" 6
İlk argument tırnak içinde, olduğu gibi yazılır; ikincisi bir expression, 6 olarak hesaplanır.
Python ne yazdırır?
print("A") # print("B")
# print("C")
print("D")
A
B
C
D
A
B
D
Hiçbir şey yazmaz
A
D
# işaretinden sonrasını Python okumaz; yalnızca iki print() çalışır.
Python ne yazdırır?
print("A")
print("B)
print("C")
A
B
C
A, ardından SyntaxError
Hiçbir şey, yalnızca SyntaxError
AC ve SyntaxError
SyntaxError'da Python hiçbir satırı çalıştırmaz; dosya önce bütünüyle denetlenir.
Python ne yazdırır?
print(type("3.5"))
<class 'float'>
<class 'int'>
Hata verir
<class 'str'>
Tırnaklar onu bir str yapar; içindeki noktalı sayı type'ını değiştirmez.
Python ne yazdırır?
print(2026 + 0.0, type(7.0))
2026 <class 'int'>
2026.0 <class 'float'>
2026 <class 'float'>
2026.0 <class 'int'>
int ile float toplanınca sonuç float olur; 7.0 noktalı yazıldığı için float'tır.
Python ne yazdırır?
print(83456 // 60000, 83456 % 60000)
1 23.456
1 23456
1.3909333333333334 23456
23456 1
// tam dakikayı, % artan milisaniyeleri verir; ikisi de int.
Python ne yazdırır?
credits = 3
coefficient = 3.25
points = credits * coefficient
print("points", points)
points 9.75
points points
points credits * coefficient
NameError
Tırnak içindeki points olduğu gibi yazılır; points ismi hesaplanan 9.75'i gösterir.