İçeriğe geç
Educora
Orta8. sınıf22 dk29 / 59

Programlama dilleri ve Python: değişkenler, veri girişi ve çıkışı

Program ve programlama dili nedir, çeviriciler (yorumlayıcı ve derleyici) nasıl çalışır; Python’da değişkenler, `int(input())` ile giriş, `print()` ile çıkış, `//` ve `%` işlemleri — sınav tipi «program ne yazdırır?» sorularıyla.

Kendini test et
Bu derste öğreneceklerin
  • Program, programlama dili, makine dili, düşük ve yüksek seviyeli dilleri ayırt etmek; yorumlayıcı ile derleyiciyi karşılaştırmak.
  • Değişken oluşturmak, int, float, str, bool türlerini tanımak ve verileri input(), int(input()), input().split() ile almak.
  • + - * / // % ** işlemlerini doğru sırayla hesaplamak; abs(), int(), str() fonksiyonlarını kullanmak.
  • Kısa bir programın ne yazdırdığını adım adım izleyerek bulmak (sınavın çoktan seçmeli ve kodlanmış soruları).

Bilgisayar yalnızca 0 ve 1’lerden oluşan komutları anlar; sen ise print(7 * 6) yazarsın ve hemen 42 cevabını alırsın. Bu iki dil arasında kim çevirmenlik yapıyor? Bu derste bu sorunun cevabını bulacak ve Python’ın ilk temel araçlarını öğreneceksin: değişkenler, klavyeden giriş, ekrana çıktı ve aritmetik işlemler. Azerbaycan’ın üniversite giriş sınavında (DİM, I. grup) bilişim bölümünün 30 sorusundan 9’u Python programıdır ve hepsi bu dersin yapı taşlarından kurulur.

Program, programlama dilleri ve çeviriciler

Tanım
Program

Bilgisayarın yerine getirmesi gereken komutların (talimatların) bir programlama dilinde yazılmış dizisi. Program, bilgisayar için yazılmış bir algoritmadır.

Tanım
Programlama ve programlama dili

Programlama, program oluşturma sürecidir: problemin tanımlanması, algoritmanın kurulması, bir programlama dilinde yazılması ve test edilmesi. Programlama dili, program yazmak için katı kuralları (sözdizimi) olan biçimsel bir dildir: Python, C++, Java, Pascal, BASIC.

Diller makineye yakınlıklarına göre seviyelere ayrılır. Makine dili, işlemcinin doğrudan çalıştırdığı tek dildir: komutlar ikili kodlarla yazılır ve işlemcinin türüne bağlıdır. Düşük seviyeli diller (örneğin assembly), makine komutlarını MOV, ADD gibi kısa harf kodlarıyla yazar; bunlar da belirli bir işlemciye bağlıdır. Yüksek seviyeli diller (Python, C++, Java, Pascal) insan diline ve matematiksel yazıma yakındır, işlemciye bağlı değildir ve tek bir komutları birçok makine komutuna dönüşür.

Tanım
Çevirici (translator)

Yüksek seviyeli bir dilde yazılmış program metnini (kaynak kodu) makine diline dönüştüren program. İki türü vardır: derleyici ve yorumlayıcı.

DerleyiciYorumlayıcıKaynak kodKaynak kodprogramıntamamını öncedençevirirçalıştırılabilirdosya (.exe)komutları tek tek:çevir →çalıştır →sonraki komutSonuçSonuç
Derleyici bir kez çevirip hazır bir dosya üretir; yorumlayıcı ise program her çalıştığında komutları tek tek çevirip yürütür.
ÖzellikDerleyiciYorumlayıcı
Nasıl çevirirtüm programı bir kerede, çalıştırmadan öncekomutları tek tek: çevirir ve hemen çalıştırır
Ürettiğiçevirici olmadan çalışabilen bir dosya (örneğin .exe)ayrı dosya oluşmaz; her çalıştırmada yorumlayıcı gerekir
Hızhazır program hızlı çalışırgenellikle daha yavaş çalışır
Hatalarçalıştırmadan önce, tüm metin için bildirilirhatalı komuta gelince durur; önceki komutlar çalışmış olur
ÖrneklerC, C++, Pascal, GoPython, JavaScript, PHP

Python yorumlanan bir dildir. Program çalışırken 5. komutta hata oluşursa (örneğin sıfıra bölme), ilk dört komutun sonucu ekrana çoktan yazılmış olur. Aslında Python önce metnin tamamını ara bayt koda çevirir; bu yüzden yazım (sözdizimi) hatası olan bir program hiç başlamaz. Yine de okul dersinde ve sınavda Python yorumlanan dil olarak sınıflandırılır.

Sabitler, değişkenler ve atama

Tanım
Sabitler ve değişkenler

Sabit, program çalışırken değişmeyen değerdir: 45, 3.14, 'Baku'. Değişken, değeri program ilerledikçe değişebilen, adı olan bir bellek alanıdır. Python’da değişken, ona ilk kez değer atandığında oluşur.

Atama işleci = şöyle çalışır: önce sağdaki ifade hesaplanır, sonra sonuç soldaki değişkene yazılır ve eski değer kaybolur. Bu yüzden x = x + 1 bir denklem değil, «x’in değerini 1 artır» komutudur. Sınavın resmî çözümlerinde bu, «değişkene … değeri atanır» diye anlatılır. Python bir satırda birden çok atamaya da izin verir: a, b = 3, 8.

  • ad bir harfle veya _ ile başlar, ardından harf, rakam ve _ gelebilir: a1, sum_2, _k geçerlidir; 2a, my-sum, a b ise geçersizdir;
  • büyük ve küçük harfler farklıdır: a ile A iki ayrı değişkendir;
  • anahtar sözcükler (if, else, for, while, and, or, not, True) değişken adı olamaz.
TürNe saklarÖrnekler
inttam sayı45, -7, 0
floatondalıklı (gerçek) sayı3.5, 2.0, -0.25
strkarakter dizisi: tırnak içindeki metin'Baku', "45", ''
boolmantıksal değerTrue, False
45 ile '45' farklıdır: ilki sayı, ikincisi metindir. Ondalıklı sayılarda Python her zaman nokta kullanır: 3.5.
Python
a = 7
b = 2.5
s = '7'
t = a > 5
print(type(a), type(b), type(s), type(t))
print(a * 2, b * 2, s * 2, t)
▸ Beklenen çıktı
<class 'int'> <class 'float'> <class 'str'> <class 'bool'>
14 5.0 77 True
type() bir değerin türünü gösterir. Dikkat: s * 2 karakter dizisini tekrarlar (77), b * 2 ise float olarak kalır (5.0).

Python’da bir değişkenin türü ona atanan değerle belirlenir ve program ilerledikçe değişebilir: x = 5 sonrasında x tam sayıdır, x = 'five' sonrasında ise karakter dizisidir. Bu yüzden her soruda kendine sor: değişkende şu anda sayı mı var, metin mi? Aynı + işareti sayıları toplar, karakter dizilerini ise yan yana ekler.

Örnek 1. Atamaları izleyelim

a = 7, b = 3 olsun. Ardından sırasıyla a = a + b, b = a - b, a = a - b komutları çalışır. print(a, b) ne yazdırır?

Çözümü göster
Her komuttan sonra iki değişkeni de yazıyoruz:
a = a + b → a = 7 + 3 = 10, b = 3
b = a - b → b = 10 − 3 = 7, a = 10
a = a - b → a = 10 − 7 = 3, b = 7
Çıktı: 3 7. Değişkenler üçüncü bir değişken olmadan değerlerini değiştirdi. Python’da aynı iş tek satırla yapılır: a, b = b, a.

Giriş ve çıkış: input() ve print()

print() fonksiyonu parantez içindeki değerleri ekrana yazar. Virgülle ayrılmış birkaç değer aralarında bir boşlukla aynı satıra yazılır, her yeni print() ise yeni satırdan başlar. sep parametresi ayırıcıyı, end ise satır sonunu değiştirir: print(1, 2, 3, sep='-') → 1-2-3; print('a', end='') ise sonraki çıktıyı aynı satırda tutar.

input(), kullanıcının klavyeden yazdığı satırı okur ve **her zaman karakter dizisi (str) olarak** döndürür: 5 yazsan bile '5' elde edilir. Hesap yapmak için karakter dizisini dönüştürmek gerekir: tam sayı için int(input()), ondalıklı sayı için float(input()). Sınav sorularındaki programlar tam olarak böyle başlar: n = int(input()). Tek satırda boşlukla yazılmış birkaç değeri input().split() okur: satırı boşluklardan bölüp karakter dizilerinden oluşan bir liste döndürür; her parçayı ayrıca int() ile çeviririz.

Python
name = input()
age = int(input())
a, b = input().split()
a = int(a)
b = int(b)
print(name, age, a + b)
print(name, 'is', age, sep='_')
Sınav sürümü: program klavyeden üç satır okur. Giriş ve çıkış aşağıdaki tabloda gösterilmiştir.
Giriş (klavye)Çıkış (ekran)
Leyla
14
3 8
Leyla 14 11
Leyla_is_14
Sınavın yazılı sorularında örnekler tam olarak böyle bir «Giriş / Çıkış» tablosuyla verilir.

Soru metnini dikkatle oku: sayılar her biri ayrı satırda giriliyorsa int(input()) gerektiği kadar tekrarlanır (a = int(input()), b = int(input())); sayılar tek satırda, boşlukla yazılıyorsa input().split() kullanılır. Sınavın yazılı sorularında iki biçim de görülür: örneğin bir listenin elemanları aralarında birer boşluk olan tek bir satır hâlinde, eleman sayısı n ise ayrı bir satırda verilebilir.

Python
name = 'Leyla'
age = int('14')
line = '3 8'
a, b = line.split()
a = int(a)
b = int(b)
print(name, age, a + b)
print(name, 'is', age, sep='_')
▸ Beklenen çıktı
Leyla 14 11
Leyla_is_14
Tarayıcıda çalışan sürüm: klavyeden gelecek satırları doğrudan değişkenlere yazdık. line.split() karakter dizisini ['3', '8'] listesine böler. Değerleri değiştirip yeniden çalıştır.
Örnek 2. Tek satırda iki değer

Program çalışırken klavyeden tek satırda 12 5 girilir:
a, b = input().split()
print(a + b, int(a) + int(b), a * 2)
Ne yazdırılır?

Çözümü göster
split() satırı ['12', '5'] listesine böler: a = '12', b = '5'; ikisi de karakter dizisidir.
a + b karakter dizilerini birleştirir: 125.
int(a) + int(b) = 12 + 5 = 17.
a * 2 karakter dizisini iki kez tekrarlar: 1212.
Cevap: 125 17 1212.

Aritmetik: //, % ve işlem sırası

İşlemAnlamıÖrnekSonuç
+ - *toplama, çıkarma, çarpma17 + 5, 17 - 5, 17 * 522, 12, 85
/bölme; sonuç her zaman float17 / 5, 8 / 23.4, 4.0
//tam sayı bölmesi — bölüm17 // 53
%bölümden kalan17 % 52
**üs alma2 ** 532
a = b · (a // b) + a % b, 0 ≤ a % b < b
burada:
  • abölünen (tam sayı)
  • bbölen, b > 0
  • a // bbölüm
  • a % bkalan

Kalanlı bölme: // ve % her zaman birlikte çalışır. Kontrol: bölümü bölenle çarpıp kalanı eklersen bölüneni bulmalısın.

Örnek 3. Bölüm ve kalan

Hesaplayın: 1) 47 // 6 ve 47 % 6; 2) 5 // 8 ve 5 % 8; 3) -17 // 5 ve -17 % 5.

Çözümü göster
1) 6 · 7 = 42 ≤ 47 < 48 = 6 · 8, yani 47 // 6 = 7, 47 % 6 = 47 − 42 = 5. Kontrol: 6 · 7 + 5 = 47.
2) Bölünen bölenden küçüktür: 5 // 8 = 0, 5 % 8 = 5 (sayının kendisi kalır).
3) Python’da // her zaman aşağıya, küçük sayıya doğru yuvarlar: −17 : 5 = −3,4 → -17 // 5 = −4. Kalan: −17 − 5 · (−4) = 3, yani yine 0 ≤ 3 < 5.
( ) → ** → * / // % → + −2 ** 3 ** 2 = 2 ** 9 = 512

İşlem önceliği (soldan sağa azalır). Aynı düzeydeki * / // % işlemleri soldan sağa, ** ise sağdan sola yapılır: 2 ** 3 ** 2 = 2 ** 9 = 512. **, baştaki eksi işaretinden güçlüdür: -2 ** 2 = −4.

Python
a = 7
b = 45
c = b // a % 4 * 3 + b % a ** 2
print(c)
▸ Beklenen çıktı
51
Örnek 4’ün programı. Sınavda ilk satır a = int(input()) olur ve klavyeden 7 girilir.
Örnek 4. Sınav tipi çoktan seçmeli soru

Klavyeden 7 girilirse yukarıdaki programın sonucu nedir?
A) 15 B) 51 C) 45 D) 6 E) 57

Çözümü göster
İfadeyi iki parçaya ayırıyoruz; + en son yapılır.
Sol parça soldan sağa: b // a = 45 // 7 = 6 → 6 % 4 = 2 → 2 * 3 = 6.
Sağ parçada ** daha güçlüdür: a ** 2 = 49, sonra 45 % 49 = 45 (45 < 49, sayının kendisi kalır).
c = 6 + 45 = 51, cevap B.
Tuzak: b % a ** 2 ifadesini (b % a)² gibi hesaplayan 3² = 9 bulur ve yanlışlıkla 15’i (A) seçer.

Bir sayının basamakları ve tür dönüşümleri

n = 100·a + 10·b + c ⇒ a = n // 100, b = n // 10 % 10, c = n % 10
burada:
  • nüç basamaklı doğal sayı
  • ayüzler basamağı
  • bonlar basamağı
  • cbirler (son) basamağı

n % 10 her zaman son basamağı, n // 10 ise son basamağı atılmış sayıyı verir. Her uzunluktaki sayının basamakları döngülerle «Sayılar üzerinde işlemler: rakamlar, bölenler ve asal sayılar» dersinde işlenir.

Python
n = 739
a = n // 100
b = n // 10 % 10
c = n % 10
print(c * 100 + b * 10 + a, a + b + c, abs(a - c))
▸ Beklenen çıktı
937 19 2
Örnek 5’in programı. Sınav sürümünde ilk satır n = int(input()) olur.
Örnek 5. Basamaklarla çalışma (kodlanmış cevap)

Klavyeden 739 girilirse yukarıdaki program ne yazdırır?

Çözümü göster
a = 739 // 100 = 7 (yüzler), b = 739 // 10 % 10 = 73 % 10 = 3 (onlar), c = 739 % 10 = 9 (birler).
Birinci değer: 9 · 100 + 3 · 10 + 7 = 937, yani sayının tersi.
İkinci: 7 + 3 + 9 = 19, basamaklar toplamı.
Üçüncü: abs(7 - 9) = |−2| = 2.
print üç değeri boşlukla ayırır: 937 19 2.

Tür dönüşümleri. str() sayıyı karakter dizisine, int() ise karakter dizisini veya ondalıklı sayıyı tam sayıya çevirir: str(45) + '1' → 451, int('45') + 1 → 46, int(7.9) → 7 (kesir kısmı yuvarlanmaz, atılır). len(str(n)) sayının basamak sayısını verir: len(str(2026)) → 4. abs(x) mutlak değeri döndürür: abs(-12) → 12.

Hızlı alıştırma: Python ne döndürür?
  1. 1.17 // 5 →
  2. 2.17 % 5 →
  3. 3.2 ** 3 ** 2 →
  4. 4.-7 // 2 →
  5. 5.int('12') + 3 →
  6. 6.len(str(40961)) →

Sınav soruları: program ne yazdırır?

Sınavda program genellikle 5–15 satırdır ve soru hep aynıdır: «programın sonucunu belirleyin». Çoktan seçmeli soruda 5 seçenek olur, kodlanmış soruda cevabı kendin yazarsın. İki durumda da kazandıran yöntem aynıdır: programı bilgisayar gibi satır satır «çalıştırmak».

  1. 1
    Değişken tablosu aç

    Her değişken için bir sütun çiz ve başlangıç değerlerini yaz. input() varsa verilen girişi doğru türle yaz: int(input()) → sayı, input() → karakter dizisi.

  2. 2
    Satır satır ilerle

    Her atamadan sonra yalnızca o değişkenin sütununu güncelle, eski değerin üstünü çiz. Sağ taraf her zaman eski değerlerle hesaplanır.

  3. 3
    Önceliğe uy

    Uzun bir ifadede önce **, sonra soldan sağa * / // %, en son + - yapılır. Ara sonuçları yaz.

  4. 4
    Türlere dikkat et

    / her zaman float verir (8 / 2 → 4.0); karakter dizilerinde + birleştirir, * tekrarlar.

  5. 5
    Çıktı biçimini denetle

    print(a, b) değerleri bir boşlukla ayırır, her print yeni satıra yazar. Seçenekler çoğu zaman tam da boşluk ve satır farkıyla ayrılır.

Alıştırma

Bir film t saniye sürüyor. Bunun kaç tam saat, dakika ve saniye olduğunu tek satırda, boşlukla ayırarak yazdır. Programı t = 7384 ile dene (sınav sürümünde t = int(input()) olurdu).

Alıştırma · Python
t = 7384
# hours, minutes, seconds
▸ Beklenen çıktı
2 3 4
Alıştırma

Bir satırda boşlukla ayrılmış iki doğal sayı var: line = '38 7'. Onları split() ile ayır, int() ile çevir ve tek satırda bölümü, kalanı ve kontrol değerini (bölen · bölüm + kalan) yazdır.

Alıştırma · Python
line = '38 7'
# split, convert, print quotient, remainder, check
▸ Beklenen çıktı
5 3 38

Önemli noktalar

  • Çevirici, yüksek seviyeli programı makine diline çevirir: derleyici tüm programı önceden çalıştırılabilir dosyaya, yorumlayıcı ise komutları tek tek çevirip hemen çalıştırır. Python yorumlanan bir dildir.
  • = atamadır: önce sağ taraf hesaplanır, sonra sonuç soldaki değişkene yazılır.
  • input() her zaman karakter dizisi döndürür: sayı için int(input()), tek satırdaki birkaç değer için input().split() kullanılır.
  • // bölümü, % kalanı verir: a = b · (a // b) + a % b; n % 10 son basamak, n // 10 son basamaksız sayıdır.
  • Öncelik: parantez → ** (sağdan sola) → * / // % (soldan sağa) → + -; / her zaman float verir.

Kendini test et

12 soru. Her doğru cevap XP kazandırır.

1 / 12
Programın tamamını çalıştırmadan önce makine diline çeviren ve çalıştırılabilir dosya oluşturan çeviriciye ne denir?