True veya False değerlerine göre programın ilerlemesi değiştirilebilir. Bu değişimi kontrol etmek için if kodu kullanılır. Eğer an if’den sonra gelen koşul gerçekleşirse if altında yazılmış olan kod bloğu çalışmaya başlar. Eğer koşul gerçekleşmezse if altında yazılmış olan kod bloğu çalışmaz ve program if bloğunun bittiği satıra geçer ve çalışmaya devam eder.
Eğer if komutundan sonra gelen koşul gerçekleşmez, else komutu altında yazılmış olan bir kod bloğu var ise o kod bloğu çalışır. else komutu if komutundan sonra yazılmalıdır ve else komutu tek başına kullanılamaz.
Eğer if komutundan sonra gelen koşul gerçekleşmezse ve yeni bir koşul daha yazılmak isteniyorsa elseif kalıbı kullanılır.
Yukarıda yazan tüm komutların sonuna : koyulmalıdır.
5 3'ten büyüktür. True
Bu satır if koşulundan bağımsızdır.
42 111'den küçüktür. True
25 25'e eşittir. True
Döngüler
İki tür temel döngü vardır. Bunlar for ve while döngüleridir. Bu iki döngü satırının sonunda : ifadesi kullanılır ve altında yazılacak olan kod bloğu 4 boşluk koyularak yazılr.
for döngüsü için bir yineleyiciye (iterator) ihtiyaç vardır. Bu yineleyicinin sınırları range() fonksiyonuyla belirtilir.
for it1 inrange(10):print(it1)
0
1
2
3
4
5
6
7
8
9
while döngüsü için bir koşula ihtiyaç vardır. Bu koşul sağlanana kadar döngü içerisinden çıkılmaz.
Eğer while döngüsünü durduracak bir koşul yazılmazsa program sonsuza kadar çalışır. Eğer bir değişkene atama yapıyorsanız bilgisayarınız kitlenebilir. Biz çoğunlukla for döngüsü kullanacağız.
break komutu ile döngüden çıkmak mümkündür. continue komutu ile bir sonraki adıma geçilir.
for it2 inrange(1,30):if it2%5!=0:print(f"{it2}, sayısı 5'e bölünmez.")continueelse:print(f"{it2}, sayısı 5'e bölünür.")if it2 >14:print("Döngü 14'ten sonrası için sonlandı.")break
1, sayısı 5'e bölünmez.
2, sayısı 5'e bölünmez.
3, sayısı 5'e bölünmez.
4, sayısı 5'e bölünmez.
5, sayısı 5'e bölünür.
6, sayısı 5'e bölünmez.
7, sayısı 5'e bölünmez.
8, sayısı 5'e bölünmez.
9, sayısı 5'e bölünmez.
10, sayısı 5'e bölünür.
11, sayısı 5'e bölünmez.
12, sayısı 5'e bölünmez.
13, sayısı 5'e bölünmez.
14, sayısı 5'e bölünmez.
15, sayısı 5'e bölünür.
Döngü 14'ten sonrası için sonlandı.
Kullanıcıdan Girişlerin Okunması
input() Komutunu kullanarak kullanıcı ile etkileşime geçilir. Bu komut içerisine yazılan kısmı ekrana yazıp, kullanıcının cevabını terminalden okur ve istenilen değişkene atar.
Önemli
input komutu ile okunun tüm girdiler “string” formatında okunur.
input1 =input(f"Bir tam sayı giriniz:")print(f"Girilen sayı= {input1}")int1=int(input1)print(f"Girilen sayının iki katı = {int1*2}")
Bir Dosyadan Veri Okuma ve Dosyaya Yazma
Bir dosyayı okumak için o dosyayı önce açıp sonra kapatmak gerekmektedir. Eğer bir dosya kod tarafından açılıp ardından kapanmadı ise yapılan işlemler boşa gider. Dosya açıp kapama işlemi open() ve close() fonksiyonlarıyla yapılır. Ayrıntılı bilgi için bu linke tıklayınız.
Bir dosyayı with open() komutuyla açmak daha kolaydır. Bu komut dosya açıldıktan sonra otomatik olarak kapanır. Ayrıntılı bilgi için bu linke tıklayınız. Dosya açıldıktan sonra bir obje oluşturulur. Bu obje üzerinden dosya okunur veya dosyaya yazılır.
Dosyayı nasıl açtığımızı belirlemek için open() fonksiyonuna bir argüman vermemiz gerekir. Dosyadan okumak için r argümanı ile açılmadır.
Dosyayı açtıktan sonra içindeki tüm veriyi okumak için read() fonksiyonu kullanılır.
Dosyadaki veriyi satır satır okuyup liste halinde tutmak için readlines() fonksiyonu kullanılır.
Dosyadaki veriyi satır satır okumak için readline() fonksiyonu kullanılır. Bu fonksiyon her çağrıldığında bir satır okur.
Test için “denemeVeri.txt” adında bir dosya oluşturun ve içine aşağıdaki veriyi yazın.
Uyarı
Bu kodun çalışması için aynı klasörün içerisinde “denemeVeri.txt” dosyası olması gerekir.
withopen("denemeVeri.txt", "r") as asddasd:print(asddasd.read())
withopen("denemeVeri.txt", "r") as file1: satirlar= file1.readlines() # Satırları okur.print(satirlar)
Her satırın sonunda alt satıra geç anlamına gelen ‘’ karakteri vardır. Eğer bir satırın sonunda ‘’ karakteri varsa o satırın sonunda bir alt satıra geçilmiştir.
withopen("denemeVeri.txt", "r") as file1: satirlar= file1.readlines() # Satırları okur.for satir in satirlar:print(satir) # Satırları ekrana yazdırır.print("--------------------")# veyafor itSatir inrange(len(satirlar)):print(satirlar[itSatir])
Dosyanın içindeki veriyi satır satır okumak için readline() fonksiyonu kullanılır. Bu fonksiyon her çağrıldığında bir satır okur.
withopen("denemeVeri.txt", "r") as file1:print(file1.readline()) # Dosyanın ilk satırını okur.print(file1.readline()) # Dosyanın ikinci satırını okur.
readline() fonksiyonu ile dosyanın içindeki veriyi satır satır okumak için aşağıdaki kodu kullanabilirsiniz.
withopen("denemeVeri.txt", "r") as file1: a=file1.readline(4) b=file1.readline(4)print(a,b) # Dosyanın ilk satırının ilk 5 karakterini okur.
Not
readline() fonksiyonu ile readlines() fonksiyonu arasındaki fark readline() fonksiyonu her çağrıldığında bir satır okurken readlines() fonksiyonu dosyanın tüm satırlarını okur.
Dosyaya yazmak için ise iki farklı yöntem vardır.
w argümanı ile açtığımızda dosya içeriği silinir ve dosyaya yazmaya başlanır. Eğer dosya yoksa yeni bir dosya oluşturulur.
a argümanı ile açtığımızda dosya içeriği silinmez ve dosyaya sondan eklemeye başlar. Eğer dosya yoksa yeni bir dosya oluşturulur.
Yazılacak veri write() fonksiyonu ile dosyaya yazılır.
# "w" modu ile dosya açıldı ve veri yazıldı.withopen("denemeVeri2.txt", "w") as file2: file2.write("Birinci veri.\n")
Dosyanın sonuna yazmak için a argümanı kullanılır.
# "a" modu ile dosya açıldı ve veri eklendi.withopen("denemeVeri2.txt", "a") as file2: file2.write("Bu dosyaya yeni bir satır eklendi.")# İçeriği göster.withopen("denemeVeri2.txt", "r") as file2:print(file2.read())
Önemli
w modu ile dosya açıldığında dosya içeriği silinir ve dosyaya yazmaya başlanır. Eğer dosya yoksa yeni bir dosya oluşturulur.
# "w" modu ile dosya açıldı ve tüm içerik silindi!.withopen("denemeVeri2.txt", "w") as file2: file2.write("İkinci veri.")# İçeriği göster.withopen("denemeVeri2.txt", "r") as file2:print(file2.read())