Python Ders Notları

Kodları online olarak test etmek için:
Online Python Compiler 🔗
2. dönem 2. sınav soruları daha çok İf kodu başlığından sonra gelecektir. Konuya gitmek için tıklayın.

01.py # Python Giriş

    
# bu bir yorum/açıklama satırı
# yorum/açıklama satırı yazmak için satır başına hastagh(#) işareti koyuyoruz.
# yorum/açıklama satırları kod olarak çalışmaz.

"""
birden 
fazla 
satırla 
yorum satırı (üç kere çift tırnak)
"""

# kod yazarken özel durumlar hariç(if kodu gibi) kodun başına boşluk koyulmaz !!!
# print kodu ekrana yazdırır. 
print("merhaba")  
# Çıktı: merhaba

# print("merhaba") 
# bu kod çalışmaz. Çünkü başına hastagh konulup yorum/açıklama satırı haline getirilmiş.

    
    

# Değişkenler - 1

    
adi = "çağlar"  # tırnak içinde tanımlarsak tipi metinsel(string) olur.
soyadi = "karabulut" 

print(adi , soyadi)  #  str ifadeleri yanyana yazarken virgül kullanılır.
# Çıktı: çağlar karabulut  
# Olur. çünkü string değişkenler toplanmaz yanyana yazılır.


# Değişkenler - 2

    
a = "10"  # tırnak içinde tanımlarsak tipi metinsel(string) olur.
b = "5" 
print(a + b)  #  "10" + "5"
# Çıktı: 105  
# Olur. çünkü string değişkenler toplanmaz yanyana yazılır.


# Değişkenler - 3

         
# tırnak olmadan tanımlama yaparsak değişkenin tipi sayısal olur.
a = 20 
b = 30
toplam = a + b  
# matematikteki denklemlerin aksine yazılımda sağdan sola atama yapılır.
# yani a + b = toplam ifadesi yanlış olur.

print(toplam)  
# Çıktı: 50 
# toplam değişkenine atadığımız değer ekrana yazdırıldı.
        
    

# Değişkenler - 4

type()
         
a = "10"  # str olur
b = 5   # int olur

# değişkenin str mi int mi olduğunu yani türünü/tipini öğrenme
# type() kodu değişkenin türünü/tipini verir.
print(type(a)) 
# Çıktı: class 'str' 
# Str çünkü tırnak içinde.

print(type(b)) 
# Çıktı: class 'int' 
# int çünkü tırnak yok.

        
    

# Değişkenler - 5

         
# Değişken isimlendirmesi küçük harflerle başlar. Boşluk, özel, Türkçe karakter vs kullanılmaz.
# İsimlendirmede boşluk yerine tire/alt tire veya camelCase türünde yazılabilir.

ogr1Adi = "çağlar"  
ogr1Not = 85  

ogrenciAdSoyad = "çağlar karabulut" # camelCase örnek

ogrenci_ad_soyad = "çağlar karabulut" # Alt tire örnek
    
    
    

# Değişkenler - 6

         
# str ile int ifade toplanamaz.

a = "10"
b = 5
print(a + b) 
# HATA! : [can only concatenate str (not "int") to str] : str ifade ile int ifade toplanamaz

# iki değişken de str olsaydı toplama işlemi birleşik yazdırır.
x = "6"
y = "6"
print(x + y)
# Çıktı: 66
# birleşik olarak ekrana yazar.

# ancak string ifadeler 
print(a , b) 
# Çıktı: 10 5
# virgül varsayılan olarak araya bir boşluk koyar.

# boşluksuz birleştirmek için
print(a , b , sep="") 
# Çıktı: 105

        
    

# Değişkenler - 7

         
# iki değişken de str olsaydı toplama işlemi birleşik yazdırır.
x = "6"
y = "6"

print(x + y)
# Çıktı: 66
# birleşik olarak ekrana yazar.

        
    

# Değişkenler - 8

         
a = "10"
b = "5"

# string ifadeleri yazdırırken virgül kullanılır.
print(a , b) 
# Çıktı: 10 5
# virgül varsayılan olarak araya bir boşluk koyar.

# boşluksuz birleştirmek için
print(a , b , sep="") 
# Çıktı: 105

# sep ayıraç olarak kullanılır.
# örneğin kelimelerin arasına alt tire koymak için sep="_"
print(a , b , sep="_") 
# Çıktı: 10_5

        
    

# Değişkenler - 9

         
# string ifadeleri birleştirirken aralarına açıklama yazma
adi = "çağlar"
soyadi = "karabulut"
yas = 20

print("Adı =", adi, "Soyadı =", soyadi, "Yaşı =", yas)
# Çıktı: Adı = çağlar Soyadı = karabulut Yaşı = 2
        
    

# Değişkenler - 10 - ÖrnekSınavSorusu - 1

         
# Soru: 
taban = 10
yukseklik = 5
sonuc = (taban * yukseklik) / 2
# verilen değişkenlere göre ekrana "üçgenin alanı= 25.0 metrekare" yazdıran print kodunu yazın.

# Çözüm:
print("üçgenin alanı=", sonuc, "metrekare")
# Çıktı: üçgenin alanı= 25.0 metrekare

        
    

# Değişkenler - 11 - Dönüşümler

int()
             
a = "10"
b = 5
# bu iki değişkeni print(a + b) kodu ile toplarsak: 
# HATA! : [can only concatenate str (not "int") to str] : str ifade ile int ifade toplanamaz
# hatasını alacağımızı Değişkenler - 1.4 konusunda görmüştük.

# bu iki değişkeni sayısal olarak toplayabilmek için:
# 10 + 5 = 15 sonucunu elde etmek için metinsel(str) olan a değişkenini sayısala(int) dönüştürmemiz gerekir.

print(int(a) + b) # Çıktı: 15 
# int() kodu metinsel değişkeni sayısala dönüştürür.

            
        

# Değişkenler - 12 - Dönüşümler - 2

str()
             
# önceki örneğin tersi olarak;

a = "10"
b = 5

# bu iki değişkeni metinsel olarak yanyana yazdırmak için:

# str() kodu sayısal değişkeni metinsele dönüştürür.
print(a + str(b)) 
# Çıktı: 105 
# Değişken Tanımlama - 1.5 de gördüğümüz üzere metinsel ifadeleri yazdırırken artı(+) kullanırsak birleşik olarak yazar.


# virgül ile yazsaydık:
print(a , str(b)) 
# Çıktı: 10 5 
# arasına bir karakter boşluk ekleyecekti. Değişken Tanımlama - 1.6 da gördük.

            
        

# Değişkenler - 13 - ÖrnekSınavSorusu - 2

             
# Soru: 
a = "12"
b = 3
# verilen değişkenler ile 15 çıktısını veren print kodunu yazın.

# Çözüm:
# 12 + 3 = 15 sonucunu elde etmek için metinsel(str) olan a değişkenini sayısala(int) dönüştürmemiz gerekir.
print(int(a) + b) # Çıktı: 15 
# int() kodu metinsel değişkeni sayısala dönüştürür.

            
        

# Değişkenler - 13 - ÖrnekSınavSorusu - 2.1

Aşağıda verilen kodun çıktısı nedir?
             
print("6 kere 7 sorusunun cevabı=", "6" * "7")

            
        
Cevap:
Hata verir. Çünkü "6" ve "7" metinsel ifade olduğundan çarpılmaz.

# Değişkenler - 14 - ÖrnekSınavSorusu - 3

     
# Soru: 
a = "5"
b = 3
# verilen değişkenler ile 53 çıktısını veren print kodunu yazın.

# Çözüm:
print(a + str(b))   
# Çıktı: 53 
# str() kodu sayısal değişkeni metinsele dönüştürür.

# 5 3 çıktısını isteseydi
print(a , str(b)) 
# Çıktı: 5 3 
# artı(+) yerine virgül(,) koyardık. Değişkenler - 12 - Dönüşümler - 2 konusunda görmüştük.
        
    

# Değişkenler - 15

             
# Bir değişkene defalarca farklı değerler atayabiliriz.
x = 10
print(x) # Çıktı: 10
    
x = 20
print(x) # Çıktı: 20
    
x = 30
print(x) # Çıktı: 30
    
x = 40
print(x)   # Çıktı: 40
# değer her zaman son atanan değer olacaktır.
    
del x   # x değişkenini hafızadan siler.
print(x)  
# HATA! : name 'x' is not defined - x bulunamadı


# Değişkenler - 16 - ÖrnekSınavSorusu - 4

Aşağıda verilen programın çıktısı kaçtır?
         
taban = 10
yukseklik = 5
sonuc = (taban * yukseklik) / 2
sonuc = sonuc * 2 
taban = 5
yukseklik = (taban / sonuc) * 2
print(taban) 


Çıktı:
5

olur çünkü taban değişkenine işlemlerden sonra 5 değeri atanmış. Önceki işlemlerde aldığı değerlerin geçerliliği kalmaz.

# Değişkenler - 17

         
# değişkenlere çoklu değer atama 
ogr1 = 80 
ogr2 = 85
ogr3 = 90
# bu ifadeler ile

ogr1, ogr2, ogr3 = 80, 85, 90  
# bu ifadeler aynı şey.
# tek tek alt alta tanımlamak yerine yanyana yazılabiliyor.

print("ilk öğrenci:", ogr1, "ikinci öğrenci:", ogr2, "üçüncü öğrenci:", ogr3) 
# Çıktı: ilk öğrenci: 80 ikinci öğrenci: 85 üçüncü öğrenci: 90
   
# Satır satır yazdırma
print("ilk öğrenci:", ogr1)  
print("ikinci öğrenci:", ogr2)  
print("üçüncü öğrenci:", ogr3)  
# Çıktı: ilk öğrenci: 80
# Çıktı: ikinci öğrenci: 85
# Çıktı: üçüncü öğrenci: 90


# üç farklı satırda üç kere print kodu kullanmak yerine tek print kodu ile her satır bitimine denk gelecek yere \n yazılarak satır atlanır.
print(" ogr1:", ogr1, "\n ogr2:", ogr2, "\n ogr3:", ogr3)

"""
Çıktı:
 ogr1: 80 
 ogr2: 85 
 ogr3: 90
"""
        
    

# Değişkenler - 18

float
virgüllü, rasyonel, ondalık sayılar
         
cevre = 22
cap = 7
pisayisi = cevre / cap
print("Pi Sayısı=", pisayisi)

        
    
Çıktı:
Pi Sayısı= 3.14285714285714

Dikkat! programlamada 3 virgül 14 DEĞİL 3 nokta 14

type() kodu ile türünü/tipini öğrenelim.
         
cevre = 22
cap = 7
pisayisi = cevre / cap
print("Pi Sayısı=", pisayisi)
print("Pi Sayısının tipi=", type(pisayisi))

    
Çıktı:
Pi Sayısı= 3.14285714285714
Pi Sayısının tipi= class float

ondalık sayıların tipi Float.
Dikkat: virgül değil nokta ile ayrılır !!!

# Değişkenler - 19 - ÖrnekSınavSorusu - 5

Aşağıda verilen kodda sonuc değişkeninin tipi/türü nedir?
         
taban = 11
yukseklik = 5
sonuc = (taban * yukseklik) / 2
print("üçgenin alanı=", sonuc, "metrekare")

        
    
Cevap:
class 'float'

olur. Çünkü:
tipini/türünü öğrenmek için type() kodunu kullanalım
print(type(sonuc))
Çıktı: class 'float'
sonuc değişkenin türü float tır çünkü ondalık sayıdır.

# İfadeler ve Aritmatik İşlemler - 1

    
# yuvarlama
x = 93.34839
y = 93.8573
print(int(x))  # Çıktı: 93 
# direkt int e dönüştürür, noktadan sonrasını yok sayar

print(int(y))  # Çıktı: 93

print(round(x))  #  Çıktı: 93 
# alta yuvarladı
print(round(y))  #  Çıktı: 94 
# üste yuvarladı

print(round(x, 2))  # Çıktı: 93.35 
# virgülden sonra kaç karakter gösterilecek

print(round(x, 3))  # Çıktı: 93.348
print(round(x, 0))  # Çıktı: 93.0
print(round(x, 1))  # Çıktı: 93.3
print(round(x, -1))  # Çıktı: 90.0
    

# İfadeler ve Aritmatik İşlemler - 1.1 - ÖrnekSınavSorusu - 6

Aşağıda verilen kodun çıktısı nedir?
    
x = 93.34839
y = 93.8573
print(int(x))
print(round(y))
print(round(x))


Cevap:
93
94
93
olur.
Çünkü:
print(int(x)) kodunun Çıktısı: 93
direkt int e dönüştürür, noktadan sonrasını yok sayar
print(round(y)) kodunun Çıktısı: 94
üste yuvarladı
print(round(x)) kodunun Çıktısı: 93 olur.

# İfadeler ve Aritmatik İşlemler - 1.1 - ÖrnekSınavSorusu - 6.1

Aşağıda verilen kodun çıktısı nedir?
 
x = 12.648
y = 3.857
sayi1 = int(x) + round(x) + round(y)
sayi2 = int(round(x) / round(y)) + 1
print(round(sayi1 / sayi2))
    

Cevap:
5
olur. Çünkü:
int(x) = 12 olur. (ondalık kısım silinir)
round(x) = 13 olur. (üste yuvarlar)
round(y) = 4 olur. (alta yuvarlar)

sayi 2 = int(round(x) / round(y)) + 1 ise
int( 13 / 4 ) + 1
int( 3.25 ) + 1
3 + 1 = 4 olur.

print(round(sayi1 / sayi2)) ise
print(round( 29 / 4 ))
print(round( 7.25 ))
print(7)
çıktı ise
7
olur.

# İfadeler ve Aritmatik İşlemler - 2

input()
şimdiye kadar hep not1 = 85 diye değeri önceden verdik.
şimdi bu değerleri kullanıcının klavyeden gireceği kodu yazalım.
bunun için input() kodunu kullanalım.
     
ad = input("Adınızı girin")  

print(  "Merhaba"  ,  ad )  

    
ekranda "Adınızı girin" şeklinde yazı çıkacak. Örneğin Ali yazalım.
"Ali" kelimesi ad değişkenine atanacak.
Çıktı:
Merhaba Ali

# İfadeler ve Aritmatik İşlemler - 3

int(input())
input() kodu ile kullanıcıdan aldığımız değerler metinseldir.
Örn:
        
sayi1 = input("sayı girin") 


bu koda 15 girdiğimizi varsayalım.
sayi1 = "15" olur.
yani sayi1 değişkeni tırnak içinde olduğu için metinsel olur.

type(sayi1) kodu ile sayi1 değişkeninin tipini türünü öğrenelim.
        
sayi1 = input("sayı girin") 
print(type(sayi1))


Çıktı:
class str
yani metinseldir.

Bu şekilde bir hesaplama işlemi yapmak istediğimizde ise:
        
sayi1 = input("sayı girin") 
sonuc = sayi1 + 10
print(sonuc)


"sayı girin" yazdığında 5 girdiğimizi varsayalım.
Sonrasında program Hata verecek.
Çünkü metinsel ifade ile sayısal ifade toplanamaz.
"5" + 10 ifadeleri toplanamaz

sayısal olarak işlem yapmak için ise
sayi1 = int(input("sayı girin"))
şeklinde int( input( ) )
int içinde input yazmamız gerekir.
        
sayi1 = int(input("sayı girin") )
print(type(sayi1))


Çıktı:
class int
artık değişken sayısal.

# İfadeler ve Aritmatik İşlemler - 3.1 - ÖrnekSınavSorusu - 7

Aşağıda verilen kodun çıktısı nedir?

kisakenar = input("Dikdörtgenin kısa kenarını girin")
uzunkenar = input("Dikdörtgenin uzun kenarını girin")
print("dikdörtgenin alanı=", kisakenar * uzunkenar)
    

Cevap:
Hata verir çünkü kisakenar ve uzunkenar değişkenleri int olarak alınmamış.
kisakenar = int(input("Dikdörtgenin kısa kenarını girin"))
şeklinde yazılmalıydı.

# İfadeler ve Aritmatik İşlemler - 3.1 - ÖrnekSınavSorusu - 7.1

    
print("Lütfen bölme için iki sayı giriniz.")
bolum = int(input("Lütfen bölme için ilk sayınızı giriniz:"))
bolen=int(input("Lütfen bölme için ikinci sayınızı giriniz:"))

print(bolum,"/",bolen,"=", bolum/bolen)
# Çıktı: 10 / 5 = 2.0

# İfadeler ve Aritmatik İşlemler - 3.2 - ÖrnekSınavSorusu - 8

    
# Soru:
adi = input("Adınızı girin: ")
dogumYili = int(input("Doğum yılınızı girin: "))  
yas = 2023 - dogumYili
# verilen değişkenlere göre program çalıştırıldığında "Ali adlı kişi  29 yaşında" çıktısını veren kodu yazın?

# Çözüm:
print(adi, "adlı kişi" ,yas , "yaşında") # Çıktı: Ali adlı kişi  29 yaşında


Sık Kullanılan Aritmetik İkili Operatörler

     
# kitapta sayfa 127 - yeşil tablo - x * y : x harf y rakamsa
x = "4"
y = 3
print(x * y)  # Çıktı: 444

x = 4
y = "3"
print(x * y)  # Çıktı: 3333


# x // y : Eğer x ve y rakamsa, x’in içinde y değişkenin katsayısını arar. Örn. 10 // 4 = 2
x = 10
y = 4
print(x / y)   # Çıktı: 2.5
print(x // y)  # Çıktı: 2


# x % y : Eğer x ve y rakamsa, bölme işleminde x / y nin kalan kısmını verir. (mod alma)
x = 10
y = 3
print(x % y)  # Çıktı: 1


# x ** y : Eğer x ve y rakamsa, x, y’nin kuvvetiyle çarpılır.
x = 3
y = 2
print(x**y)	  # Çıktı: 9
        
    

# ÖrnekSınavSorusu - 9

- Kullanıcının girdiği saniyeleri, saat, dakika ve saniye olarak parçalara ayıran program.
         

# Soru: Kullanıcının girdiği saniyeleri, saat, dakika ve saniye olarak parçalara ayıran program.            
# Açıklama: örneğin 3723 saniye girilirse:
# Bir saat 3600 saniyeye eşittir (60 dakika x 60 saniye)
# 3723 sayısını 3600 a bölersek, bölüm bize 3723 saniyede kaç saat olduğunu verir.
# bölüm 1 olur [saat]
# saat hesabından sonra geriye kaç saniye kaldığını bulmak için:
# 3723 sayısının 3600 sayısına modunu alıyoruz. (kalan)
# kalan 123
# 123 sayısını 60 a bölürsek, bölüm bize kaç dakika olduğunu verir.
# bölüm 2 olur [dakika]
# 123 sayısını 60 sayısına modunu alıyoruz. (kalan)
# kalan 3 [saniye]



saniye = int(input("saniye sayısını girin:"))
saat = saniye // 3600  # 3600 saniye = 1 saat
saniye = saniye % 3600  # saat hesabından sonra geriye kaç saniye kaldığını buluyoruz
dakika = saniye // 60  # 60 saniye = 1 dakika
saniye = saniye % 60  # dakika hesabından sonra geriye kaç saniye kaldığını buluyoruz
print(saat, "sa", dakika, "dk", saniye, "sn")
        
    

Karışık Türlü İfadeler

         
x = 4
y = 10.2
toplam = x + y
print(toplam)   # Çıktı: 14.2
print(type(x)) # Çıktı: class int 
print(type(y)) # Çıktı: class float 
print(type(toplam)) # Çıktı: class float	

        
    

Operatör Önceliği

         
# Çarpımsal operatörler (*, /, // ve %) birbirleri ile eşit önceliğe sahiptir
# ve toplamsal operatörler (ikili + ve -) birbirleri ile eşit önceliğe sahiptir.

print(2 * 3 / 4) # Çıktı: 1.5
print(2 * 4 / 3) # Çıktı: 2.6666666666666665	
        
    

İfadeleri Biçimlendirme

     
# 3x + 2y - 5
x = 3
y = 2
print(3 * x + 2 * y - 5)  # 3*x ve 2*y yazarken arada çarpma var 
# matematikteki gibi çarpma işaretini yok sayamıyoruz	
# veya çarpma işareti yerine nokta işareti koyamıyoruz

    
    

# ÖrnekSınavSorusu - 10

- Girilen sıcaklığı Fahrenheit cinsinden Celcius cinsine dönüştüren program
         
# Soru: Sıcaklığı Fahrenheit cinsinden Celcius derecesine cinsine kodu yazın.
# Not: 212 F = 100 C   
# Formül: C = (F – 32) * 5 / 9  veya      C = (F – 32) / (9 / 5)   veya      C = (F – 32) / 1.80  

# Çözüm:
dereceF = float(input("Sıcaklığını F derece olarak girin:"))  # değeri ondalık alabilmek için float(input())
dereceC = (dereceF - 32) * 5 / 9  # C = (F – 32) * 5 / 9

print(dereceF, "derece F =", dereceC, "C derece")
        
    

Python’da İlişkisel Operatörler - 1 - Boolean İfadesi - Mantıksal İfadeler

         
# veri türlerini üçe ayırmıştık
# sayısal = integer [int] 
# sayısal ın alt türü olarak ondalık sayılar için Float
# metinsel = string [str]
# ifadelerini gördük.

# şimdi de mantıksal ifadelere bakalım.
# mantıksal ifadeler iki tür değer alır. True veya False
# örnek: Medeni durumu: Evli/Bekar

# İlişkisel Operatörleri kullanarak örnek yapalım.

x = 5
y = 10
sorgu = x < y  # x, y den küçük mü? Küçük ise sorgu değişkeninin değeri True olacak. değilse False.
print(sorgu) 
# Çıktı: True

# sorgu değişkeninin tipini/türünü sorgulayalım 
print(type(sorgu))
# Çıktı: class bool

        
    

Python’da İlişkisel Operatörler - 2

         
x = 5
y = 5
sorgu = x == y  # x, y ye eşit mi? Eşitse sorgu değişkeninin değeri True olacak. değilse False.
print(sorgu) 
# Çıktı: True

# sorgu değişkeninin tipini/türünü sorgulayalım 
print(type(sorgu))
# Çıktı: class bool

        
    

Python’da İlişkisel Operatörler - 3

         
x = 5
y = 5
sorgu = x != y  # x, y ye eşit değil mi? Eşit değilse sorgu değişkeninin değeri True olacak. değilse False.
print(sorgu) 
# Çıktı: False

# sorgu değişkeninin tipini/türünü sorgulayalım 
print(type(sorgu))
# Çıktı: class bool

        
    

İf(Eğer) kodu - 1

         
not1 = int(input("Lütfen ilk notu giriniz:"))
not2 = int(input("Lütfen ikinci notu giriniz:"))
ortalama = (not1 + not2) / 2
print("ortalama = ", ortalama)

# if kodunun sonuna iki nokta üst üste konulur.
if(ortalama < 50):   # Eğer ortalama 50 den küçük ise...
    print("Kaldı")   # if kodundan sonra if kodunun şartlarına bağlı olarak çalışacak olan kodlar bir tab boşluk konularak yazılır.

print("deneme")  # bu kod üstteki if koduna dahil değil, if kodunun şartlarına bağlı olsaydı bir tab boşluktan sonra yazılırdı.

if(ortalama > 50):
    print("Geçti")

        
    

İf kodu - 2 - Birleşik Boolean İfadesi

         
# girilen notun 0 ile 100 arasında olup olmadığını sorgulayalım.
dersNotu = int(input("Lütfen notu girin:"))

if(dersNotu > 0  and dersNotu < 100):   # dersNotu değişkeni 0 dan büyük VE 100 den küçükse ...
    print(" 0-100 arasında değer girildi")   

        
    

İf kodu - 2.1 - Birleşik Boolean İfadesi - ÖrnekSınavSorusu - 11

- Girilen nota göre pekiyi orta geçer geçmez
    
# Soru: Girilen nota göre pekiyi orta geçer geçmez        

dersNotu = int(input("Ders notunu gir:"))  
if dersNotu >= 85 and dersNotu <= 100:
    print("Pekiyi")

if dersNotu >= 70 and dersNotu < 85:
    print("İyi")

if dersNotu >= 60 and dersNotu < 70:
    print("Orta")

if dersNotu >= 50 and dersNotu < 60:
    print("Geçer")

if dersNotu >= 0 and dersNotu < 50:
    print("Geçmez")

if dersNotu < 0 or dersNotu > 100:  # dersNotu 0 dan küçükse VEYA 100 den büyükse ...
    print("Geçersiz not girdiniz!!")
    
    

İf kodu - 2.2 - Birleşik Boolean İfadesi - ÖrnekSınavSorusu - 12

- Bir marketteki bir paket çayın fiyatı 10 TL’dir. Müşteri 10 ile 49 arasında paket aldığında %5, 50 - 99 adet arası paket aldığında %10; 100 üzeri paket aldığında %15 indirim uygulanmaktadır. Faturaya uygulanacak KDV %8’dir. Müşterinin aldığı paket sayısına göre ödeyeceği ücreti hesaplayan programı yazınız.

# Bir marketteki bir paket çayın fiyatı 10 TL’dir. 
# Müşteri 10 ile 49 arasında paket aldığında %5, 
# 50 - 99 adet arası paket aldığında %10; 
# 100 üzeri paket aldığında %15 indirim uygulanmaktadır. 
# Faturaya uygulanacak KDV %8’dir. 
# Müşterinin aldığı paket sayısına göre ödeyeceği ücreti hesaplayan programı yazınız.


cayfiyati = 10
fatura = 0
adet = int(input("Kaç paket çay aldınız: "))

if adet < 10:
    print("indirim yok")

if adet >= 10 and adet <= 49:
    print("indirim yüzde 5")
    fatura = ((adet * cayfiyati) * 0.95) * 1.08
    print("faturanız ", fatura, "TL")

if adet >= 50 and adet <= 99:
    print("indirim yüzde 10")
    fatura = ((adet * cayfiyati) * 0.90) * 1.08
    print("faturanız ", fatura, "TL")

if adet >= 100:
    print("indirim yüzde 15")
    fatura = ((adet * cayfiyati) * 0.85) * 1.08
    print("faturanız ", fatura, "TL")


İf kodu - 2.2 - Birleşik Boolean İfadesi - ÖrnekSınavSorusu - 13

- Klavyeden, girilen sıcaklık derecesine göre suyun katı/sıvı/gaz hâllerinden hangisindeolduğunu yazan programı yazın.
    
# Klavyeden, girilen sıcaklık derecesine göre suyun katı/sıvı/gaz hâllerinden hangisindeolduğunu yazan programı yazın.
sicaklik = int(input("sıcaklığı girin:"))

if sicaklik < 0:
    print("katı")

if sicaklik > 0  and sicaklik < 100:
    print("sıvı")

if sicaklik > 100:
    print("gaz")


else kodu - 1

else kodu bi üstündeki if in şartının sağlanmadığı her durumda çalışır.
    

sifre = "1234"
girilenSifre = input("Lütfen şifreyi girin: ")

if(girilenSifre == sifre):
    print("Giriş Başarılı")

else:  # else kodu, if koduna girilen şartın aksi her durumda çalışır.
    print("Şifre Yanlış !")


else kodu - 2 - ÖrnekSınavSorusu - 14

- İki sınav ve iki performans notu ile geçti kaldı
    
# Notları kullanıcıdan alıyoruz
sinav1 = int(input("Lütfen ilk sınav notunu girin: "))
sinav2 = int(input("Lütfen ikinci sınav notunu girin: "))

sozlu1 = int(input("Lütfen performans 1 notunu girin: "))
sozlu2 = int(input("Lütfen performans 2 notunu girin: "))

# Ortalamayı hesaplıyoruz
ortalama = (sinav1 + sinav2 + sozlu1 + sozlu2) / 4

# Ortalama 50'den küçük ise "kaldı", 50 veya daha yüksekse "geçti" yazdırıyoruz
if ortalama < 50:
    print("ortalama:", ortalama, "Kaldı")
else:
    print("ortalama:", ortalama, "Geçti")

else kodu - 2 - ÖrnekSınavSorusu - 15

- Klavyeden girilen sayının tek mi çift mi olduğunu yazan program.
input kodu ile sayıyı alıyoruz.
if sayi % 2 == 0: kodundaki
sayi % 2 mod alma anlamına gelir.
mod alma: örn. 5 mod 2 = 1 dir. (5 in 2 ye bölümünden kalan sayı)
sayi % 2 == 0 kodu ise sayının 2 ye bölümünden kalanın 0 a eşit olup olmaığını sorguluyor.
şart sağlanırsa ekrana "sayı çift" sağlanmadığı diğer her durumda (else) ise ekrana "sayı tek" yazıyoruz.
     
sayi = int(input("Sayı girin:"))
if sayi % 2 == 0:
    print("sayı çift")
else:
    print("sayı tek")


else kodu - 3 - ÖrnekSınavSorusu - 15.2

- Girilen devamsızlık bilgisine göre geçti kaldı
    
devamsizlik = int(input("Kaç gün devamsızlığınız var: "))
 
# devamsızlık 10 günden çok ise "kaldı", değilse "geçti" yazdırıyoruz
if devamsizlik < 10:
    print("Geçti")
else:
    print("Kaldı")


ÖrnekSınavSorusu - 16

Kullanıcıdan alınan boy(m) ve kilo(kg) bilgisine göre Vücut Kitle indeksini hesaplayan ve bu hesaba göre indeks 19 dan düşükse ekrana “Düşük kilolu”, 19 ve 25 arasındaysa “Normal Kilolu”, 25 den yüksekse “Obez Riski” yazdıran kodu yazın.
# örnek boy 1.83 ve kilo 85
# VKİ = ağırlık / (boy * boy)
    
agirlik = float(input("kilonuzu girin"))
boy = float(input("boyunuzu girin"))
indeks = agirlik / (boy * boy) 
print(indeks)
if indeks < 19:
    print("Düşük kilolu")
if indeks > 19 and indeks < 25:
    print("Normal Kilolu")
if indeks > 25:
    print("Obez Riski")
    

Örnek Yapay Zeka Programı

# Bilgisayar Arıza Çözüm Programı
    
# Bilgisayar Arıza Çözüm Programı
print("Bilgisayardan herhangi bir ses geliyor mu (fans vb) ")
secim = input("Veya herhangi bir ışık yanıyor mu? (y/n):")

if secim == "n":
    secim = input("Fişe takılı mı (y/n):")
    if secim == "n":
        print("Fişe takın")
    else:
        secim = input("Açma düğmesine bastınız mı (y/n):")
        if secim == "n":
            print("Açma düğmesine basın.")
        else:
            secim = input("Sigorta atmış mı? (y/n):")
            if secim == "n":
                secim = input("Şalter inmiş mi (y/n):")
                if secim == "n":
                    print("Şalteri kontrol edin veya yenisi ile değiştirin. ")
                else:
                    print("Teknik servise başvurun.")
            else:
                print("Sigortayı kontrol edin. ")
else:
    print("Teknik servise başvurun")
    

if kodu

# Pekiyi, İyi, Orta programını if kodu ile yazacak olursak 85-100, 70-85... şeklinde aralıkları tek tek yazmak gerekecek:
    
not1 = int(input("Lütfen 0 – 100 arasında bir not girin: "))
if not1 < 0 or not1 > 100:
    print("geçersiz not")
if not1 > 85 and not1 < 100:
    print("pekiyi")
if not1 > 70 and not1 < 85:
    print("iyi")
if not1 > 55 and not1 < 70:
    print("orta")
if not1 > 45 and not1 < 55:
    print("zayıf")
if not1 < 45:
    print("kaldı")


elif kodu

# Aynı programı elif kodu ile yazalım. Bu sefer aralık belirtmeye gerek kalmayacak:
    
not1 = int(input("Lütfen 0 – 100 arasında bir not girin: "))
if not1 < 0 or not1 > 100:
    print("geçersiz not")
elif not1 > 85:
    print("pekiyi")
elif not1 > 70:
    print("iyi")
elif not1 > 55:
    print("orta")
elif not1 > 45:
    print("zayıf")
elif not1 < 45:
    print("kaldı")
    

elif kodu

elif kodunu kullanmadan sadece if kullanarak yazsaydık:
aşağıda verilen koda 555 girince hem geçersiz not hem pekiyi yazacaktı.
    
not1 = int(input("Lütfen 0 – 100 arasında bir not girin: "))
if not1 < 0 or not1 > 100:
    print("geçersiz not")
if not1 > 85:
    print("pekiyi")
        

while kodu

While kodu döngü oluşturmayı sağlar.
while koduna verilen şart sağlandığı sürece kod tekrar ve tekrar çalışacaktır.
Aşağıda verilen kodda şart olarak 5 < 10 verildiği için ve bu şart her zaman sağlandığı için sonsuza kadar merhaba yazacaktır.
    
while 5 < 10:
    print("merhaba")
    

while kodu

Sonsuz döngü oluşturmanın bir başka yolu while kodundaki şarta True vermektir.
sonsuza kadar merhaba yazacaktır.
    
while True:
    print("merhaba")


while kodu

Sonsuz döngü oluşturmanın bir başka yolu ise while kodundaki şarta 1 vermektir.
bu kodda yine aynı şekilde sonsuza kadar merhaba yazacaktır.
    
while 1:
    print("merhaba")


while kodu

Aşağıda verilen kodda sayi1 in değeri başta 0 iken while döngüsü ile her seferinde 1 artarak değeri 10 olduğunda döngü bitecektir.
ekrana 10 kere merhaba yazacaktır.
    
sayi1 = 0
while sayi1 < 10:
    print("merhaba")
    sayi1 += 1


break kodu

Aşağıda verilen kodda break kodu döngüyü kırmaya yarar.
if koduna verilen şarta göre sayi1 5 e eşit olduğunda break kodu çalışacak ve döngü kırılacaktır.
ekrana 5 kere merhaba yazacaktır.
    
sayi1 = 0
while sayi1 < 10:
    print("merhaba")
    sayi1 += 1
    if sayi1 == 5:
        break


Sayı Tahmin Oyunu

    
sayi1 = 25
while True:
    tahmin = int(input("Lütfen 0 – 100 arasında bir sayi girin: "))
    if tahmin == 25:
        print("Doğru Tahmin !")
        break
    else:
        print("Tekrar Dene !")

    

While kodu ile Kullanıcı Girişi Programı

    
kayitliKullaniciAdi = "admin"
kayitliSifre = "1234"
pinHataSayac = 3

while 1:
    print("\n\n")
    girilenKullaniciAdi = input("kullanıcı adını girin: ")
    girilenSifre = input("Şifreyi girin: ")

    if girilenKullaniciAdi == kayitliKullaniciAdi and kayitliSifre == girilenSifre:
        print("Giriş başarılı!")
        break

    elif girilenKullaniciAdi == kayitliKullaniciAdi and kayitliSifre != girilenSifre:
        print("şifre yanlış")
        print("şifreyi değiştirmek ister misiniz?")
        cvp = input("E/H: ")
        if cvp == "e" or cvp == "E":
            print("pin kodunu girin(kalan hak:", pinHataSayac, " ): ")
            defpin = "1234"
            pin = input("Pin: ")
            if pin == defpin:
                kayitliSifre = input("yeni şifreyi girin: ")
                print("şifre değiştirildi")
            else:
                pinHataSayac -= 1
                print("Pin Hatalı !")
                if pinHataSayac == 0:
                    print("Hesap Bloke Olduı !")
                    break
    elif girilenKullaniciAdi != kayitliKullaniciAdi and kayitliSifre == girilenSifre:
        print("Kullanıcı adı yanlış")
    else:
        print("Giriş bilgileri yanlış")


Faktöriyel hesaplama

Girilen sayının 1 den kendisine kadar olan sayıların çarpımını bulma
    
faktoriyel = 1
sayac = 1
sayi = int(input("Lütfen bir sayı giriniz.."))
while sayac <= sayi:
    faktoriyel = faktoriyel * sayac
    sayac += 1
print(sayi, " sayısının foktöriyeli:", faktoriyel)


Range

range: sınır, menzil demek.
0 dan 10 a kadar olan sayılar kümesini oluşturmak için:
    
print(*range(10))


Çıktı:
0
1
2
3
4
5
6
7
8
9

10 dahil değil!
varsayılan olarak 0 dan başlar.
print koduyla range yazarken başına * yıldız koyuyoruz.

Range

range koduna başlangıç ve bitiş değerleri verebiliyoruz:
0 dan 10 a kadar sayıların çıktısını vermesi için:
    
print(*range(0, 10))


Çıktı:
0
1
2
3
4
5
6
7
8
9

10 dahil değil!
range(10) kodu ile range(0, 10) kodu aynı çıktıyı verir.

Range

    
print(*range(1, 10, 3))


Çıktı:
1
4
7

Başlangıç değeri olan 1 den başladı.
1 e artış miktarını ekledi (+3) ekrana 4 yazdı
4 e artış miktarını ekledi (+3) ekrana 7 yazdı
7 ye artış miktarını ekledi (+3) 10 olacak ancak 10 bitiş değeri olduğu için ekrana yazılmadı.

FOR döngüsü

range(-6, 7) ile bir sayı kümesi oluşturuyoruz.
for döngüsü oluşturduğumuz kümenin her bir elemanını tek tek döndürür.
range(-6, 7) kümesinin elemanları: -6-5-4-3-2-1 0 1 2 3 4 5 6
for a in range(-6, 7) kodunda ise a değeri oluşturulan kümenin her bir elemanı.
print(a) koduyla ekrana yazdırılacak.
    
for a in range(-6, 7):
    print(a)

Çıktı:
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6

7 dahil değil!

FOR döngüsü

range(-6, 7) kümesinin elemanları: -6-5-4-3-2-1 0 1 2 3 4 5 6
for a in range(-6, 7) kodunda ise a değeri oluşturulan kümenin her bir elemanı.
döngüde a = -3 olduğunda döngü kırılacak.
    
for a in range(-6, 7):
    print(a)
    if a == -3:
        break

Çıktı:
-6
-5
-4
-3

-3 den sonrası yazılmayacak!

FOR döngüsü

string ifadelerde ise her bir harf kümenin elemanlarıdır.
"DENİZLİ" için D E N İ Z L İ harfleri.
her döngüde sırasıyla her bir harf print(a) koduyla ekrana yazdırılacak.
    
for a in "DENİZLİ":
    print(a)

Çıktı:
D
E
N
İ
Z
L
İ

FOR döngüsü

string ifadelerde ise her bir harf kümenin elemanlarıdır.
"DENİZLİ" için D E N İ Z L İ harfleri.
her döngüde sırasıyla her bir harf print(a) koduyla ekrana yazdırılacak.
bu sefer L harfine gelince döngü kırılacak.
    
for a in "DENİZLİ":
    print(a)
    if a == "L":
        break
    
Çıktı:
D
E
N
İ
Z
L

L harfi yazıldı çünkü print(a) kodu if kodundan önce.
İ harfi yazılmaz.