Değişkenler, veri türleri ve ifadeler
İlk bölümde Python programımız sabit metinler yazdırıyordu. Gerçek programlarda ise değerler değişir: bir ürünün fiyatı, öğrencinin yaşı, hava sıcaklığı ya da kalan internet kotası her çalıştırmada farklı olabilir. Bu hafta programın veriyi nasıl tuttuğunu, nasıl dönüştürdüğünü ve bu verilerle nasıl hesap yaptığını öğreneceğiz.
Bu bölümde çok sayıda Python özelliği ezberlemeniz gerekmiyor. Bir değerin hangi veri türünde (type) olduğunu fark etmeyi, değişkenlere anlamlı adlar vermeyi ve bir ifadenin hangi sonucu vereceğini adım adım izlemeyi öğreneceksiniz. İfade, Python’ın hesaplayıp tek bir değere indirdiği yazımdır: 3 * 4 bir ifadedir ve değeri 12’dir.
Bu sayfadaki kod hücreleri kendiliğinden çalışmaz. Her hücrede önce çıktıyı tahmin edin, sonra Run Code düğmesine basın. Kodu değiştirip yeniden çalıştırabilir, Start Over ile ilk hâline döndürebilirsiniz.
Bu bölümün kapsamı
- Atamada sağ tarafın önce hesaplanması ve değişkenin o anki değeri
int,float,strveboolayrımıinput()sonucunun metin olması ve dönüşümün neden gerektiği/,//ve%sonuçları ile sonuç türleri- Karşılaştırma ve
and/or/notsonuçları =ile==farkı ve yerleşik adı gölgelemenin sonucufloatdeğerlerin yaklaşık tutulmasının çıktıdaki etkisi
- Türkçe karakterli değişken adlarının kullanılabilirliği
- Kayan noktalı gösterimin ikilik taban ayrıntısı
- Kod hücrelerinde girdinin neden bir değişkenle verildiği
Bunlarla ileride yine karşılaşabilirsiniz, ama ezberlemeniz beklenmiyor.
Gezi otobüsünü nasıl hesaplardınız?
Okulunuz bir gezi düzenliyor. Kayıt kapanınca gezi sorumlusu katılımcı sayısını bir programa yazacak. Program şu bilgilerle hesap yapacak:
- Bir otobüse
45kişi biner. - Bir otobüsün kirası
9.000TL. Toplam kira katılımcılar arasında eşit bölünür.
Program üç şey söyleyecek: kaç otobüsün tamamen dolduğunu, son otobüse kaç kişinin kaldığını ve kişi başı ücreti.
1. bölümde bir işin adımlarını sözde kodla yazmıştık. Bu programın adımlarını da öyle, Türkçe ve madde madde yazın: girdi ne, hangi hesap hangi sırayla yapılıyor, çıktı ne. Sonra adımlarınızı dört durumla deneyin:
- Program klavyeden gelen her şeyi önce yazı olarak alır. Sorumlu bir gün
100, bir günyüzyazdı. Adımlarınızdan hangisi bu yazıyı hesapta kullanılacak sayıya çeviriyor? 100kişi kaydoldu. Adımlarınız hem dolu otobüs sayısını hem son otobüsteki kişi sayısını veriyor mu?- Kişi başı ücreti hesapladınız, sonra
5kişi daha kaydoldu ve katılımcı sayısını105yaptınız. Kişi başı ücret kendiliğinden değişir mi? - Sorumlu sonucu denetlemek istiyor: kişi başı ücret ile katılımcı sayısının çarpımı toplam kiraya eşit mi?
105kişiyle deneyin.
Python bilmeniz gerekmiyor: “Katılımcı sayısını 45’e böl” de bir adım. Adımlarınızı bir kenara yazın. Bölümde her birinin Python’da nasıl yazıldığını göreceğiz. Alıştırmalardan önce listenize döneceğiz.
Değişken: bir değere verdiğimiz ad
Değişken, bir değere verdiğimiz addır. Aşağıdaki programda urun_fiyati, adet ve toplam üç değişkendir. Program ne yazar?
= işareti burada matematikteki “eşittir” anlamında kullanılmaz. Sağ taraftaki değer hesaplanır ve sol taraftaki değişken adına bağlanır. Bu işleme atama (assignment) denir.
Bir değişkeni daha sonra yeni bir değere bağlayabiliriz. Hücre hangi değeri yazar?
İkinci atamadan sonra puan adı yeni değeri gösterir. Eski değer artık bu adla bulunamaz.
= atar, == karşılaştırır
= bir değeri değişkene atar. == ise iki değerin eşit olup olmadığını karşılaştırır. Sonuç True (doğru) ya da False (yanlış) olur.
Değişken adları nasıl seçilir?
Python’da değişken adlarında harf, rakam ve alt çizgi (_) kullanılabilir. Ancak ad rakamla başlayamaz.
Geçerli örnekler:
ogrenci_adi = "Deniz"
sinav1 = 72
toplam_tutar = 450.5Geçersiz örnekler:
1sinav
toplam tutar
urun-fiyati
Anahtar sözcükler değişken adı olamaz
Python’ın kendine ayırdığı if, for, while, def, class, return, True gibi sözcüklere anahtar sözcük (keyword) denir. Bunlar değişken adı olamaz. Bu hücre çalışır mı?
Anahtar sözcükleri ezberlemeniz beklenmiyor. VS Code bunların çoğunu farklı renkte gösterir. Yanlış kullanırsanız Python SyntaxError (söz dizimi hatası) verir. Dikkat etmeniz gereken, bu sözcükleri kendi değişkenlerinize ad olarak vermemek.
Yerleşik adları gölgelemeyin
Python’ın kendisiyle birlikte gelen print, input, int gibi fonksiyon ve tür adlarına yerleşik ad denir. Bu adlara değer atamak Python’a göre geçerlidir, ama sorun çıkarır. Böyle bir ada değer atarsanız Python’ın hazır fonksiyonunu gölgelersiniz (shadow): ad artık sizin değerinizi gösterir ve sonraki satırlarda şaşırtıcı hatalar çıkar.
Örneğin:
print = 5
print("Merhaba") # TypeError: 'int' object is not callableBu örnek bilerek hücreye konmadı. Sayfadaki hücreler aynı Python oturumunu paylaşır. Hücrede print = 5 çalışırsa sonraki hücrelerin hepsi bozulur.
Özellikle şu adları kendi değişkenlerinize vermeyin:
print, input, list, str, int, float, sum
Örneğin input = "Deniz" yazmak geçerlidir, ama ondan sonra input("Adınız: ") çağrısı TypeError verir. Bu fonksiyonu birazdan göreceğiz.
Yerleşik bir adın üzerine yanlışlıkla yazdıysanız del print gibi bir satırla kendi atamanızı silebilirsiniz. Kod hücresinde eski atama kalmışsa sayfayı yenilemek de onu temizler. En güvenlisi, baştan çakışmayan adlar seçmektir.
Türkçe karakterli değişken adları
Python 3 değişken adlarında Türkçe harfleri de kabul eder (adlarda Unicode karakterlere izin verir). Bu yüzden şu kod çalışır:
öğrenci_adı = "Ayşe"Yine de bu derste değişken ve fonksiyon adlarında çoğunlukla ASCII karakterleri kullanacağız. Kabaca söylersek bunlar ç, ğ, ı, ö, ş, ü olmadan İngiliz alfabesinin harfleri, rakamlar ve _ işaretidir:
ogrenci_adi = "Ayşe"Türkçe harf kullanmak yanlış değil. Ama adlardaki ı ile i gibi gözle kolay karışan harfler, başka bir klavye düzeninde yazarken, kodda arama yaparken ve kodu bazı araçlarla paylaşırken gereksiz sorun çıkarabilir. Kullanıcıya gösterilen metinlerde ve veri değerlerinde Türkçe karakterleri kullanmaya devam edeceğiz.
Anlamlı ad seçin
Kod çalışsa bile anlamsız adlar okumayı zorlaştırır:
x = 249.90
y = 2
z = x * yAynı program şu biçimde daha kolay okunur:
birim_fiyat = 249.90
adet = 2
toplam_tutar = birim_fiyat * adetDeğişkenin adı “bu değer ne?” sorusunu cevaplamalı. Biraz uzun ama anlamlı bir ad, tek harfli bir addan çoğu zaman daha iyidir.
Temel veri türleri
Python’da her değerin bir türü vardır. Tür, değerin ne çeşit bir veri olduğunu ve onunla hangi işlemlerin yapılabileceğini belirler. Bu hafta dört temel tür üzerinde duracağız:
| Python türü | Ne tutar? | Örnek |
|---|---|---|
int |
tam sayı | 42, -7, 0 |
float |
ondalıklı sayı | 3.14, 19.5 |
str |
metin (string) | "Samsun", "42" |
bool |
mantıksal değer | True, False |
Aynı görünen değerler farklı türlerde olabilir. type() bir değerin türünü verir. İki satır ne yazar?
Tırnak işaretleri değerin metin olduğunu belirtir. type() sonucu <class 'int'> biçiminde yazar. Şimdilik yalnız tırnak içindeki tür adına bakın.
type() ile türü inceleyin
Aşağıdaki hücreyi çalıştırın. Sonra değerleri değiştirip type() çıktısının nasıl değiştiğine bakın.
Tahmin et: atama sırası sonucu nasıl etkiler?
Aşağıdaki kodu çalıştırmadan önce iki print() çağrısının ne yazdıracağını tahmin edin:
toplam değişkeni hesaplandığı anda birim_fiyat değeri 120 idi. Daha sonra birim_fiyat değişse de toplam kendiliğinden yeniden hesaplanmaz.
Kod izlerken her satırdan sonra “hangi değişken şimdi hangi değeri gösteriyor?” sorusunu sorun.
Aritmetik ifadeler
Python sayılarla temel matematik işlemlerini doğrudan yapabilir. İşlemi gösteren işaretlere operatör denir.
| Yazım | İşlem | Örnek |
|---|---|---|
+ |
toplama | 8 + 2 |
- |
çıkarma | 8 - 2 |
* |
çarpma | 8 * 2 |
/ |
bölme | 8 / 2 |
// |
tam bölme | 17 // 5 |
% |
kalan | 17 % 5 |
** |
üs alma | 2 ** 3 |
Tam bölme, bölümün yalnız tam sayı kısmını verir. Kalan, bölmeden geriye kalan sayıdır. Hücredeki dört satır ne yazar?
/ işlemi neden 4.0 verdi?
Python’da / ile bölmenin sonucu her zaman float olur. Bölme kalansız olsa bile bu değişmez. Sonucun tam sayı olması gerekiyorsa // operatörü kullanılır. 10 / 5 ile 10 // 5 aynı büyüklükte sonuç verir (2.0 ve 2), ama ikisi ayrı işlemlerdir ve sonuç türleri de farklıdır.
Birden fazla işlem varsa Python matematikteki işlem önceliğini uygular: çarpma ve bölme, toplama ve çıkarmadan önce yapılır. Parantez kullanırsanız hangi işlemin önce yapılacağı açıkça görünür ve kod daha kolay okunur. Ortalama kaç çıkar?
float sonuçlarda uzun ondalıklar
Bilgisayar sayıları ikili sistemde (yalnızca 0 ve 1 ile) saklar ve 0.1 gibi birçok ondalıklı sayıyı bu sistemde tam olarak tutamaz. Bu yüzden bazı hesapların sonucu, beklediğiniz değere çok yakın olsa da ekranda fazladan basamaklarla görünebilir. İki satır ne yazar?
Python toplamayı “yanlış yapmıyor”. Bilgisayar float değerleri yaklaşık olarak tuttuğu için sonuç böyle çıkıyor. Bu fark özellikle para, ölçüm ve oran hesaplarında karşınıza çıkabilir. İki float sonucu == ile karşılaştırırken bunu aklınızda tutun.
İlk satır 0.30000000000000004 yazar. 0.1 ve 0.2 tam tutulamadığı için toplam 0.3’ün biraz üstüne düşer. İkinci satır False yazar: == bu çok küçük farkı da görür.
Bu hafta değerin nasıl hesaplandığıyla ilgileniyoruz. Para gibi değerleri ekranda 257.14 TL biçiminde göstermeyi 8. haftada f-string’lerle (metnin içine değer yerleştirmenin bir yolu) öğreneceğiz.
Bu sayfadaki alıştırmalarda ayrı bir Check düğmesi yok. Run Code düğmesi kodunuzu çalıştırır. Alıştırmanın bir kontrolü varsa kodunuz aynı anda kontrol edilir ve sonuç hücrenin altında görünür.
Alıştırma: dakikayı saat ve dakikaya ayırın
135 dakika, 2 saat 15 dakikadır. Aşağıdaki programı tamamlayın. // ile tam saat sayısını, % ile geriye kalan dakikayı bulabilirsiniz.
Kalanı bulmak için % kullanın: bir_deger % 60.
toplam_dakika = 135
saat = toplam_dakika // 60
dakika = toplam_dakika % 60
print(saat)
print(dakika)input() ile kullanıcıdan veri alma
Geçen hafta girdi kavramını tanımış ama input() kullanmamıştık. Artık değişkenleri bildiğimiz için kullanıcıdan alınan değeri saklayabiliriz:
ad = input("Adınız: ")
print("Merhaba", ad)input() parantez içindeki iletiyi ekrana yazar, kullanıcının klavyeden yazıp Enter’a bastığı değeri alır ve bu değeri metin (str) olarak verir.
Geçen haftadan hatırlayın: print() içine virgülle verilen birden fazla değer varsayılan olarak aralarında bir boşlukla yazdırılır. Bu nedenle print("Merhaba", ad) çıktısında metin ile ad arasına ayrıca boşluk karakteri eklememiz gerekmez.
input() çalışmaz
Bu sayfadaki hücreler Python’ı tarayıcının içinde çalıştırır. Bu ortam klavyeden terminaldeki gibi girdi okuyamaz. Bu yüzden input() kullanan bir hücre OSError: [Errno 29] I/O error hatası verebilir. input() örneklerini kitapta düz kod bloğu olarak göreceğiz, onları kendi bilgisayarınızda çalıştırabilirsiniz. Tarayıcıdaki alıştırmalarda ise kullanıcıdan gelen değeri bir değişkene yazarak simüle edeceğiz, yani taklit edeceğiz.
Tarayıcıda girdi akışını simüle edin
Aşağıdaki girdi_metni değişkenini, kullanıcının input() ile yazdığı değer gibi düşünün. Değeri kendi adınızla değiştirip hücreyi çalıştırın:
Gerçek bir .py dosyasında aynı akış şöyle yazılır:
ad = input("Adınız: ")
print("Merhaba", ad)İki örnekte de fikir aynı: dışarıdan gelen metin bir değişkende saklanır ve programın sonraki adımlarında kullanılır.
Kullanıcı sayı yazsa bile neden toplama yapılamaz?
Aşağıdaki kod ilk bakışta doğru görünebilir:
yas = input("Yaşınız: ")
gelecek_yas = yas + 1Fakat yas bir str, 1 ise bir int değeridir. Python bu iki farklı türü + ile doğrudan toplayamaz ve TypeError verir.
İki taraf da metin olsaydı hata çıkmazdı, ama toplama da yapılmazdı. + iki metni yan yana ekler: "19" + "1" sonucu "191" olur.
Önce metni sayıya çevirmemiz gerekir. Bir değeri başka bir türe çevirmeye tür dönüşümü (type conversion) denir:
yas = int(input("Yaşınız: "))
gelecek_yas = yas + 1
print(gelecek_yas)Tarayıcıda aynı dönüşüm fikrini input() olmadan deneyebiliriz. Üç satır ne yazar?
girdi_metni bir strdir. int(girdi_metni) ise bu metnin gösterdiği sayıyı int olarak verir.
Dönüşümü unutunca her zaman hata almazsınız. Kullanıcı 5 adet sipariş verdi ve bu değer bir metin olarak geldi. Çalıştırmadan önce iki satırın ne yazacağını tahmin edin:
* bir metinle bir tam sayı arasında çarpma yapmaz, metni o sayı kadar yan yana yazar. Program hata vermeden devam ettiği için bu yanlışı fark etmek TypeError’dan zordur. İki metni çarpmaya çalışırsanız ("5" * "3") Python yine TypeError verir.
İlk satır 555 yazar: "5" metni üç kez yan yana gelir. İkinci satır önce "5" metnini 5 sayısına çevirir, sonra çarpar ve 15 yazar.
Ondalıklı değerler için float() kullanılır:
boy = float(input("Boyunuz (metre): "))
print(boy)int("on dokuz") ya da float("abc") gibi dönüşümler başarısız olur ve Python ValueError verir. int() yalnız rakamlarla yazılmış bir metni sayıya çevirebilir. Bu hafta kullanıcının geçerli bir değer yazdığını varsayıyoruz. Geçersiz girdiyle ne yapılacağını 3. haftada koşullarla, 13. haftada istisnalarla (program çalışırken çıkan hatayı yakalamanın bir yolu) göreceğiz.
İncele ve düzelt: tür uyuşmazlığı
Aşağıdaki program bilerek hatalı yazıldı. Program "19" metnini sayıya çevirip bir yıl sonraki yaşı hesaplamalı.
Kodu, 20 yazdıracak biçimde düzeltin.
int(yas_metni), "19" metnini 19 tam sayısına çevirir.
yas_metni = "19"
gelecek_yas = int(yas_metni) + 1
print(gelecek_yas)Karşılaştırmalar bool verir
Karşılaştırmanın sonucu her zaman True ya da False’tur. sicaklik 18 iken dört satır ne yazar?
Sık kullanılan karşılaştırmalar:
| Yazım | Anlam |
|---|---|
== |
eşit mi? |
!= |
eşit değil mi? |
< |
küçük mü? |
> |
büyük mü? |
<= |
küçük ya da eşit mi? |
>= |
büyük ya da eşit mi? |
Karşılaştırmada tür de önemlidir. "25" == 25 sonucu False’tur, çünkü metin ile sayı hiçbir zaman eşit sayılmaz.
Bu sonuçları gelecek hafta if ile programın hangi yolu izleyeceğine karar vermek için kullanacağız.
Mantıksal ifadeler: and, or, not
Karşılaştırmaları birleştirmek ya da sonucu tersine çevirmek için Python’ın and, or ve not anahtar sözcüklerini kullanırız:
and: iki taraf daTrueiseTrueolur.or: taraflardan en az biriTrueiseTrueolur.not: sonucu tersine çevirir.
Çalıştırmadan önce üç satırın ne yazacağını tahmin edin:
Alıştırma: üyelik koşulunu birleştirin
Bir spor merkezinde indirimden yararlanmak için kişinin en fazla 25 yaşında ve öğrenci olması gerekiyor. Aşağıdaki indirim_uygun değişkenini doğru mantıksal ifadeyle hesaplayın.
İfade şu iki parçayı birlikte kullanmalı: yas <= 25 ve ogrenci_mi.
yas = 22
ogrenci_mi = True
indirim_uygun = yas <= 25 and ogrenci_mi
print(indirim_uygun)Soruya dönelim: gezi hesabı Python’da
Bölümün başında gezi programının adımlarını yazıp dört durumla denemiştiniz. Python’daki karşılıkları şöyle:
| Durum | Sözde kodda | Python’da | Dikkat |
|---|---|---|---|
100 ya da yüz yazıldı |
“Katılımcı sayısını al” | katilimci = int(input("Katılımcı sayısı: ")) |
input() her zaman str verir. int() olmadan "100" // 45 satırı TypeError verir. int("yüz") ise ValueError verir |
100 kişi |
“Katılımcı sayısını 45’e böl” | katilimci // 45 dolu otobüs sayısını, katilimci % 45 son otobüsteki kişi sayısını verir |
100 / 45 sonucu 2.2222222222222223 olur. Otobüs sayısı da kişi sayısı da tam sayıdır |
5 kişi daha geldi |
“Sayıyı güncelle, ücreti yeniden hesapla” | katilimci = 105 atamasından sonra kisi_basi = toplam_kira / katilimci satırı yeniden çalışmalı |
Atama o anki değeri saklar. kisi_basi kendiliğinden güncellenmez |
105 kişiyle denetim |
“Ücret çarpı kişi, kiraya eşit mi?” | kisi_basi * katilimci == toplam_kira |
== karşılaştırır ve bool verir. Burada = yazılırsa Python hata verir, çünkü atamanın sol tarafında işlem olamaz. Sonuç False çıkar: kisi_basi bir float ve yaklaşık tutuluyor |
Listenizi tabloyla karşılaştırın. “Sayıyı al” adımında yazıyı sayıya çeviren bir adım yoksa Python da çevirmez. “45’e böl” yazdıysanız hangi bölmeyi kastettiğinizi düşünün: dolu otobüs için tam bölme, son otobüs için kalan gerekir. Kaç otobüs kiralanacağını bulmak için bir kural daha gerekiyor: “son otobüste kişi varsa bir otobüs daha kirala”. Bunu 3. bölümde koşullarla yazacağız.
Değiştir: küçük bir alışveriş hesabı
Aşağıdaki program aynı üründen iki adet alındığında kargoyla birlikte ödenecek tutarı hesaplıyor:
Şunları sırayla deneyin. Her değişiklikten önce beklediğiniz sonucu not edin, sonra çalıştırın:
adetdeğerini3yapın.- Kargoyu ücretsiz yapmak için
kargodeğerini değiştirin. odenecekhesabına20TL sabit indirim ekleyin.
Bu alıştırmada yeni bir yazım yok. Bir değeri değiştirince ona bağlı hesapların nasıl değiştiğini izleyeceksiniz.
Hücreyi her çalıştırdığınızda program baştan çalışır. adet değişince urunler_toplami da yeni değerle yeniden hesaplanır. “Tahmin et” örneğindeki toplam ise eski değerde kalmıştı, çünkü birim_fiyat hesaptan sonra değişmişti.
Üret: gezinin otobüs hesabı
Bölümün başındaki gezi programını yazın. Kayıt formundan "105" metni geldi. Bu hafta henüz koşul yazmadığımız için son otobüste kişi olduğunu varsayın: kiralanacak otobüs sayısı, dolu otobüs sayısının bir fazlası.
Programınız şu koşulları sağlamalı (kabul kriterleri):
katilimci_metniönceint()ile sayıya çevrilmeli.- Dolu otobüs sayısı
//ile, son otobüsteki kişi sayısı%ile hesaplanmalı. - Toplam kira, kiralanan otobüs sayısı ile
otobus_kirasi’nın çarpımı olmalı. Kişi başı ücret, toplam kiranın katılımcı sayısına bölümü olmalı. - Dolu otobüs sayısı, son otobüsteki kişi sayısı ve kişi başı ücret
print()ile yazdırılmalı. - Son satırda
kisi_basi * katilimci == toplam_kiradenetimi yazdırılmalı.
Bu değerlerle 2 dolu otobüs, son otobüste 15 kişi ve 257.14285714285717 TL kişi başı ücret çıkmalı. Denetim satırı False yazar. Bu, formülünüzün yanlış olduğunu göstermez: kişi başı ücret yaklaşık tutulduğu için çarpım 27000.000000000004 olur. Sonucu iki ondalık basamakla göstermeyi 8. haftada öğreneceğiz. katilimci_metni’ni "90" yaparsanız boş bir otobüs fazladan kiralanır. Bunu 3. bölümde koşulla düzelteceğiz.
Önce katilimci = int(katilimci_metni) satırını yazın. Sonra katilimci // otobus_kapasitesi ve katilimci % otobus_kapasitesi ile iki sayıyı bulun.
katilimci_metni = "105"
otobus_kapasitesi = 45
otobus_kirasi = 9000
katilimci = int(katilimci_metni)
dolu_otobus = katilimci // otobus_kapasitesi
son_otobus = katilimci % otobus_kapasitesi
otobus_sayisi = dolu_otobus + 1
toplam_kira = otobus_sayisi * otobus_kirasi
kisi_basi = toplam_kira / katilimci
print("Dolu otobüs:", dolu_otobus)
print("Son otobüste:", son_otobus)
print("Kişi başı:", kisi_basi)
print(kisi_basi * katilimci == toplam_kira)Yerel Python ortamında kısa input() uygulaması
Kendi bilgisayarınızdaki (yerel) Python yorumlayıcısı, terminalde çalışırken input() ile klavyeden girdi okuyabilir. Aşağıdaki programı VS Code’da yeni bir dosyaya, örneğin girdi.py adıyla kaydedin ve 1. haftadaki gibi çalıştırın. Program soru sorunca cevabı terminale yazıp Enter’a basın:
ad = input("Adınız: ")
yas = int(input("Yaşınız: "))
print("Merhaba", ad)
print("Gelecek yıl yaşınız:", yas + 1)Programı en az iki farklı ad ve yaş değeriyle çalıştırın. Ardından int() dönüşümünü kaldırıp ne olduğuna bakın. Son olarak yaşı rakamla değil yazıyla, on dokuz diye girin.
Gezi programını da aynı yolla deneyebilirsiniz: Üret’teki çözümde katilimci_metni = "105" satırını katilimci_metni = input("Katılımcı sayısı: ") yapın ve bir kez yüz yazın.
Tek sayfa özet
Bu hafta programlarımız yalnızca sabit metin yazdırmakla kalmadı; veri tutmaya ve hesap yapmaya başladı.
- Ekranda aynı görünen
"25"ile25farklı türdedir. Değerle hangi işlemin yapılacağını tür belirler. - Değişken, bir değere verdiğimiz addır. Gezi programındaki katılımcı sayısı, kira ve kişi başı ücret birer değişkendir.
- Atama sırasında sağ taraf hesaplanır ve sonuç sol taraftaki değişken adına bağlanır. Sonradan değişen bir değer, ondan önce hesaplanmış sonucu kendiliğinden güncellemez.
- Python anahtar sözcükleri değişken adı olamaz;
print,input,list,strgibi yerleşik adları değişken adı yapmak ise hazır fonksiyonları gölgeler. - Python 3 Türkçe harfli adlara izin verse de bu derste adlarda çoğunlukla ASCII harfler kullanacağız; böylece
ıileigibi harfler karışmaz ve kod her klavyede kolayca yazılır. int,float,strveboolfarklı veri türleridir./ile bölmenin sonucu, bölme kalansız olsa bilefloattur.floatdeğerler bazı ondalıklı sayıları yaklaşık tuttuğu için sonuçta küçük gösterim farkları görülebilir.input()kullanıcı girdisini metin (str) olarak verir.- Kod hücrelerinde
input()terminaldeki gibi çalışmadığı için alıştırmalarda girdiyi bir değişkenle veriyoruz. - Girdiyle hesap yapmak için önce
int()ya dafloat()ile tür dönüşümü yapmak gerekir. Dönüşüm unutulursa"5" * 3hata vermeden"555"olur. Rakam olmayan bir metin dönüştürülürseValueErrorçıkar. - Aritmetik bir ifade hesaplanıp tek bir değere iner; işlem önceliği sonucu etkiler.
//bölümün tam sayı kısmını,%kalanı verir:105kişi45’lik otobüslere2dolu otobüs ve15kişi olarak dağılır.- Karşılaştırmanın sonucu
Trueya daFalseolur. andveormantıksal sonuçları birleştirir,notsonucu tersine çevirir.- Kod izlerken her satırdan sonra hangi değişkenin hangi değeri gösterdiğine bakın.
Bir sonraki bölümde sonucu True ya da False olan bu ifadeleri kullanarak programın hangi durumda hangi kodu çalıştıracağına karar vereceğiz.
Bu bölümün kazanımları
Bu bölümü bitiren öğrenci:
- Atamada sağ tarafın önce hesaplandığını açıklar ve değişkenin o anki değerini izler.
int,float,strvebooltürlerini birbirinden ayırt eder.input()sonucunun metin olduğunu ve sayısal işlem için dönüşüm gerektiğini açıklar./,//ve%işlemlerinin sonucunu ve sonuç türünü tahmin eder.- Karşılaştırma ve mantıksal ifadelerin
True/Falsesonucunu belirler. =ile==işaretlerini ayırt eder ve yerleşik adları gölgelemenin sonucunu açıklar.floatdeğerlerin yaklaşık tutulmasının çıktıdaki etkisini yorumlar.