T.C. Mİllî Eğİtİm BakanlIğI
SİVAS / YILDIZELİ - Atatürk Ortaokulu

Easy Python Projemiz

           Bu projede blok tabanlı programları sıfırdan kullanan öğrencilerimiz en popüler metin tabanlı programlama dillerinden biri olan Python ile tanışacak ve Python kullanarak ilk programlarını yazacaklar. 

Temel amacımız öğrencilerimizin programlama konusunda özgüven kazanmalarıdır.

Onları programlamada bir sonraki adıma taşımak istiyoruz.

Proje Koordinatörü: Nihat YAVUZ

Easy Python

02-12-2021

 

 

About the project-Proje Hakkında

In this project, the students that have used block-based programs as scratch will be introduced with Python, one of the most popular text-based programming languages, and by using Python they will write their first program. Our main goal is for our students to gain self-confidence in programming. We want to take them to the next step in programming.

"Bu projede daha önce blok tabanlı programlama yapmış öğrenciler metin tabanlı dünyanın yaygın dili haline gelmekte olan kullanımı kolay python dili ile tanıştırmak ve bu dili kullanarak ilk programlarını yazmalarını sağlamaktır. Öğrencilerin programlamada bir basamak üste çıkabileceklerine olan güvenlerini sağlamak temel amacımızdır."

 

Aims-Hedefler

  • Encourage the students to programming experiences
  • Introducing the students to text-based programming languages
  • Make the students aware of how prominent Computer Sciences and Information Technologies are
  • Encourage students to write code with Python
  • Improve their problem-solving skills and collaborate for solving problems

 

  • Öğrencileri programlama deneyimleri yaşamaları için cesaretlendirmek
  • Metin tabanlı programlama dillerini tanıtmak
  • Bilişim Teknolojilerinin önemini vurgulamak
  • Öğrencilerin Python Programlama Dili ile kod yazmasını sağlamak
  • Problem çözerken iş birliği yapma becerilerini ve problem çözme becerilerini geliştirmek

 

Work Process-Çalışma Süreci

·         Stage 1

What is Coding? The bases of coding will be explained.

  • Aşama 1

Kodlama Nedir? Kodlamanın temelleri açıklanacak

 

 02-12-2021

 

·        

 




Stage 2

Meeting the Tex-Based Programming Languages with Focusing on Python

It will be basic information about Python.

Data types, functions, methods, statements, and control flows

  • Aşama 2

Metin Tabanlı Programlama Dilleri ve Python ile tanışma

Python ile ilgili temel kavramlar verilecek

Veri türleri, operatörler, koşullar, metotlar, fonksiyonlar gibi

Bu bilgiler çok karmaşık verilmeyecek sadece bunları tanımış olacaklar

 

·         Stage 3

Practicing with Silent Teacher Website

The student will be able to practice by their own phase with silent teacher websites. They can take notes. They cannot make searches online. After the classes, they can make research. According to their level, more lessons will be planned.

  • Aşama 3

Silent Teacher Websitesinde Uygulama Yapma

Silent Teacher sitesinde uygulama yapacaklar uygulamalar sırasında not alabilirler.  Dersten sonra araştırma yapabilirler.

 

 

·         Stage 4

Writing Code on a Python Editor(Thonny)

They will write a program on Thonny Editor. The tasks will be given beforehand that they can make some research. During their tasks, the student can collaborate for solving problems that they have encountered. At the end of their task, they will present their programs to the class.

  • Aşama 4

Bir Python Editoründe Kendi Programlarını Yazma (Thonny)

Thonny editöründe programlarını yazacaklar. Görevleri öncesinde verilecek konu ile ilgili gerekli araştırmayı yapabilecekler. Görevleri sırasında karşılaştıkları problemler ile ilgili işbirliği yapabilecekler sonrasında sınıfa yazdıkları kodu açıklayacaklar.

 

Proje Yapım Sürecinde Anlatılacak Konu Başlıkları Ve Konu Özeti

Python Nedir?

1) Özgür ve ücretsiz bir programlama dilidir.

2) Guido Van Rossum adlı Hollandalı bir programcı tarafından 90'lı yılların başında

geliştirilmeye başlanmıştır. Guido Van Rossum 2005 ile 2012 yılları arasında Google'da

çalışmıştır.

3) Adı "The Monty Python" adlı bir İngiliz komedi grubundan esinlenerek konmuştur.

4) Python kelimesi Türkçe "paytın" şeklinde telaffuz edilir.

Neden Python?

1) Büyük kuruluşlar (Google, YouTube ve Yahoo! gibi) her zaman Python programcılarına

ihtiyaç duyuyor.

2) Python ile masaüstü, oyun, mobil, web ve ağ alanlarında programlar yazabilirsiniz.

Örneğin bir youtube video indirme programı veya fizyde şarkı arayıp dinleme programı

yapabilirsiniz.

3) Python kodları sade, basit ve hızlıdır. Derlenmeye ihtiyaç duymaz.

4) Python farklı işletim sistemleri üzerinde çalışabilir. Linux, Windows, Mac OS X, MS-DOS,

iOS ve Android vbs...

5)

Python Sürümleri:

1) Piyasada iki çeşit Python sürümü vardır. Python2 ve Python3

2) Python3, Python2'ye göre daha güçlüdür ve hatalardan arınmıştır.

3) Python2 ile yazılmış bir program Python3'te çalışmaz. Aynı şekilde Python3 ile yazdığınız

bir program Python2'de çalışmaz.

Python'u Kurmak:

1) Python'ı kurmak için http://www.python.org adresine tıklayınız.

2) Açılan sayfada Downloads linkini tıkladığınızda 'Download the latest versiyon for

Windows' başlığı altında Python'un son sürümü içeren bir buton göreceksiniz. Bu butona

tıklayarak Python'ın son sürümünü bilgisayarınıza indirebilirsiniz.

3) Python'ı farklı bir işletim sistemine yüklüyorsanız ya da eski bir Python sürümü kurmak

istiyorsanız ilgili sayfada gerekli linkler ve bilgilendirmeler mevcuttur.

4) Bu arada Python'ın hangi dizine kurulduğunu bilmemiz önemlidir. Zira karşılaşacağımız

bazı sorunlar bu dizine gitmemizi gerektirebilir.

Python Dosyaları Nerede?

Windows kullanıcısı iseniz ve eğer siz farklı bir yere kaydetmemişseniz Python dosyaları

genellikle C:\Users\Kullanicilar\AppData\Local\Programs\Python dizini içindedir. Klasörler

gözükmüyorsa gizli dosyaları göster seçeneğini aktifleştiriniz.

Editörler: Kod yazmak, saklamak, düzenlemek ve geliştirmek için kullandığımız

programlardır.

IDE Nedir?

IDE (Integrated Development Environment), Türkçesiyle Tümleşik Geliştirme Ortamı,

bilgisayar yazılımcılarının daha kolay şekilde yazılım geliştirebilmesi için tasarlanan ve yazılım

geliştirme aşamasında geliştiriciye birçok kullanışlı araç sunarak daha kolay ve etkili şekilde

yazılım geliştirmesine yardımcı olan yazılımlardır.

Python için hangi editörleri kullanabiliriz?

Python için birçok editörü kullanabiliriz. Bu tamamen kullanım alışkanlıkları ve kullanım

kolaylığı gibi faktörlere bağlıdır. Bu editörlerden bazıları şunlardır.

Python IDLE: Python.org web sitesinde yer alan ücretsiz bir Python editörüdür. Başlangıç

seviyesi için en temel editördür. Küçük kodları IDLE ekranına yazabilirsiniz ancak daha geniş

kapsamlı kodlar için sol üst köşede File [Dosya] menüsüne ait olan New Window [Yeni

Pencere] seçeneğine tıklamanız gerekir. Burada beyaz bir ekranla karşılaşacaksınız. İşte asıl

kodları buraya yazmanız gerekecektir. Yazdığınız kodları kaydetmek içinse File [Dosya]

menüsüne ait olan Save As [Farklı Kaydet] seçeneğine tıklamanız gerekir. Kodları direk

çalıştırmak için ise Run [Çalıştır] menüsüne ait olan Run Module seçeneğine ya da klavyeden

direk F5 tuşuna tıklayabilirsiniz.

Not: Python'a yeni başlayanların en sık yaptığı hatalardan biri IDLE ekranındaki >>> işareti ile

komut arasında boşluk bırakmalarıdır. Bu durumda kodlar çalışmayacaktır. Bu yüzden kod

yazarken en başta boşluk bırakmamaya özen gösteriniz.

Wing IDE: https://wingware.com/downloads/wingide-101 adresinden indirilebilirsiniz. Wing

IDE Professional, Wing IDE Personal ve Wing IDE 101 olmak üzere üç çeşidi vardır. Bunlardan

Wing IDE 101 ücretsizdir.

Canopy: https://store.enthought.com/downloads/#default adresinden ücretsiz

indirilebilirsiniz.

Pycharm: Python için en çok tercih edilen editördür.

https://www.jetbrains.com/pycharm/download/#section=windows adresinden

indirebilirsiniz.

Diğer Editörler: Sublime Text, Eclipse , Visual Studio, Pydev, VIM, Spyder, Komodo, PTVS, Eric

Python, Anaconda, Geany, Emacs, Atom, PyScripter, Jupyter Notebook vbs...

PROGLAMLAMA KAVRAMLARI:

Derleyiciler : Kaynak kodları hedef kodlara dönüştürür.

Yorumlayıcılar : Kaynak kodları hedef kodlara dönüştürmekle beraber programın

çalışmasını tekrarlar. Python, yorumlanan bir dildir.

Yanaylaçlar : Programın çalışmasıyla ilgili istatistiki veri toplar.

Hata Ayıklayıcılar (Debugging): Programdaki hataları bulur.

Yorumlar: Python 'da kodlar zamanla karmaşık hâle gelir ve bu da okumayı zorlaştırır. Bunun

için kodlara açıklama eklenmesi gerekebilir. # işareti ile program içerisine yorum yazmak

mümkündür. Programlama dili, yorumları göz ardı eder ve kod yapısı bozulmaz. Ör;

'Fırat' , 'Dicle' #virgül iki ayrı string'i birleştirir.

Not: Üç tırnak arasına çoklu yorum yazabiliriz.

>>>a=5

>>>b=9

"""

a ile b'yi toplayalım

bakalım ne çıkacak

 

"""

>>>a+b

14

 

Sabitler, Değişkenler ve Atama: Değişmeyen değerlere sabit, onlara atanan

ifadelere ise değişken denir. Böylece daha sade, işlevsel ve zaman kazandırıcı

işlemler yapılır.

#a değişken, "Trabzon" ise sabit değerdir. = ise atama işlemi yapar.

a = "Trabzon"

print(a)

Çıktı: Trabzon

Ör:

a= 5

b=-4

c=30

 print(a*b+c)

Çıktı:10

Not: Burada = sembolünün anlamı matematikte kullanıldığı şeklinden farklıdır. Matematikte bu

sembol eşitlik sağlar fakat Python 'da simetri olmadığı için 5 = x gibi bir ifade hatalı olacaktır.

5=x

print(x)

Çıktı:hata

Not: Python operatör kullanırken kısaltmalar yapabilir. Örneğin x= x + 5 deyimi x + = 5 olarak

kısaltılabilir. Bu ifade " x'i 5 arttır." anlamına gelir.

>>> x=5

>>> x+=7 #x=x+7 ile aynı anlama gelir.

>>> print(x)

12

>>> x -= 4 #x=x-4 ile aynı anlama gelir.

>>> print(x)

8

>>> x //= 3 #x=x//3 ile aynı anlama gelir.

>>> print(x)

2

>>> x *= 8 #x=x*8 ile aynı anlama gelir.

>>> print(x)

16

>>> x %= 6 #x=x%6 ile aynı anlama gelir.

>>> print(x)

4

>>> x**= 3 #x=x**3 ile aynı anlama gelir.

>>> print(x)

64

DEĞİŞKEN KURALLARI:

1-Değişken adları sayı ile başlamaz.

 3_kilo_elma = "10 tl" 

 kilo_elma_3 = "10 tl" 

2-Değişken adları özel sembol içermez ( _ altçizgi hariç )

 gelir?= "500 TL" 

 kullanici_adi= "admin" 

3- Değişken adlarında boşluk olmaz.

 kullanici adi = "admin" 

 kulllanici_adi = "admin" 

Not: Değişken adlarında Türkçe karakter kullanabiliriz. Ancak uyum sorunu ihtimaline karşı

bundan kaçınınız.

4- Değişken adlarında bazı özel anlam ifade eden kelimeler kullanılmaz.

 True=5 

 true=5  Küçük büyük harf duyarlılığından hata oluşmaz.

 and=8 

 And=8  Küçük büyük harf duyarlılığından hata oluşmaz.

 Not: Python'da özel anlam ifade eden kelimeleri görmek için aşağıdaki kodları yazın.

import keyword

keyword.kwlist

Çıktı:

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else',

'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or',

'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Ör:

import keyword

a=keyword.kwlist

len(a) #Python'da özel anlam ifade eden kaç adet kelime var?

Çıktı: 33

Ör: Bir değere iki veya daha fazla değişken atayabiliriz.

a=b=c=4

print(a*b+c) #4*4+4

 

Çıktı: 20

Ör: Bir değişkene defalarca farklı değerler atayabiliriz. Son değer geçerlidir.

x = 10

x = 20

x = 30

print(x+5) #30+5

Çıktı: 35

Ör: Çoklu atama işlemi

x, y, z = 4,3,2

print(x*y-z) #4*3-2

 

Çıktı:10

Ör: Değişken Takası

x,y,z=4,3,2

x,y,z=y,z,x #x artık y, y artık z, z artık x oldu.

print(z**y*x) #4**2*3

Çıktı: 48

Ör: Değişken iptali için komut penceresini kapatıp açabiliriz ya da del komutunu

kullanabiliriz.

>>>a=2

>>>print(a)

2

>>>del a #a değişkeni artık yok yani iptal edildi.

>>>print(a) #a değişkenini iptal ettiğimiz için kod artık hata verecektir.

VERİ TÜRLERİ:

string: Tırnak içindeki her türlü karakter dizileridir.

>>>"Merhaba Dünya"

'Merhaba Dünya'

Not: string'lerde çift tırnak kullanmak şart değildir. Tek tırnak veya üç tırnak da kullanabiliriz.

>>>'Merhaba Dünya' tek tırnak

'Merhaba Dünya'

>>>'''Merhaba Dünya''' üç tek tırnak

'Merhaba Dünya'

>>>"""Merhaba Dünya""" üç çift tırnak

'Merhaba Dünya'

Not: Python'da üç tırnak kullanmamızın sebebi alt satıra geçebilmektir.

 '''Bilgisayar

Bilimi

Dersi'''

 Çıktı:

Bilgisayar

Bilimi

Dersi

 #Peki, neden bazen tek tırnak veya çift tırnak kullanmamız gerekiyor? Örnek olarak şöyle bir

çıktı elde etmek isteyelim. İstanbul'un illeri

Bu ifadede bir kesme işareti var. İçinde kesme işareti olan bir string'i tek tırnak içine

alamayız. Bu yüzden diğer bir alternatif olan çift tırnağı ya da üç tırnağı kullanmalıyız.

"İstanbul'un illeri" İstanbul'un illeri

"""İstanbul'un illeri""" İstanbul'un illeri

integer: Tam sayılardır. Pozitif, negatif ya da sıfır değeri alabilir. Kesirli değer

içermez. Ör: 10, 0, -10

float: Reel sayılardır. Kayan noktalı sayılar da denir. Ancak burada virgül yerine

nokta kullanmamız gerekir. Ör: 12.6, 12.0, -12.0, 0.0

bool: Herhangi bir ifadenin doğruluğunu veya yanlışlığını sorgular. Bool iki

değer alabilir. Bunlar True ve False 'tur.

str(): Verileri string'e (karakter dizisi) çevirir.

str(4) Çıktı: '4'

str(4.0) Çıktı: '4.0'

str(10+2) Çıktı: '12'

str(10/2) Çıktı: '5'

int(): Verileri integer'a (tamsayı) çevirir.

int(28.9) Çıktı: 28

int(5+4) Çıktı: 9

int(5/3) Çıktı: 1

int(5*0.4) Çıktı: 2

int(0.8+0.9) Çıktı: 1

int("5") Çıktı: 5

Not: Tırnak içindeki verilerin tamsayıya çevrilmesi için tırnak içindeki ifadenin tamsayı olması

gerekmektedir. Aksi halde çevirme işlemi yapılamaz.

int("28.9") #tırnak içerisindeki ifade tamsayı değildir. Hata verir.

int("5+4") #hata, tırnak içerisindeki ifade tamsayı değildir. Hata verir.

int("bilgisayar") #hata, tırnak içerisindeki ifade tamsayı değildir. Hata verir.

float(): Verileri float'a (reel sayı) çevirir.

float(5) Çıktı: 5.0

float("5") Çıktı: 5.0

float("5.7") Çıktı: 5.7

float(-5) Çıktı: -5.0

float(0) Çıktı: 0.0

float(3+4) Çıktı: 7.0

float(3.5+4) Çıktı: 7.5

Not: Tırnak içindeki verilerin float'a çevrilmesi için tırnak içindeki ifadenin tamsayı veya float

olması gerekmektedir. Aksi halde çevirme işlemi yapılamaz.

float("3+4") #tırnak içerisindeki ifade tamsayı veya float değildir. Hata verir.

1

print() fonksiyonu: Ekrana yazdırma fonksiyonudur.

Kural: Stringleri tırnak içerisine almamız gerekir.

print("Merhaba Dünya") Çıktı: 'Merhaba Dünya'

Kural: Stringleri tek tırnak içerisine de alabiliriz.

print('Merhaba Dünya') Çıktı: 'Merhaba Dünya'

Kural: Stringleri üç tek tırnak içerisine de alabiliriz.

print('''Merhaba Dünya''') Çıktı: 'Merhaba Dünya'

Kural: Stringleri üç çift tırnak içerisine de alabiliriz.

print(‚‛‛Merhaba Dünya‛‛‛) Çıktı: 'Merhaba Dünya'

Kural: Stringleri tırnak içerisine almazsak kod hata verir.

print(Merhaba Dünya) Çıktı: Hata

Kural: Stringlerde tırnaklar eksik olursa kod hata verir.

print(‚Merhaba Dünya) Çıktı: Hata

Kural: Sayıları tırnak içerisine almamıza gerek yoktur.

print(5) Çıktı: 5

Kural: Sayıları tırnak içerisine alırsak o artık bir string'tir. Dolayısıyla matematiksel olarak bir

anlam ifade etmez.

print(‚5‛) Çıktı: '5'

2

Kural: Parantezin içinde matematiksel işlem varsa sonuç yazılır.

print(6+3) Çıktı: 9

Kural: Matematiksel işlem tırnak içinde yazıldıysa veri artık string olacağı için işlem yapılmaz

ve aynen yazılır.

print(‚5+4‛) Çıktı: '5+4'

Kural: Boş bir string ekrana yazdırılabilir.

print(‚‛) Çıktı:

Kural: Virgüller ifadelerin arasına birer boşluk bırakır.

print(‚Bilgisayar‛,‛Bilimi‛,‛Kodlama‛)

Çıktı: Bilgisayar Bilimi Kodlama

Kural: + işareti ifadeleri birleştirir.

print(‚bilgi‛+‛sayar‛) Çıktı: bilgisayar

Ör: print( "bilgi"+" "+"sayar")

Çıktı: bilgi sayar

Açıklaması: Ortadaki çift tırnağın içinde bir boşluk karakteri var. Dolayısıyla araya bir boşluk

karakteri ekledik.

Kural: + işareti koymadan da ifadeler birleştirilebilir.

print( ‚bilgi‛ ‛sayar‛) Çıktı: bilgisayar

Ör: print(999 + ‚9‛) #integer ve string toplanmaz

Çıktı: Hata

len() fonksiyonu: Stringlerin uzunluğunu ölçer.

len("Türkiye") Çıktı: 7

len("Bilgisayar Bilimi") Çıktı: 17

"Bilgisayar Bilimi" stringinin uzunluğu 17 karakterdir. Burada boşluk karakterinin de

sayıldığına dikkat edelim.

len("Haydi, Kodla!") Çıktı: 13

Noktalama işaretleri de sayılır.

len("Bilgisayar Bilimi") + len("Dersi") Çıktı: 22

"Bilgisayar Bilimi" stringi ile "Dersi" stringinin uzunluğu sayısal olarak toplandı.

len("Bilgisayar Bilimi") - len("Dersi") Çıktı: 12

Örnekler:

len("len") Çıktı: 3

len("0") Çıktı: 1

len("-4") Çıktı: 2

len("4.5") Çıktı: 3

len("-1.5") Çıktı: 4

len("12+42") Çıktı: 5

len("100-20") Çıktı: 6

len(str(10)) Çıktı: 2

len(int("10") Çıktı: hata (string değil)

len(563) Çıktı: hata (string değil)

type() fonksiyonu: Verilerin türünü sorgular.

type("Merhaba") Çıktı:

type("") Çıktı:

type("4") Çıktı:

type(4) Çıktı:

type(4.2) Çıktı:

type(4.0) Çıktı:

type(Merhaba) Çıktı: tırnak işareti olmadığı için hata verir.

1

\n parametresi: Bu parametreye newline adı verilir. print() fonksiyonu içerisinde kullanıldığında

ilgili yerden bir alt satıra geçiş yapar.

print("bilgisayar bilimi")

Çıktı: bilgisayar bilimi

 

\n karakterini araya koyduğumuzda ilgili yerden bir alt satıra geçiş yapacaktır. Yukarıdaki örneği

bir de şu şekilde yazalım.

Ör:

print("bilgisayar\nbilimi")

Çıktı:

bilgisayar

bilimi

 

#Görüldüğü üzere \n parametresini bilgisayar ifadesinin hemen sonuna koyduk ve böylece tam

da oradan satır başına geçiş yapmış olduk.

\t parametresi: print() fonksiyonu içerisinde kullanıldığında ilgili yerden bir tab kadar boşluk

bırakır.

Ör:

print("Ocak\tŞubat\tMart")

Çıktı: Ocak Şubat Mart

* parametresi: stringi parçalara böler.

Ör:

print(*"Linux")

Çıktı: L i n u x

2

sep parametresi: İngilizcede separator (ayırıcı, ayraç) kelimesinin kısaltmasıdır.

print("www.", "google.", "com")

Çıktı: www. google. com

 sep=" " ifadesi görünmezdir, yani aslında o arka planda çalışır ve default olarak tırnak içindeki

ifadelerin arasında boşluk bırakır. Ancak tırnak içindeki ifadelerin arasına boşluk değil de başka

bir karakter koymak istersek o zaman iş değişir. O halde yapmamız gereken sep parametresinin

içine istediğimiz karakteri koymaktır. O halde sep parametresine ( yani sep= " " deki çift tırnak

arasına ) hiçbir şey yazmaz isek tırnak içindeki ifadelerin arasında hiç boşluk oluşmaz. O halde

doğru kodumuzu yazalım.

 print("www.", "google.", "com", sep="") #Bir boşluk nelere kadir

Çıktı: www.google.com

Not: sep=" " ile sep=None aynı anlama gelir.

end parametresi: print() içerisinde kullanılır. Yazdırılmak istenen ifadelerin sonuna hangi

karakterin geleceğini belirler. Varsayılan olarak "\n" parametresi ile birlikte gelir. Yani yazılan

ifade bitince bir alt satıra geçer.

Ör:

print("Bugün günlerden Salı")

Çıktı: Bugün günlerden Salı

#Burada herhangi bir end parametresi göremiyoruz. Ancak Python yukarıdaki kodu aslında şu

şekilde algılar:

print("Bugün günlerden Salı", end="\n")

#end parametresinin değerini değiştirelim.

print("Bugün günlerden Salı", end=".")

Çıktı: Bugün günlerden Salı.

#Böylece end fonksiyonu ile string'in sonuna bir nokta koymuş olduk.

Ör:

print(*"Linux", sep=".")

Çıktı: L.i.n.u.x

3

Ör:

print(*"Linux", sep="\n")

Çıktı:

L

i

n

u

x

Açıklama: * işaretini kullanarak "Linux" stringini parçalara böldük ve bu parçaların arasında sep

parametresini kullanarak satır başı (\n) yaptık.

string indeksleme ve parçalama: stringlerde her bir karakterin kendine has bir

konumu vardır. Bu konumlara indeks adı verilir. Python'da ve çoğu

programlama dilinde indeksleme "0" dan başlar. Aşağıdaki örnekleri

inceleyelim.

>>> a="Kodlama"

>>> a[0]

'K'

>>> a[2]

'd'

>>> a[-1] #sondan 1.karakter

'a'

>>> a[-3]

'a'

>>> a[2:6]

'dlam'

>>> a[:6] #baştan 6.karaktere kadar tüm karakterler

'Kodlam'

>>> a[2:] #2.karakterden sona kadar tüm karakterler

'dlama'

>>> a[:] #tüm karakterler

'Kodlama'

>>> a[2:-2]

'dla'

>>> a[:-2]

'Kodla'

>>> a="Kodlama Eğitimi"

>>> a[2:13:2] #2.karakterden 13.karaktere kadar 2 sıra atlayarak

'daaEii'

>>> a[::2] #Baştan sona kadar 2 sıra atlayarak

'KdaaEiii'

>>> a[::-1] #Sondan başa kadar 1 sıra atlayarak

'imitiğE amaldoK'

Ör: İsminizi tersten yazdırın.

isim = input ("İsminiz :")

print("İsminizin tersten yazılışı :", isim[::-1])

Formatlama: Bir stringin içine önceden tanımlanan bir veri veya değişken yerleştirebiliriz. Bu

işleme formatlama denir. Bu işlem için süslü parantez kullanmalıyız.

Ör:

"{}{}{}".format(5,6,7)

'567'

Açıklaması: Tırnak işaretlerinin arasına üç adet açılıp kapanan süslü parantez yerleştirdik.

Sonra .format() fonksiyonunun içine sırasıyla 5,6,7 yazdık. Böylece ilk süslü parantezin içine

5, ikinci süslü parantezin içine 6, üçüncü süslü parantezin içine de 7 koymuş ve bunları

yazdırmış olduk.

Ör: Şimdi de değişken kullanarak formatlama işlemi yapalım.

a=3

b=4

"{}+{}'ün toplamı {}'dir.".format(a,b,a+b)

Çıktı: '3+4'ün toplamı 7'dir.'

Ör:

a = "{} ve {} çok iyi arkadaştır."

a.format("Ali", "Veli")

Çıktı: 'Ali ve Veli çok iyi arkadaştır.'

Ör: Süslü parantezlerin içine sayı koyarak yazdırma sıralamasını belirleyebiliriz.

"{2} {0} {1}".format("Ali","Veli","Murat")

Çıktı: 'Murat Ali Veli'

Açıklaması: Tırnak işaretlerinin arasına üç adet açılıp kapanan süslü parantez yerleştirdik. Bu

süslü parantezlerin içine de verilerin hangi sırada olacağını gösteren sayılar koyduk. Yani

burada {2} 'nin anlamı ilk sıraya 2.verinin yani "Murat" ın geleceğidir. Bu arada Python'da

veri sıralaması 1'den değil 0'dan başlamaktadır. O yüzden "Ali" 1.değil 0.sıradadır. Dolayısıyla

"Veli" de 1.sıradadır. Böylece ilk süslü parantezin içine "Murat", ikinci süslü parantezin içine

"Ali", üçüncü süslü parantezin içine de "Veli" koymuş ve bunları yazdırmış olduk.

input() fonksiyonu : Kullanıcıdan bilgi almak için kullanılır.

Ör: Kullanıcıya ismini sorup "Merhaba İsim" yazdıran kodlar.

 isim = input("İsminiz nedir? ")

 print("Merhaba", isim)

 Çıktı:

 İsminiz nedir? Niyazi

 Merhaba Niyazi

Ör: Kullanıcın girdiği iki sayıyı toplayan kodlar: (Öğrenciler daha sonra üç veya dört adet

sayıyı toplasın)

 deger1 = int(input("İlk sayıyı giriniz: "))

 deger2 = int(input("İkinci sayıyı giriniz: "))

 toplam = deger1 + deger2

 print(deger1, "+", deger2, "=", toplam)

 Çıktı:

 İlk sayıyı giriniz: 5

 İkinci sayıyı giriniz: 52

 5 + 52 = 57

Ör: Girilen yaşa yorum yazan kodlar:

 yas = input("Yaşınız: ")

 print("Demek", yas, "yaşındasın.")

 print("Daha çok gençsin")

Ör: Saniyeyi dakikaya çeviren kodlar:

 saniye=int(input("Saniye sayısını giriniz: "))

 dakika=saniye/60

 print(saniye,"saniye ",dakika,"dakika eder")

Ör: Dairenin alanını bulan kodlar:

 r = int(input("Yarıçapı giriniz:"))

 pi = 3.14

 alan = pi * (r **2)

 print("Dairenin alanı:", alan)

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

 saniye = int (input ("saniye sayısını girin:"))

 saat = saniye // 3600 #3600 saniye = 1 saat

 saniye = saniye% 3600

 dakika = saniye // 60 #60 saniye = 1 dakika

 saniye = saniye% 60

 print(saat, "sa", dakika, "dk", saniye, "sn")

OPERATÖRLER (İŞLEÇLER):

Aritmetik Operatörler:

 

Toplama : +

Çıkarma : -

Çarpma : *

Bölme : /

Üs Alma : **

+ operatörü: Toplama ve birleştirme için kullanılır.

>>>10+20 30

>>>5.5+3.8 9.3

>>>9+4.0 13.0

Not: Sayıların çift tırnak içine alınmadığına dikkat edin. Eğer çift tırnak içine alınsaydı veri

türü bir integer değil string olacaktı. Bu durumda matematiksel işlem değil birleştirme

işlemi yapılacaktır.

Örnekler:

>>>"10"+"20" '1020'

>>>"10" + 20 hata (ikisinin de aynı tür veri olması gerekir)

>>>"5" + str(10) '510'

>>>5 + int("10") 15

- operatörü:

>>>50-30 20

>>>-7- - 9 2

>>>1.5-0.5 1.0

>>>4.0-1 3.0

* operatörü: Çarpma ve stringleri belli sayıda tekrar etmek için kullanılır.

>>>10*5 50

>>>-6*-8 -48

>>>1.5*1.5 2.25

Ör:

>>>x=4

>>>y=3

>>>3*x+2*y-5

13

Ör:

>>>"w" * 3 "w" stringinin 3 defa tekrar ederek yazdırdı.

www

Ör:

>>>"aheste " * 2 "aheste " tırnak kapanmadan boşluk bırakıldığına dikkat edin.

aheste aheste

Ör:

>>>"-" * 10 "-" işaretini 10 kere çoğalttık.

----------

/ operatörü: Bölme işlemi gerçekleştirir. Sonuç daima float veri türüdür.

>>>21/3 7.0

>>>int(21/3) 7  burada veri integer'a dönüştürüldü.

>>>21/0 hata

// operatörü: Bölme işleminde kalan sayı göz ardı edilir.(Taban Bölme)

>>>25//6 4

>>>6//25 0

>>>4.5//1.2 3.0

>>>2.1//1 2.0

Not: - eksi ve / bölü işleçlerini karakter dizileri ile birlikte kullanamayız.

Üs Alma Birinci Yol:

5**2 25

5**-1 0.2

5**0 1

Üs Alma İkinci Yol:

pow(5,2) 25

pow(5,-1) 0.2

pow(5,0) 1

pow(11,3,4) 3 11'in 3. kuvveti olan 1331'in 4'e bölümünden kalan sayı

 

Not: 5*103

gibi bir ifade şöyle yazılabilir:

5e2 5000

5E2 5000

Mod İşlemi: Bölme sonucunda kalan sayıyı verir.

25%7 4

22%11 0

6%25 6

0%25 0

25%0 hata

Karekök Alma: Bir sayının 0.5. kuvveti o sayının kareköküdür.

 

>>>144**0.5

12

 

Yuvarlama:

round(28.71) 29

round(28.47) 28

Not: Yuvarlama işleminde eğer 5 değeri ile karşılaşırsak en yakın çift sayıya yuvarlama

yapmamız gerekir.

round(27.5)

28 en yakın çift sayı olan 28'e yuvarlıyor.

round(28.5)

28

Açıklaması: En yakın çift sayı kuralından dolayı sonuç 28 oluyor.

Ör:

x = 793.748

round(x) 794

round(x, 1) 793.7

round(x, 2) 793.75

round(x, 0) 794.0

round(x, -1) 790.0

round(x, -2) 800.

_ (alt çizgi işareti): Son verinin değerini hafızada tutar.

Ör:

>>>10+5

15

>>>_+5 altçizgi ile 5'i topladık.

20 artık son öğe 15 değil 20 oldu.

>>>_/10

2.0

ARİTMETİK ALIŞTIRMALAR:

5+4*3/3-9

Çıktı: 0.0

15-2**4/2+(-2-2)

Çıktı: 3.0

0-9**0

Çıktı: -1

100**0.5/10*2

Çıktı: 2.0

10%6-1

Çıktı: 3

39//12+12/2

Çıktı: 9.0

"10+20+30"

Çıktı: 10+20+30

"55"+"55"

Çıktı: 5555

5+"5"

Çıktı: hata

str(12+8)+"0"

Çıktı: 200

int("56")+int("12")

Çıktı: 68

"k"*3+str(5)

Çıktı: kkk5

2*"6",66)

Çıktı: 66 66

5+4*10/(4+5-9)

hata

 

KARŞILAŞTIRMA OPERATÖRLERİ:

Eşittir ==

Eşit değildir !=

> büyüktür

< küçüktür

>= büyük eşittir

2 False

8>a True

a>=1 True

a>=2 False

"Bilim">>a = 23

>>>b = 10

>>>a == 23 and b == 10

True

>>>a == 23 and b == 56

False

>>>a == 23 or b == 56

True

not: Değil anlamı taşır. Kullanıcı tarafından bir değişkene veri girilip girilmediğini

denetlemek için kullanılabilir.

Ör:

>>>a = 23

>>>not a

False

>>>a = ""

>>>not a

True

>>>a=0

>>>not a

True

Örnek Program: Parola girilip girilmediğini denetleyen kodlar.

parola = input("parola: ")

if not parola:

 print("Parola boş bırakılamaz!")

else:

 print("İşlem tamam")

Aitlik Operatörü: Aitlik işleçleri, bir karakter dizisi ya da sayının, herhangi bir veri içinde

bulunup bulunmadığını sorgular. Python 'da bir tane aitlik işleci bulunur. Bu işleç de in

işlecidir.

>>>a = "abcd"

>>>"b" in a "b" ifadesi a değişkeninin içinde mi?

True

>>>"f" in a "f" ifadesi a değişkeninin içinde mi?

False

Kimlik Operatörü: Python 'da her şeyin bir kimlik numarası vardır. id() fonksiyonu ile bu

kimlik numarasını bulabiliriz.

>>>a = 100

>>>id(a)

137990748 a değişkeninin temsil ettiği 100 sayısının kimlik numarası

1

KOŞULLU DURUMLAR: if, else, elif

if : "eğer" anlamı taşır. Bir koşulun sağlanması durumunda kullanılır.

 

#Yaşa göre yorum yazan program:

yas = int(input("Yaşınızı giriniz: "))

if yas < 14:

 print("Mrb çocuk!")

if 13 < yas < 19:

 print("Mrb Liseli!")

if 18 < yas < 24:

 print("Mrb üniversiteli!")

if 23 < yas < 30:

 print("Evlenme yaşın gelmiş")

if 29 < yas < 55:

 print("Çoluk çocuk nasıl?")

if yas > 54:

 print("Hayatın son demleri!")

else: "değilse" anlamı taşır. Bir koşulun sağlanmaması durumunda kullanılır.

 

#Bir sayının tek mi çift mi olduğunu tespit eden program:

sayı = int(input("Bir sayı girin: "))

if sayı % 2 == 0:

 print("Girdiğiniz sayı çift sayıdır.")

 else:

 print("Girdiğiniz sayı tek sayıdır.")

2

#Kullanıcı adı yazılmamışsa uyarı veren program:

kullanıcı = input("Kullanıcı adınız: ")

if kullanıcı:

 print("Teşekkürler!")

else:

 print("Kullanıcı adı alanı boş bırakılamaz!")

#Kullanıcı adı veya parola yanlışsa uyarı veren program:

kullanıcı_adı = input("Kullanıcı adınız: ")

parola = input("Parolanız: ")

if kullanıcı_adı == "aliveli" and parola == "1234":

 print("Programa hoşgeldiniz")

else:

 print("Yanlış kullanıcı adı veya parola!")

elif: "eğer değilse" anlamı taşır. Eğer kodlarda sürekli if kullanırsak program

tüm koşulları gözden geçirip ona göre karar verir. Ancak else sadece bir önceki

if bloğuna göre hareket eder.

#boya göre yorum yazan program

boy = int(input("boyunuz kaç cm?"))

if boy < 160:

 print("boyunuz kısa")

elif boy < 180:

 print("boyunuz normal")

elif boy < 200:

 print("boyunuz uzun")

else:

 print("boyunuz çok uzun")

Not: "if" ile "elif" arasındaki farkı daha iyi anlamak için yukarıdaki programda elif yazan

yerleri silip yerine if yazın. Bu durumda boyunuz kaç cm sorusuna 165 olarak cevap verseydik

çıktı aşağıdaki gibi olacaktı. Çünkü "if" tüm koşulları değerlendirmiş olacaktı.

Çıktı:

boyunuz kısa

boyunuz normal

boyunuz uzun

3

#Parola uzunluğuna göre işlem yapan program:

parola=input("Parolanız: ")

toplam_uzunluk=len(parola)

mesaj="Parolanız toplam {} karakterden oluşuyor!"

if toplam_uzunluk > 12:

 print(mesaj.format(toplam_uzunluk)

 print("Parolanızın toplam uzunluğu 12 karakteri geçmemeli!")

else:

 print("Sisteme hoşgeldiniz!")

#İlk sayının ikinci sayıya tam bölünüp bölünmediğini hesaplayan ve

sonuca göre kullanıcıyı bilgilendiren program:

bölünen = int(input("Bir sayı girin: "))

bölen = int(input("Bir sayı daha girin: "))

şablon = "{} sayısı {} sayısına tam".format(bölünen, bölen)

if bölünen % bölen == 0:

 print(şablon, "bölünüyor!")

else:

 print(şablon, "bölünmüyor!")

for döngüsü: Başlangıç, bitiş ve artış değerleri belirtilen işlemleri tek tek tekrar eder.

Ör: 1'den 5' kadar olan sayıları yazdıralım.

print(1)

print(2)

print(3)

print(4)

print(5)

Çıktı:

1

2

3

4

5

Ancak, 1'den 100'e kadar yazmak gerekirse böyle bir çözüm yolu doğru olmayacaktır! Bu

durumda döngü yapıları tercih edilmelidir. Python dilinde döngü için while ve for yapıları

kullanılır.

Ör: 1'den 100'e kadar olan tüm sayıları yazdıralım. Değişkenimiz n olsun;

for n in range(1,100):

 print(n, end=" ")

Çıktı: 1 2 3 . . . . . 97 98 99

Ör: Şimdi de 1'den 100'e kadar tüm tek sayıları yazdıralım. Değişkenimiz yine n olsun;

for n in range(1,100,2):

 print(n, end=" ")

Çıktı: 1 3 5 . . . . . 95 97 99

Açıklama: range(1, 100, 2) ifadesindeki 1 başlangıç sayısıdır. Eğer burası boş bırakılırsa sayı

otomatik olarak sıfırdan başlar. 100 ise yazılacak sayıların sınırıdır. 100 çıktıya dâhil değildir. 2

ise artış miktarını gösterir. Yani sayıyı 2'şer arttırır.

Örnekler:

range(10) → 0, 1,2,3,4,5,6,7,8,9 başlangıç ve artış değeri yok. Sadece bitiş değeri var.

range(1, 10) → 1,2,3,4,5,6,7,8,9  artış değeri yok. Sadece başlangıç ve bitiş değeri var.

range(1, 10, 2) → 1,3,5,7,9  başlangıç, bitiş ve artış değeri var.

range(10, 0, -1) → 10,9,8,7,6,5,4,3,2,1  buradaki artış değeri eksiye doğru gitmektedir.

range(10, 0, -2) → 10,8,6,4,2

range(2, 11, 2) → 2,4,6,8,10

range(-5, 5) → −5,−4,−3,−2,−1,0,1,2,3,4

range(1, 2) → 1

range(1, -1, -1) → 1,0

range(0) → ()

Ör: 21'den 0'a kadar olan sayıları 3'er 3'er azaltarak yazdıralım.

for n in range(21,0,-3):

 print(n, end=" ")

Çıktı: 21 18 15 12 9 6 3

Ör: 1'den 100' kadar olan sayıların toplamı

top= 0

for i in range(1,100):

 top+= i

print(top)

Çıktı: 4950

Ör: 10 ve 10'un üstleri yazdıran program

for i in range(5):

 print("{}".format(10**i))

Çıktı:

1

10

100

1000

10000

Ör: Bir string değişkeninin her bir karakterini ayrı ayrı işleme ve yazdırma

a = "kodlama"

for harf in a:

 print(harf, end=" ")

Çıktı: k o d l a m a

Ör:

sayılar = "12345"

for sayı in sayılar:

 print(int(sayı) * 2, end=" ")

Çıktı: 2 4 6 8 10

Ör:

sayılar = "1234567"

for i in sayılar:

 if int(i) > 3:

 print(i, end=" ")

Çıktı: 4 5 6 7

Açıklaması: sayılar değişkeni oluşturduk. "1234567" ifadesindeki her bir karakteri ayırdık.

Yani tüm sayılar artık bağımsızlığını ilan etmiş durumda. Ayrıca her bir karakteri i değişkene

atadık. Ancak biz bu karakterleri int(i) kodunu yazarak tamsayıya çevirdik. Çünkü

matematiksel işlemler yapmak için verileri sayıya çevirmemiz gerekiyor. if komutuyla da

3'ten büyük olanları yazdırdık.

Ör: Parola girilirken Türkçe karakter uyarısı veren program

tr_harfler = "ŞşÇçĞğÖöÜüİı"

parola = input("Parolanız: ")

for karakter in parola:

 if karakter in tr_harfler:

 print("Parolada Türkçe karakter kullanılamaz")

Ör: İlk_metin'de olan ama ikinci_metin'de olmayan öğeleri yazdırmak

ilk_metin = "Bilgisayar"

ikinci_metin = "Bilişim"

for s in ilk_metin: #ilk_metin'deki her öğeye s diyoruz

 if not s in ikinci_metin: #eğer bu öğeler ikinci_metinde yoksa

 print(s, end=" ") #bu olmayan s'leri yazdırıyoruz

Çıktı: g s a y a r

1

while döngüsü: Bir koşul sağlanmaya devam ettiği sürece işlemleri tekrarlar.

İngilizce bir kelime olan while, Türkçede '... iken, ... olduğu sürece' gibi

anlamlarına gelir.

Ör:

while a == 1: # a, 1 olduğu sürece

Ör:

a = 1

while a < 10: # a 10'dan küçük olduğu sürece

print("Ali") # ekrana "Ali" yazdır.

Açıklaması: Burada programımız diyor ki a, 10'dan küçük olduğu sürece ekrana "Ali" yazdır.

Ancak a=1 olduğu için a her zaman 10'dan küçük olacak. Bu da ekrana sürekli "Ali"

yazılmasına neden olacak. Buna sonsuz döngü diyoruz. (infinite loop) Buna son vermek için

klavyenizde Ctrl+C veya Ctrl+Z tuşlarına basarak programı durmaya zorlayabilirsiniz.

#Bu durumu düzeltmek için programı şu şekilde yazalım;

a = 1

while a < 10:

 a += 1

 print("Ali", end=" ")

Çıktı: Ali Ali Ali Ali Ali Ali Ali Ali Ali

Açıklaması: Python öncelikle a = 1 satırını görüyor ve a'nın değerini 1 yapıyor.

Daha sonra (while a < 10) satırını görüyor.

Ardından a'nın değerini 1 artırıyor (a += 1) ve a'nın değeri 2 oluyor.

a'nın değeri (yani 2) 10'dan küçük olduğu için Python ekrana ilgili çıktıyı veriyor.

İlk döngüyü bitiren Python başa dönüyor ve a'nın değerinin 2 olduğunu görüyor.

a'nın değerini yine 1 artırıyor ve a'yı 3 yapıyor. a'nın değeri hâlâ 10'dan küçük olduğu için

ekrana yine ilgili çıktıyı veriyor. İkinci döngüyü de bitiren Python yine başa dönüyor ve a'nın

değerinin 3 olduğunu görüyor. Yukarıdaki adımları tekrar eden Python, a'nın değeri 9 olana

kadar dönmeye devam ediyor. a'nın değeri 9'a ulaştığında Python a'nın değerini bir kez daha

artırınca bu değer 10'a ulaşıyor. Python a'nın değerinin artık 10'dan küçük olmadığını

görüyor ve programı sona erdiriyor.

2

Ör:

a=1

while a

Paylaş Facebook  Paylaş twitter  Paylaş google  Paylaş linkedin
Yayın: 02.12.2021 - Güncelleme: 10.05.2022 11:22 - Görüntülenme: 575
  Beğen | 0  kişi beğendi

Etiketler :
Easy Python,