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ü

PyCharm ekran görüntüsü, Kurulum kontrolü

Current File seçiliyken Run, açık dosyayı çalıştırır.

  1. 1Current File
  2. 2Run
  3. 3Run penceresi
Run penceresi
Python sürümü: 3.14.8Adınızı yazıp Enter'a basın: FatihTeşekkürler Fatih, kurulumunuz tamam.

1A konuları

Bu yarının sonunda ilk programınızı yazacak, error message'ları okuyabileceksiniz.

  1. 1. CPU, memory, code ve dataCPU, RAM, disk, interpreter
  2. 2. Program, statement ve print()print(), argument, Run
  3. 3. Literal ve expression"Hacettepe", 7, 3.25, 7 + 3
  4. 4. Comment#, Ctrl+/
  5. 5. Error messagestraceback, NameError, SyntaxError

1. CPU, memory, code ve data

Bilgisayarın parçaları ve bir programın çalışması

Bilgisayar sözcüğü (1969)

Bilgisayar sözcüğü, Hacettepe, 1969 Elle çizilmiş gibi basit bir resim: daktilodaki Hacettepe Üniversitesi Bilgi İşlem Merkezi antetli kağıtta 1969 tarihi ve iri yazıyla bilgisayar sözcüğü; duvardaki eski kartta elektronik beyin yazıyor ve bir ok karttan sözcüğe gidiyor. Hacettepe Üniversitesi Bilgi İşlem Merkezi 1969 bilgisayar elektronik beyin

"Bilgisayar" sözcüğünü Aydın Köksal türetti; ilk kez 1969'da Hacettepe adına kullanıldı.

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 olmadanhiç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 olmadanhiç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: kaydedilendosya 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.

Türkiye'nin ilk bilgisayarı (1960)

IBM 650'nin manyetik tambur belleği: yatay duran çelik bir silindir ve üstünde onu okuyan kafalara giden çok sayıda renkli kablo.
Görsel: Museo Nazionale della Scienza e della Tecnologia Leonardo da Vinci, Milano, “Memoria a tamburo magnetico per sistema IBM 650”, Wikimedia Commons, CC BY-SA 4.0.

Karayolları'nın IBM 650'sinde code ve data aynı dönen tamburda dururdu.

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 (2)

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 olmadanhiç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

Python

Python'u tasarlayan Guido van Rossum, 2024'te PyCon US konferansında.
Fotoğraf: Kushal Das, “Guido van Rossum in PyConUS24”, Wikimedia Commons, CC BY-SA 4.0. Boyutu küçültüldü. “Python” adı Python Software Foundation'ın (PSF) ticari markasıdır. Bu kurs PSF ile bağlantılı değildir.

Guido van Rossum Python'u Aralık 1989'da, Noel tatilinde bir hobi projesi olarak başlattı.

0.9.0, 20 Şubat 1991

Python'un adı

Monty Python grubunun beş üyesi 2014'te Londra'daki Monty Python Live (Mostly) gösterisinden sonra sahnede yan yana; soldan sağa Michael Palin, Terry Gilliam, Terry Jones, Eric Idle ve John Cleese.
Fotoğraf: Eduardo Unda-Sanzana, “Monty Python O2 Arena”, Wikimedia Commons, CC BY 2.0. Boyutu küçültüldü.

Python adını yılandan değil, BBC'nin komedi dizisi Monty Python's Flying Circus'tan alır.

Python sürümleri

Python'un zaman çizelgesi, 1989-2026 Ölçekli yatay zaman çizgisi, 1989'dan 2027'ye; 1990, 2000, 2010 ve 2020 işaretli. Aralık 1989'dan Şubat 1991'e: ilk sürüm 0.9.0. 3 Aralık 2008: Python 3.0, bugün kullandığımız Python 3. 7 Ekim 2025: Python 3.14.0. Çizgi şu satırla biter: 3.15.0 · 9 Ekim 2026, altında Bu slaytlar hazırlanırken çıktı. Kaynaklar: Python FAQ (docs.python.org); G. van Rossum, A Brief Timeline of Python (2009); PEP 790, Python 3.15 Release Schedule; python.org sürüm sayfaları (3.0, 3.14.0, 3.15.0). 1990 2000 2010 2020 Aralık 1989'dan Şubat 1991'e ilk sürüm 0.9.0 3 Aralık 2008 Python 3.0 Bugün kullandığımız Python 3 3.14.0 · 7 Ekim 2025 3.15.0 · 9 Ekim 2026 Bu slaytlar hazırlanırken çıktı. Kaynaklar: Python FAQ; G. van Rossum, “A Brief Timeline of Python” (2009); PEP 790, Python 3.15 Release Schedule; python.org: Python 3.0, 3.14.0 ve 3.15.0 sürüm sayfaları.

Neden Python

Aynı program üç dilde: hello, world Aynı program üç dilde. Solda üstte C, beş satır: #include <stdio.h>, int main(void) {, printf("hello, world\n");, return 0;, }. Altında Java, beş satır: public class Hello {, public static void main(String[] args) {, System.out.println("hello, world");, }, }. Sağda Python, tek satır: print("hello, world"); "hello, world" str, yeşil; panel açık mavi, çivit mavisi çerçeveli, Önizleme etiketli. Altındaki Çıktı panelinde hello, world. En altta: C ve Java da aynı satırı yazar. C 5 satır #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } Java 5 satır public class Hello { public static void main(String[] args) { System.out.println("hello, world"); } } Python 1 satır Önizleme print("hello, world") Çıktı hello, world C ve Java da aynı satırı yazar
Python kodu neredeyse düz İngilizce gibi okunur: hello, world tek satırdır.

Dropbox ve Python

Dropbox: tek dosyadan bir milyon satıra Solda dropbox.py adlı tek bir file simgesi; üstünde 2007, altında ilk prototip, Houston'a göre. Sağa giden bir ok, üstünde 12 yıl sonra. Sağda kısa ve uzun satırlarla dolu bir kod paneli, üstünde 2019, masaüstü uygulaması; panelin ortasında açık mavi, çivit mavisi çerçeveli kutuda 1.000.000'dan fazla satır Python. Kaynaklar: D. Houston, Dropbox.Tech, 7 Aralık 2012; C. Yang, Dropbox.Tech, 6 Şubat 2019. 2007 dropbox.py ilk prototip, Houston'a göre 12 yıl sonra 2019, masaüstü uygulaması 1.000.000'dan fazla satır Python Kaynaklar: D. Houston, Dropbox.Tech, 7 Aralık 2012; C. Yang, Dropbox.Tech, 6 Şubat 2019
Dropbox'ın masaüstü uygulamasında 2019'da bir milyondan fazla satır Python vardı.

LIGO ve kütleçekim dalgaları (2015)

GW150914 sinyalinin grafikleri: Hanford ve Livingston dedektörlerinde ölçülen dalga, kuramsal olarak beklenen dalgayla üst üste çizilmiş; altta frekansın zamanla artışı.
Görsel: Courtesy Caltech/MIT/LIGO Laboratory, “GW150914 Strain-diagrams”, Wikimedia Commons, CC0. Boyutu küçültüldü.

LIGO 2015'te kütleçekim dalgalarını ilk kez yakaladı; data'yı işleyen yazılımda Python ve NumPy vardı.

İlk kara delik görüntüsü (2019)

Event Horizon Telescope'un 2019'da yayımladığı ilk kara delik görüntüsü: siyah zemin üzerinde turuncu bir halka ve ortasında karanlık bir gölge.
Görüntü: EHT Collaboration (ESO, eso1907a), CC BY 4.0. Kırpıldı ve küçültüldü.

2019'daki ilk kara delik görüntüsünde veri her adımda Python ile işlendi.

Instagram, YouTube ve NASA

Instagram'da, YouTube'da ve NASA'nın Mars helikopterinin yazılım listesinde Python var.

Instagram'ın kurucularından Kevin Systrom, 2018'de bir konuşmada.
Instagram: Django
San Mateo'da tuğla bir bina; altta bir pizzacı ile bir Japon restoranı var. YouTube'un ilk ofisi Ekim 2006'ya kadar bu binanın ikinci katındaydı.
YouTube: 2007
Mars yüzeyinde duran küçük Ingenuity helikopteri; Perseverance aracının kamerasıyla 5 Nisan 2021'de çekilmiş.
NASA: Ingenuity

Fotoğraf: Christopher Michel, “Kevin Systrom 2018 (40980041741) (cropped)”, Wikimedia Commons, CC BY 2.0. Kırpıldı. · Fotoğraf: Coolcaesar (English Wikipedia), “Youtubeheadquarters”, Wikimedia Commons, CC BY-SA 3.0. Boyutu küçültüldü. · Fotoğraf: NASA/JPL-Caltech/ASU/MSSS, “Mastcam-Z Gives Ingenuity a Close-up”, Wikimedia Commons, kamu malı. Boyutu küçültüldü.

Python sıralamalarda birinci

TIOBE endeksi, Eylül 2026: ilk 10 dil Yatay çubuk grafik, TIOBE endeksi, Eylül 2026, ilk 10 dil, puan yüzde olarak: Python yüzde 17.76 ile birinci (çivit mavisi); ardından C 10.28, C++ 8.67, Java 7.54, C# 4.22, JavaScript 2.76, Visual Basic 2.55, SQL 2.16, R 1.69 ve Rust 1.34 (gri). Kaynak: TIOBE Index, Eylül 2026 (tiobe.com); TechRepublic, Eylül 2026. Puan (%) Python 17.76 C 10.28 C++ 8.67 Java 7.54 C# 4.22 JavaScript 2.76 Visual Basic 2.55 SQL 2.16 R 1.69 Rust 1.34 Veri: TIOBE Index, Eylül 2026 (tiobe.com, 11 Ekim 2026'da okundu); TechRepublic, Eylül 2026. Puan, arama motorlarında bir dilden ne kadar söz edildiğine göre hesaplanır. Grafik bu kurs için yeniden çizildi.
Python, TIOBE'nin Eylül 2026 sıralamasında birinci.

Neden Python (2)

Python'un karşınıza çıktığı dört alan Dört kutu. Data ve görüntü, yanında ortası karanlık çivit mavisi bir halka: ilk kara delik görüntüsü, 2019; son görüntüyü Matplotlib çizdi. Sinyal işleme, yanında tepeleri gittikçe büyüyüp sıklaşan bir dalga: LIGO, kütleçekim dalgaları, 2015; data'yı işleyen yazılımda NumPy. Raspberry Pi ve sensör, açık mavi, çivit mavisi çerçeveli kutuda; yanında küçük bir kart, bir sensör karesi ve 8'e 8 LED noktasından bir gülen yüz: ISS'teki Astro Pi bilgisayarları sensör okur, LED'de resim gösterir. Otomasyon, yanında üç satırlı bir file simgesi: not raporunu dosyaya yazan programı Ders 5'te yazacaksınız. Kaynaklar: Harris vd., Nature 585 (2020); Abbott vd., PRL 116 (2016); ESA Education, Astro Pi is ten (2025). Data ve görüntü İlk kara delik görüntüsü, 2019 Son görüntüyü Matplotlib çizdi Sinyal işleme LIGO, kütleçekim dalgaları, 2015 Data'yı işleyen yazılımda NumPy Raspberry Pi ve sensör ISS'teki Astro Pi bilgisayarları Sensör okur, LED'de resim gösterir Otomasyon Not raporunu dosyaya yazan programı Ders 5'te yazacaksınız Kaynaklar: Harris vd., Nature 585 (2020); Abbott vd., PRL 116 (2016); ESA Education, Astro Pi is ten (2025)
Mühendislik ve fen derslerinde ölçüm, sinyal ve data işlerken Python karşınıza çıkar.

Neden Python (3)

Python 3.14: pilleri içinde Üstü açık bir kutu, çivit mavisi çerçeveli; kutunun önünde Python 3.14 yazıyor. Kutunun içinde Python'la gelen sekiz hazır araç küçük kutucuklar halinde duruyor: üst sırada math, random ve turtle, ortada datetime, json ve csv, altta statistics ve sys. Üst sıra açık mavi, çivit mavisi çerçeveli bir bandın içinde; üstteki kursta kullanacaklarımız yazısından bu banda bir ok iniyor. Kutunun altında Python'la gelen hazır araç: 194 yazıyor. Sağ üst köşede 0 TL yazan bir fiyat etiketi, altında açık kaynak. En altta kaynak satırı: python.org/about; Python 3.14 Tutorial 10.12; sys.stdlib_module_names, 3.14.8. kursta kullanacaklarımız 0 TL açık kaynak math random turtle datetime json csv statistics sys Python 3.14 Python'la gelen hazır araç: 194 Kaynaklar: python.org/about; Python 3.14 Tutorial 10.12; sys.stdlib_module_names, 3.14.8

Python ücretsizdir ve kurulumla birlikte yüzlerce hazır araçla gelir.

Neden Python (4)

Beş haftanın sonunda falınıza bakan bu programı kendiniz yazabileceksiniz.

Kahve falı: fincan, kulp ve telve Beyaz zemin üzerinde, yukarıdan görülen bir kahve fincanı: koyu lacivert iki iç içe daire fincanın ağzını, sağda ona değen iki küçük iç içe daire kulpu çiziyor. Fincanın içine rastgele büyüklükte 100 koyu kahverengi telve noktası serpilmiş: 40'ı sol alt çeyrekte, 23'ü sol üstte, 21'i sağ üstte, 16'sı sağ altta. Program en kalabalık çeyreği, sol altı seçti ve Mehmet'in falını yazdı: Bir yılan görüyorum; korkmayın, bu Python.
Run penceresi
Adınız: MehmetTelvenin çoğu sol alt çeyrekte: 40 tane.Mehmet, falınız şöyle:Bir yılan görüyorum; korkmayın, bu Python.Bu fal, fal.txt dosyasının sonuna eklendi.Falınıza bir sayaç ile bir if baktı; tutarsa tesadüf.

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

Her dersin bir Ödev'i var; final sınavıyla ilgili ayrıntılar daha sonra paylaşılacak.

Ödev 1 formu

forms.gle/61hSuP7zyptmGsedA

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

PyCharm ekran görüntüsü, Derste çalışma düzeni

Kodları derste kendiniz yazarsınız; PyCharm'da AI ile tamamlama kapalıdır.

  1. 1AI ile tamamlama kutusu boş

2. Program, statement ve print()

İlk program ve onu çalıştırmak

Yeni Python dosyası

PyCharm ekran görüntüsü, Yeni Python dosyası

python-kurs klasöründe New, Python File; dosyanın adı example.

  1. 1python-kurs
  2. 2New, Python File
  3. 3example

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)

Brian Kernighan'ın imzalı, çerçeveli bilgisayar kağıdı baskısı: iki satırlık C programı main() { printf(\
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 (2)

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

PyCharm ekran görüntüsü, Programı çalıştırmak

Run penceresinin ilk satırı, interpreter'ı dosyanızla başlatır.

  1. 1interpreter'ın yolu
  2. 2.py dosyanızın yolu

python, python3 ve sürüm

PyCharm ekran görüntüsü, python, python3 ve sürüm

Python'u Windows'ta python, macOS'ta python3 komutu açar.

WindowsmacOS
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")
      
  1. A B C D
  2. A B C D
  3. A BC D
  4. A B C D

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)

Mantıkçı Gottlob Frege'nin 1879 dolaylarında çekilmiş portresi.
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)

Comment: Python # işaretinden sonrasını okumaz Bir code panelinde iki satır: # University name ve print("Hacettepe Üniversitesi") # transcript title. İki comment, yani # işaretinden satır sonuna kadar olan kısımlar, gri yazıyla açık mavi bir bandın üstünde; her birinin yanında bir köşeli çizgi ve Python bu kısmı okumaz yazısı. Metin "Hacettepe Üniversitesi" yeşil (metin). Bir ok Run penceresine iniyor; orada yalnızca Hacettepe Üniversitesi yazıyor. 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 (2)

Bir kod dosyasının başında # ile başlayan satırlar: geçmişteki Cueball gelecekteki kendisine parse function'ının bozulduğunu ve baştan yazılması gerektiğini yazmış. Laptop başındaki Cueball bu yorumlara cevap veriyor.
xkcd 1421: Future Self, Randall Munroe, CC BY-NC 2.5, https://xkcd.com/1421/

Comment, kodu sonra okuyacak insan için yazılır.

Comment (3)

Comment ne yapıldığını değil, neden yapıldığını söyler İki satırda aynı kod: print(4 + 3 + 2), rakamlar turuncu. Birinci satırın başlığı ne yaptığını söyler; comment'i gri yazıyla # adds 4, 3 and 2, üstünde kod zaten bunu söylüyor. İkinci satırın başlığı neden yaptığını söyler; comment'i # credits of MAT123, FIZ127, TKD103, çivit mavisi çerçeveli açık mavi bir bantta. İki satırdan da ok sağdaki ortak çıktıya gidiyor: her satır 9 yazar. Altta: İki satır aynı şeyi yazar; ikinci comment bir şey öğretir. 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)

Bir satırı comment yapmak: çıktısı kaybolur İki yan yana durum ve aralarında bir ok. Solda önce: print("Selam") ve print("Hacettepe"), string'ler yeşil (str); Run penceresinde Selam ve Hacettepe. Sağda Ctrl+/ ile 2. satır comment oldu: print("Selam") ve gri # print("Hacettepe"); # işareti açık mavi, çivit mavisi çerçeveli bir şeritte. Run penceresinde yalnızca Selam var; Hacettepe'nin yerinde gri kesikli boş bir satır, yazılmadı. ö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 (2)

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 birsokak yok.

NameError, bilinmeyen sokağa sapan dolmuş gibidir: önceki duraklarda inenler çoktan inmiştir.

NameError (4)

KodSon 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ırdatırnak eksik. Çıktı yok

SyntaxError, muayeneden geçemeyen dolmuş gibidir: hiç yola çıkmaz, hiçbir durağa uğramaz.

SyntaxError (3)

KodSon 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.

Kapanmayan parantez

Tek satırlık yazı: açılan ama kapanmayan bir parantezin gün boyu süren bir gerginlik bıraktığını söyleyen cümle, sonunda kapanış parantezi yok.
xkcd 859: (, Randall Munroe, CC BY-NC 2.5, https://xkcd.com/859/

Kapanmayan bir parantez, dosyanın tek satırını bile çalıştırmaz.


print("Selam"
Çıktı
SyntaxError: '(' was never closed

Error message'ı PyCharm'da okumak

PyCharm ekran görüntüsü, Error message'ı PyCharm'da okumak

Mavi bağlantı sizi hatalı satıra götürür.

  1. 1son satır
  2. 2mavi bağlantı
  3. 3dü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)

Harvard Mark II'nin 9 Eylül 1947 tarihli kayıt sayfası: 15.45 kaydının yanına bantla yapıştırılmış bir güve ve altında 'First actual case of bug being found' notu.
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.

Error message'ı aramak

Solda alt alta yazılmış bir şiir: bir hatayı aratınca tek sonuç çıkıyor, aynı sorunu yaşamış birinin 2003'ten kalma cevapsız sorusu. Sağda Cueball ekranı sarsarak DenverCoder9'a ne gördüğünü soruyor.
xkcd 979: Wisdom of the Ancients, Randall Munroe, CC BY-NC 2.5, https://xkcd.com/979/

Son satır olduğu gibi aranır; bulunan çözüm bir yere yazılır.

Python ne yazdırır?


print("A")
print("B")
prnt("C")
print("D")
      
  1. A B C D
  2. A
    B, ardından NameError
  3. Hiçbir şey, yalnızca NameError
  4. A
    B
    D ve NameError

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"
      
  1. Hacettepe
  2. Hacettepe Ankara
  3. Hacettepe, ardından SyntaxError
  4. Hiçbir şey, yalnızca SyntaxError

1B konuları

Bu yarının sonunda bu not dökümünü kendi kodunuzla yazdırabileceksiniz.

  1. 6. Value ve typevalue, type(), str
  2. 7. int ve float7, 3.5, 0.1 + 0.2
  3. 8. Arithmetic operators+ - * / // % **
  4. 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.

Type (2)

Pazarda tane ve kilo Elle çizilmiş gibi basit bir resim: çizgili tenteli bir pazar tezgahı. Solda turuncu bir viyolde yumurtalar, sağda asma bir terazinin kefesinde domatesler var. Tezgahın arkasındaki satıcı şaşırmış. Sağdaki müşteri yumurtaları gösterip "Yarım yumurta alabilir miyim?" diye soruyor. Tezgahın önünde iki etiket: "int: taneyle" ve "float: kiloyla". int: taneyle float: kiloyla Yarım yumurtaalabilir miyim?

Pazarda yumurta taneyle, domates kiloyla satılır: type, value'yla ne yapılabileceğini belirler.


print(10, 1.5, 2.0)
Çıktı
10 1.5 2.0

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
  1. Numbers(sayılar)

    1. Integral

      • int7
      • boolDers 2
    2. Real

      • float3.5
  2. Sequences(diziler)

      • str"7"
      • rangeDers 3
      • tupleDers 5
      • listDers 5
  3. Set types(kümeler)

    • setDers 5
  4. Mappings

    • dictDers 5
  5. None

    • NoneTypeDers 4
bu derstedaha öncesonraki 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)

IEEE 754 kayan nokta standardının baş mimarı William Kahan, 2008'de Berkeley'de.
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.

float (3)

Duvarda bir tabela: son floating point hatasından bu yana geçen gün sayısı sıfır yerine eksi 0.00000000000000044 yazıyor. Altında dört kişi.
xkcd 3228: Day Counter, Randall Munroe, CC BY-NC 2.5, https://xkcd.com/3228/

Son float hatasından bu yana geçen gün sayısı bile yaklaşık çıkmış.

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 22B == != < > <= >= Comparison 6 Ders 22B and or not Logical 3 Ders 22B in Membership 1 Ders 22B
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.

/, // ve % (2)

17 simit, 5 kişi Elle çizilmiş gibi basit bir resim. Şapkalı simitçi tezgahının arkasında duruyor. Tezgahta yan yana beş küçük tabak var, her tabakta üç simit; tezgahın ucunda artan iki simit duruyor. Yerde oturan bir kampüs kedisi artan simitlere bakıyor. Simitçinin balonunda "Artan 2 simit kedinin." yazıyor. Tezgahın önünde iki kod satırı: 17 // 5 sonucu 3, 17 % 5 sonucu 2. Artan 2 simitkedinin. 17 // 5 3 17 % 5 2

17 simit 5 kişiye paylaştırılınca herkese 3 tam simit düşer, 2 simit artar.


print(17 // 5)
print(17 % 5)
Çıktı
3
2

% 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.

F1'in en hızlı turu (2025)

Max Verstappen'in lacivert Red Bull RB21 aracı Monza pistinde yandan, hız izleriyle; önde yeşil, beyaz ve kırmızı boyalı pist kenarı.
Fotoğraf: Eustace Bagge, “Max Verstappen 2025 Italian Grand Prix FP3”, Wikimedia Commons, CC BY 4.0. Kırpıldı.

Verstappen'in Monza 2025 sıralamasındaki 1:18.792'lik turu, F1 tarihinin ortalama hızca en hızlı turudur.

1:18.792 = 78792 milisaniye

// 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.

ZeroDivisionError (2)

17 simit, 0 kişi Elle çizilmiş gibi basit bir resim. Şapkalı simitçi tezgahının arkasında, eli çenesinde, endişeli düşünüyor. Tezgahta hiç tabak yok; on yedi simit ortada bir yığın halinde duruyor. Simitçinin balonunda "Sıfır kişiye nasıl bölerim?" yazıyor. Tezgahın önünde 17 // 0 kodu ve ondan çıkan bir okun ucunda kırmızı ZeroDivisionError yazıyor. Sıfır kişiyenasıl bölerim? 17 // 0 ZeroDivisionError

17 simit 0 kişiye paylaştırılamaz: bu sorunun cevabı yoktur, Python da durur.


print(17 // 0)
Çıktı
ZeroDivisionError: division by zero

^ 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.

Büyük sayıların yazılışı

Büyük bir sayının farklı yazımları ve her birinin altında kimin öyle yazdığı: normal insan, bilim insanı, yazılımcı (2.526e13 ya da 2.526*10^13), float'ı unutan yazılımcı, gökbilimci.
xkcd 2319: Large Number Formats, Randall Munroe, CC BY-NC 2.5, https://xkcd.com/2319/

Binlikleri virgülle yazarsanız Python iki ayrı sayı görür.


print(25,259)
Çıktı
25 259

Python ne yazdırır?


print(23 // 4, 23 % 4, 8 / 4)
      
  1. 5 3 2
  2. 5.75 3 2.0
  3. 5 3 2.0
  4. 5 5.75 2.0

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.

Variable (2)

Variable bir kaptanlık bandı gibi Elle çizilmiş gibi basit bir resim: sahada turuncu formalı tek bir oyuncu, formasında büyük bir 4. Kolunda lacivert bir kaptanlık bandı var; bandın etiketinde credits yazıyor. Banttan formadaki 4'e kısa bir ok gidiyor. Arkada bir kale. Üstte credits = 4 kodu yazıyor. Hiçbir yerde kutu yok. 4 credits credits = 4

Variable kaptanlık bandı gibidir: isim value'ya takılır, value bir kutuya konmaz.


credits = 4

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.

Assignment (2)

Çerçeve içinde çember içine alınmış x = 4.1083 yazısı. Altında: büyük matematik haberi, x'in değeri nihayet bulundu.
xkcd 2861: X Value, Randall Munroe, CC BY-NC 2.5, https://xkcd.com/2861/

= bir denklem değildir; "olsun" diye okunur.


x = 4.1083

Recorde'un = işareti (1557)

Robert Recorde'un 1557 tarihli kitabından gotik harfli bir paragraf; = işaretinin uzun iki paralel çizgi olarak ilk kullanıldığı yer.
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çersizSon satırGeç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.

PEP 8 (2)

Dört panel: Cueball kendi kendine öğrendiğini söyleyerek kodunu gösteriyor, ekrana bakan arkadaşı kodu her panelde daha komik bir benzetmeyle anlatıyor, sonunda Cueball bir stil rehberi okuyacağını söylüyor.
xkcd 1513: Code Quality, Randall Munroe, CC BY-NC 2.5, https://xkcd.com/1513/

PEP 8'e göre kod, yazıldığından çok daha sık okunur.

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.

Yoda'dan bir not

Yoda büstünün fotoğrafı; üstünde ve altında büyük beyaz harflerle: Harfi harfine çalıştırır Python. Tahmin etmez.
Fotoğraf: Scott Ruether (Star Wars, Lucasfilm resmi Flickr hesabı), heykel Lawrence Noble, “Yoda Sculpt”, Wikimedia Commons, CC BY 2.0. Üzerine yazı eklendi.

("Merhaba")print yazsaydı Yoda, SyntaxError alırdı.

Bugün neler yapabiliyorsunuz

  1. 1Program yazıp çalıştırmak
  2. 2Error message okuyup düzeltmek
  3. 3Sayılarla hesap yapmak
  4. 4Variable 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)
      
  1. 10 - 4 10 - 4
  2. 6 6
  3. 10 - 4 6
  4. "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")
      
  1. A B C D
  2. A B D
  3. Hiçbir şey yazmaz
  4. 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")
      
  1. A B C
  2. A, ardından SyntaxError
  3. Hiçbir şey, yalnızca SyntaxError
  4. A
    C 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"))
      
  1. <class 'float'>
  2. <class 'int'>
  3. Hata verir
  4. <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))
      
  1. 2026 <class 'int'>
  2. 2026.0 <class 'float'>
  3. 2026 <class 'float'>
  4. 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. 1 23.456
  2. 1 23456
  3. 1.3909333333333334 23456
  4. 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)
      
  1. points 9.75
  2. points points
  3. points credits * coefficient
  4. NameError

Tırnak içindeki points olduğu gibi yazılır; points ismi hesaplanan 9.75'i gösterir.