Python\\nMerhaba:|"
]
},
{
"cell_type": "markdown",
"id": "2a4d963a-0a30-4e86-a08a-e39b2c617da1",
"metadata": {},
"source": [
"Bunlar dışında `\\` ile birlikte 'u', 'U', 'n', 'N', 'x', 'a' ve 'f' kaçış dizileri de vardır. Bunlara çarpmamak için 'r' yöntemini kullanınız."
]
},
{
"cell_type": "markdown",
"id": "7e63578c",
"metadata": {},
"source": [
"Print ile yazılan satırın sadece sonunda gerçekleşmesini istediklerimizi şöyle tanımlayabiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4a08f5ce",
"metadata": {},
"outputs": [],
"source": [
"print(\"Ben ezelden\",\"beridir hür yaşadım,\",\"hür yaşarım.\",end='\\t')\n",
"print (\"Hangi çılgın\",\"bana zincir vuracakmış?\",\"Şaşarım!\",end='')\n",
"print (\"Kükremiş sel gibiyim; bendimi çiğner, aşarım;\")"
]
},
{
"cell_type": "markdown",
"id": "2f83c7cb",
"metadata": {},
"source": [
"Tırnak içinde yazılan metnin her karakteriyle birbirinden ayrıymış gibi işlem yaptırmak için * işlecini kullanabiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9124ec37",
"metadata": {},
"outputs": [],
"source": [
"print(*\"TBMM\",sep=\".\")\n",
"print(*\"TÜRKİYE\",sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "743f07d5",
"metadata": {},
"source": [
"Dinamik metinler için kıvırcıklı parantezler ile format metodunu kullanabiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d5cd6814",
"metadata": {},
"outputs": [],
"source": [
"print(\"{} programlama dili {} türden bir dilidir ve {} yılında kullanıma sunulmuştur.\".format(\"Python\",\"yorumlanan\",1994))"
]
},
{
"cell_type": "markdown",
"id": "37b9bca6-888f-49f3-bbeb-d4362b30ee8b",
"metadata": {},
"source": [
"Dinamik metinler için format metodundan daha kullanışlı olan 'f string' yöntemi değişkenler konusu ile anlatılacaktır.
\n",
"Python programlama dilindeki öğelerin sahip olduğu tüm metotları görmek için `dir()` fonksiyonunu çalıştırabilirsiniz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b7bce0fe",
"metadata": {},
"outputs": [],
"source": [
"print(*dir(print),sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "8b6f3063",
"metadata": {},
"source": [
"Etkinlik: print() fonksiyonu ile * sembolünü kullanarak ekrana 5 satırlık içi dolu bir dikdörtgen-kare çiziniz.
\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "831ac128-49a2-4a91-9056-c6131502a69b",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"print(\"* \"*5,\"* \"*5,\"* \"*5,\"* \"*5,\"* \"*5,sep=\"\\n\") #5X5 Kare için\n",
"print(\"-------\")\n",
"print(\"* \"*8,\"* \"*8,\"* \"*8,\"* \"*8,\"* \"*8,sep=\"\\n\") #5X8 Dörtgen için"
]
},
{
"cell_type": "markdown",
"id": "3eb8ff16-3696-4591-bda1-b88fdc8ba2a9",
"metadata": {},
"source": [
"Etkinlik: print() fonksiyonu ile * sembolünü kullanarak ekrana 5 satırlık içi dolu bir dik üçgen çiziniz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c4735cd0-4c1a-4001-9fca-d0d691b56c83",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"print(\"* \"*1,\"* \"*2,\"* \"*3,\"* \"*4,\"* \"*5,sep=\"\\n\") #her satırda * işareti artan olarak gider"
]
},
{
"cell_type": "markdown",
"id": "73f2281b-6fc4-4df8-b95c-68355adde8fc",
"metadata": {},
"source": [
"# Python'da Turtle Kütüphanesi ile Algoritmik İşlemler"
]
},
{
"cell_type": "markdown",
"id": "ec63c998-9ec5-472b-a123-eef7e4f729a1",
"metadata": {},
"source": [
"Turtle öğretim amaçlı 2 Boyutlu çizim kütüphanesidir. Geometrik çizimler yapmamızı sağlayan fonksiyonları barındırır. `import turtle` olarak Python'a çekilir. Varsayılan olarak turtle 0° (sağa dönük) ve kalem basılı olarak başlar. Not: Jupyter Notbeook ile kullanılınca son satıra `turtle.done()` yazılmalıdır yoksa her çalıştırmada hata alınır."
]
},
{
"cell_type": "markdown",
"id": "fe3b7f15-be43-4823-85f9-05ce5a90cdf6",
"metadata": {},
"source": [
"## Turtle Kütüphanesi ile Gelen Bazı Fonskiyonlar"
]
},
{
"cell_type": "markdown",
"id": "b5df47c5-a118-49f8-a7dd-5ae7bae7663d",
"metadata": {},
"source": [
"- Bulunduğu derece yönüne doğru belirlenen pixel büyüklüğünde çizgi çizmek için `turtle.forward()` fonskiyonu kullanılır. Örnek: `turtle.forward(100)`(sağa doğru 100 pixel çizgi çizdi)\n",
"- Bulunduğu derecenin tersi yönüne doğru belirlenen pixel büyüklüğünde çizgi çizmek için `turtle.backward()` fonskiyonu kullanılır. Örnek: `turtle.backward(100)` (sola doğru 100 pixel çizgi çizdi)\n",
"- Bulunduğu dereceden belirlenen değerde sola döndürmek için `turtle.left()` fonskiyonu kullanılır.\n",
"- Bulunduğu dereceden belirlenen değerde sağa döndürmek için `turtle.right()` fonskiyonu kullanılır.\n",
"- Kalem kalınlığını değiştirmek için `turtle.pensize()` fonskiyonu kullanılır.\n",
"- Kalem rengini değiştirmek için `turtle.color()` fonskiyonu kullanılır. Örnek renker, \"red\", \"blue\" vb.\n",
"- (Renkle) Doldurma işlemini başlatmak için `turtle.begin_fill()` fonskiyonu kullanılır. Parametresiz kullanılır. Kalem renginde doldurur.\n",
"- (Renkle) Doldurma işlemini bitirmek için `turtle.end_fill()` fonskiyonu kullanılır.\n",
"- Belirlenen yarıçap değerinde daire çizmek için `turtle.circle()` fonskiyonu kullanılır.\n",
"- Çizme hızını belirlemek için `turtle.speed()` fonskiyonu kullanılır.\n",
"- Kalemi kaldırmak (çizmemesi) için `turtle.penup()` fonskiyonu kullanılır.\n",
"- Kalemi bastırmak (çizmesi) için `turtle.pendown()` fonskiyonu kullanılır.\n",
"- Ekrandaki bir noktaya direkt hareket etmek için `turtle.goto(x,y)` fonskiyonu kullanılır. (setx, sety ve xcor, ycor fonksiyonları da var.)\n",
"- Ekranı temizlemek için `turtle.clear()` fonskiyonu kullanılır.\n",
"- Ekran boyutunu ayarlamak için `turtle.screensize(canvwidth=genişlik, canvheight=yükseklik, bg=\"renk\")` fonskiyonu kullanılır. Örnek: turtle.screensize(canvwidth=400, canvheight=300, bg=\"blue\")"
]
},
{
"cell_type": "markdown",
"id": "d3bf0bc7-80e2-4fc0-99b2-6dbf2f244162",
"metadata": {},
"source": [
"Etkinlik: Bir Kare çiziniz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2a2b3524-973e-4d6a-ad5f-f40ffdaa4b42",
"metadata": {},
"outputs": [],
"source": [
"#Etkinlik Çözümü\n",
"import turtle\n",
"turtle.forward(75)\n",
"turtle.right(90)\n",
"turtle.forward(75)\n",
"turtle.right(90)\n",
"turtle.forward(75)\n",
"turtle.right(90)\n",
"turtle.forward(75)\n",
"turtle.done()"
]
},
{
"cell_type": "markdown",
"id": "dc1d3943-6ea3-4004-ba7e-38829f9c0c29",
"metadata": {},
"source": [
"Etkinlik: İçi dolu olan bir daire çiziniz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f7a78185-0171-4a3f-9aaa-ca9e2d260788",
"metadata": {},
"outputs": [],
"source": [
"#Etkinlik Çözümü\n",
"import turtle\n",
"turtle.color(\"red\")\n",
"turtle.begin_fill()\n",
"turtle.circle(75)\n",
"turtle.end_fill()\n",
"turtle.done()"
]
},
{
"cell_type": "markdown",
"id": "63dfd2d2",
"metadata": {},
"source": [
"# Değişken, Değişkeni İsimlendirme, Değişkene Değer Atama"
]
},
{
"cell_type": "markdown",
"id": "876def4d",
"metadata": {},
"source": [
"**Değişken (variable),** bir programda verilerin veya bilgilerin saklandığı **hafıza birimleridir**.
\n",
"**Değişkene isim verirken**, programlama diline ait öğeler kullanılamaz. Örneğin \"print\" adında bir değişkeniniz olamaz.
\n",
"Yasaklı diğer öğeleri de listelemek için pythonda şu kodu yazabiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d14ec5a1",
"metadata": {},
"outputs": [],
"source": [
"import keyword\n",
"print(keyword.kwlist)"
]
},
{
"cell_type": "markdown",
"id": "2a273f24",
"metadata": {},
"source": [
"Ayrıca değişken isimleri **rakamla başlayamaz, Türkçe karakterler (ÜĞİŞÇÖ, üğışçö) genelde kullanılamaz, tüm özel karakterler (alt çizgi _ hariç) de kullanılamaz.** Python Türkçe karakterleri kullanmaya izin verir, bu konuda nadir dillerden biridir. Bir diğer özelliği de büyük-küçük harf duyarlı olmasıdır. Yani 'ad' değişkeni ile 'AD' değişkeni birbirinden farklı değişkenler olarak kullanılabilir.
\n",
"**Değişkene değer atama** \"=\" operatörü (işleci) ile yapılır sağdaki veriyi soldaki değişkene atar (tanımlar)."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5ea56057",
"metadata": {},
"outputs": [],
"source": [
"#Doğru değişken isimlendirmeleri\n",
"degisken1 = \"Hakkıdır\"\n",
"degisken_1 = \"Hür Yaşamış\"\n",
"DEGISKEN = \"Bayrağımın\"\n",
"_degisken = \"Hürriyet!\"\n",
"\n",
"print(degisken1,degisken_1,DEGISKEN,_degisken)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1ad69e33",
"metadata": {},
"outputs": [],
"source": [
"#Yanlış değişken isimlendirmeleri\n",
"1degisken = \"Yanlış\"\n",
"degisken-1 = \"Değişken\"\n",
"D E.GI/S*KEN = \"İsimlendirmesi\""
]
},
{
"cell_type": "markdown",
"id": "985931df",
"metadata": {},
"source": [
"Etkinlik: Doğru bir değişken adı ile TC Kimlik numaranızı, Adınızı ve e-posta adresinizi bir değişkene atayınız ve ekrana bastırınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fd41d81e-4175-4a6f-bb3e-1f79508a179d",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"tcNo = 12345678900\n",
"adSoyad = \"Ahmet Yüksel ÖZEMRE\"\n",
"e_posta = \"ornek1@mail.k12.tr\"\n",
"print (tcNo,adSoyad,e_posta,sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "c25f3ff1",
"metadata": {},
"source": [
"Değişkenleri isimlendirirken sonrasında **kolay hatırlayacağımız, basit, anlaşılır ve mantığa uygun** isimler vermek önemlidir. Bu sebeple değişken isimlendirme standartları (teamülleri) vardır. Bunlar:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5cbaf413",
"metadata": {},
"outputs": [],
"source": [
"#1.Pascal Standartı: Değişkenin her kelimesini büyük harfle yazmak.\n",
"MeclisKurulusYili = \"1920\"\n",
"print(MeclisKurulusYili)\n",
"\n",
"#2.Deve Standartı: Değişkenin ilk harfini küçük diğer kelimelerin ilk harfini büyük yazmak.\n",
"meclisKurulusYili = 1920\n",
"print(meclisKurulusYili)\n",
"\n",
"#3.Yılan Standartı: Değişkenin her kelimesinin arasına alt tire (_) koymak.\n",
"meclis_kurulus_yili = '1920' #veya\n",
"iMeclis_Kurulus_Yili = 1920 #veya\n",
"MECLIS_KURULUS_YILI = \"1920\"\n",
"print(meclis_kurulus_yili,Meclis_Kurulus_Yili,MECLIS_KURULUS_YILI)"
]
},
{
"cell_type": "markdown",
"id": "1b2f0a1d",
"metadata": {},
"source": [
"# Değişken Tipleri"
]
},
{
"cell_type": "markdown",
"id": "dfe0cec6-05e5-42d8-b135-c10351efc47b",
"metadata": {},
"source": [
"## String (str) "
]
},
{
"cell_type": "markdown",
"id": "73f12c3c",
"metadata": {},
"source": [
"Karakter dizisi, metin, dize demektir. Çift tırnak (\" \") veya tek tırnak (' ') arasında yazılan herşey string olur."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "353dd363",
"metadata": {},
"outputs": [],
"source": [
"#Örnek string tipinde değişkenler\n",
"karakterDizisi1 = \"M.Ö. 209 yılında Mete Han tarafından kurulan Türk Ordusu 'Kurtuluş Savaşı'ndan beri hep muzafferdir.\"\n",
"karakterDizisi2 = 'Kurtuluş Savaşı \"1919-1923\" yılları arasında gerçekleşmiştir.'\n",
"print(karakterDizisi1,karakterDizisi2)"
]
},
{
"cell_type": "markdown",
"id": "ae7ddf56",
"metadata": {},
"source": [
"Tipini bilmediğimiz değişken tipini öğrenmek-almak için kullanılan `type()` fonksiyonunu kullanarak tipini görüntüleyelim."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7f9e258f",
"metadata": {},
"outputs": [],
"source": [
"dTipi1 = \"TÜRKİYE\"\n",
"dTipi2 = '1923'\n",
"print(type(dTipi1))\n",
"print(type(dTipi2))"
]
},
{
"cell_type": "markdown",
"id": "c8db5d13",
"metadata": {},
"source": [
"Karakter dizisi (string) olmayan bir değişkeni stringe dönüştürmek için `str()` fonksiyonu kullanılır."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6321826b",
"metadata": {},
"outputs": [],
"source": [
"degisken = 1923 #Tırnak arasına yazılmadığı için string değildir.\n",
"print(type(degisken),type(str(degisken)),sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "a6479c23",
"metadata": {},
"source": [
"Karakter dizilerinin (string) uzunluğunu `len()` fonksiyonu ile öğrenebiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ffebb86d",
"metadata": {},
"outputs": [],
"source": [
"misra = \"\"\"\n",
"Arkadaş! Yurduma alçakları uğratma sakın;\n",
"Siper et gövdeni, dursun bu hayâsızca akın.\n",
"Doğacaktır sana va’dettiği günler Hakk’ın...\n",
"Kim bilir, belki yarın... belki yarından da yakın.\n",
"\"\"\"\n",
"print(len(misra))"
]
},
{
"cell_type": "markdown",
"id": "48943e38",
"metadata": {},
"source": [
"Etkinlik: Adınızın karakter uzunluğunu len fonksiyonu ile bulunuz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8b635f22-ea15-4264-8bb1-121080d5c50b",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"adSoyad = \"Ahmet Yüksel ÖZEMRE\"\n",
"uzunluk = len(adSoyad)\n",
"print (adSoyad,\"ismi\",uzunluk,\"karakterdir.\")\n",
"\n",
"#veya format metodu ile\n",
"print (\"{} ismi {} karakterdir.\".format(adSoyad,uzunluk))\n",
"\n",
"#veya f string yöntemi ile\n",
"print (f'{adSoyad} ismi {uzunluk} karakterdir.')"
]
},
{
"cell_type": "markdown",
"id": "7f0e6ad6",
"metadata": {},
"source": [
"Çok sık kullanılan bir yöntem olan `print(f' ')` yöntemi stringler ile kullanılabilir. Örnek:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "519e54d2",
"metadata": {},
"outputs": [],
"source": [
"isim=\"TÜRKİYE\"\n",
"dogumYili=1923\n",
"dogumYeri=\"Ankara\"\n",
"print(f'{isim} Cumhuriyeti {dogumYili} yılında {dogumYeri} şehrinde kurulmuştur.')"
]
},
{
"cell_type": "markdown",
"id": "0db9ef5c",
"metadata": {},
"source": [
"### Input() Fonksiyonu ile Kullanıcıdan Veri Alma"
]
},
{
"cell_type": "markdown",
"id": "727b7ffd-7741-473c-8cf2-73632256f408",
"metadata": {},
"source": [
"`input()` fonksiyonu kullanıcıdan veri almamızı sağlar. Kullanıcının verisini girmesini bekler, veri girildikten sonra enter(giriş) tuşuna basınca girilen veriyi hafızaya alır. Input ile alınan veri bir değişkene atanırsa, girilen değer değişkene atanır.
\n",
"**Input fonksiyonu ile kullanıcıdan alınan her veri string veri türündedir.**"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8a82ce70",
"metadata": {},
"outputs": [],
"source": [
"girilenVeri = input(\"Lütfen Yaşınızı Giriniz: \")\n",
"print(\"{} yaşındasınız.\".format(girilenVeri))"
]
},
{
"cell_type": "markdown",
"id": "5ea38871",
"metadata": {},
"source": [
"Etkinlik: Kullanıcıdan aldığınız isim, yaş, meslek bilgilerini .format() metodu ile ekrana tek satırda yazınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "17a2b959-4652-4efb-ab29-cf828377df31",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"isim = input(\"İsminizi Giriniz: \")\n",
"yas = input(\"Yaşınızı Giriniz: \")\n",
"meslek = input(\"Mesleğinizi Giriniz: \")\n",
"print (\"{} isiminde ve {} yaşında bir {}.\".format(isim,yas,meslek))"
]
},
{
"cell_type": "markdown",
"id": "21d87697",
"metadata": {},
"source": [
"### String (str) Değişkeninin Metotları:"
]
},
{
"cell_type": "markdown",
"id": "3c886547-0062-4955-8982-d0faff9a3cc8",
"metadata": {},
"source": [
"Karakter dizisini (stringi) tamamen büyük harf, küçük harf, sadece ilk harfi büyük, sadece kelimelerin ilk harfi büyük veya tersine(büyüğü küçük-küçüğü büyük) olacak şekilde değiştirebiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a0593c6c",
"metadata": {},
"outputs": [],
"source": [
"metin = \"PytHON pRoGrAmLaMa dİLİ\"\n",
"print(metin.upper())\n",
"print(metin.lower()) #eğer Türkçe karakterler küçülmüyorsa casefold() metodunu kullanabilirsiniz.\n",
"print(metin.capitalize())\n",
"print(metin.title())\n",
"print(metin.swapcase())"
]
},
{
"cell_type": "markdown",
"id": "2108d6a7",
"metadata": {},
"source": [
"Etkinlik: \"Mavi VATAN Akdeniz\" sözcüğünü tamamen küçük, büyük vb. metodlarla işleyiniz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c222ff51-530f-4d86-a253-5b99005b7e84",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"sozcuk = \"Mavi VATAN Akdeniz\"\n",
"print(sozcuk.upper(),sozcuk.lower(),sozcuk.capitalize(),sozcuk.title(),sozcuk.swapcase(),sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "8e3d6902",
"metadata": {},
"source": [
"Karakter dizisindeki (string) harfleri `replace()` metodu ile değiştirebiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e11d9a4a",
"metadata": {},
"outputs": [],
"source": [
"vatan = \"TÜRKİYE\"\n",
"print(vatan.replace(\"ÜRKİYE\", \"ürkiye\"))\n",
"print(vatan.replace(\"İYE\", \"\"))\n",
"\n",
"#Bir karakter birden çok ise kaç kez tekrarlayacağını da metotta parametre olarak girebiliriz.\n",
"palindrom = \"KAZAK\"\n",
"print(palindrom.replace(\"A\",\"I\",1))"
]
},
{
"cell_type": "markdown",
"id": "10ba9a5b",
"metadata": {},
"source": [
"Etkinlik: input() foknsiyonu ile kullanıcıdan adını alarak büyük harf yapın, ardından kullanıcının adındaki Ç'leri C olarak, Ğ'leri G olarak, İ'leri I olarak, Ö'leri O olarak, Ü'leri U olarak değiştiriniz ve ekrana yeniden yazdırınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f65528ba-5c66-479d-bdac-5bc16227502a",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"sozcuk = input(\"Adınızı Giriniz: \").upper()\n",
"sozcuk = sozcuk.replace(\"Ç\",\"C\")\n",
"sozcuk = sozcuk.replace(\"Ğ\",\"G\")\n",
"sozcuk = sozcuk.replace(\"İ\",\"I\")\n",
"sozcuk = sozcuk.replace(\"Ö\",\"O\")\n",
"sozcuk = sozcuk.replace(\"Ş\",\"S\")\n",
"sozcuk = sozcuk.replace(\"Ü\",\"U\")\n",
"print(sozcuk)\n",
"\n",
"#veya sıralı şekilde\n",
"sozcuk = input(\"Adınızı Giriniz: \").upper()\n",
"print(sozcuk.replace(\"Ç\",\"C\").replace(\"Ğ\",\"G\").replace(\"İ\",\"I\").replace(\"Ö\",\"O\").replace(\"Ş\",\"S\").replace(\"Ü\",\"U\"))"
]
},
{
"cell_type": "markdown",
"id": "9df7feff",
"metadata": {},
"source": [
"String tipinde bir değişkeni `del` deyimi (komutu) ile hafızadan silebiliriz. Esasında bu deyim (komutu) her tipte değişken için geçerlidir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f6738d86",
"metadata": {},
"outputs": [],
"source": [
"dil = \"Python\"\n",
"del dil\n",
"print(dil)"
]
},
{
"cell_type": "markdown",
"id": "3bd4ca98",
"metadata": {},
"source": [
"String tipinde bir değişkende bir karakter veya karakter dizisinden ne kadar var `count()` metodu ile sayabiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7df11346",
"metadata": {},
"outputs": [],
"source": [
"ornekMetin = \"Dal sarkar kartal kalkar, kartal kalkar dal sarkar, dal kalkar kantar tartar.\"\n",
"print(ornekMetin.count(\"a\"))\n",
"print(ornekMetin.count(\"kartal\"))"
]
},
{
"cell_type": "markdown",
"id": "f3b80cc2-ccb8-49a8-be04-921dd60e8475",
"metadata": {},
"source": [
"Etkinlik: İstiklal Marşımızın ilk kıtasında kaç tane \"a\" harfi var bulunuz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a041c3ad-b1f2-4b01-853a-e625e91c43a3",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"ilkKita = \"\"\"\n",
"Korkma, sönmez bu şafaklarda yüzen al sancak;\n",
"Sönmeden yurdumun üstünde tüten en son ocak.\n",
"O benim milletimin yıldızıdır, parlayacak;\n",
"O benimdir, o benim milletimindir ancak.\n",
"\"\"\"\n",
"print(ilkKita.count(\"a\"))"
]
},
{
"cell_type": "markdown",
"id": "823c7040",
"metadata": {},
"source": [
"String tipinde bir değişkenin içindeki karakterin sırasını `find()` metodu ile bulabiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d81537b4",
"metadata": {},
"outputs": [],
"source": [
"toprak = \"AAAAABBBBBBCCCCCCCCCCCCCCDDDDDDDDDDDDDDD\"\n",
"print(toprak.index(\"C\")) #ilk geçtiği yeri bulmak için index kullanılır.\n",
"print(toprak.rindex(\"A\")) #son geçtiği yeri bulmak için rindex kullanılır.\n",
"print(toprak.find(\"X\")) #find metodu index'le aynı işe yarar fakat index metodu bulamazsa 'ValueError' hatası verir, find ise -1\n",
"print(toprak.rfind(\"X\")) #find metodunun tersten arama yapanı."
]
},
{
"cell_type": "markdown",
"id": "2ff8b90f-914b-460b-980f-05ae33d4a610",
"metadata": {},
"source": [
"Etkinlik: İstiklal Marşımızın ilk kıtasında \"a\" harfi geçen ilk sırayı ve son sırayı bulunuz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "64fb37c1-326d-4e13-8c5b-4392d10c89c3",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"ilkKita = \"\"\"\n",
"Korkma, sönmez bu şafaklarda yüzen al sancak;\n",
"Sönmeden yurdumun üstünde tüten en son ocak.\n",
"O benim milletimin yıldızıdır, parlayacak;\n",
"O benimdir, o benim milletimindir ancak.\n",
"\"\"\"\n",
"print(ilkKita.index(\"a\")) #ilk yer\n",
"print(ilkKita.rindex(\"a\")) #son yer\n",
"\n",
"#veya\n",
"print(ilkKita.find(\"a\")) #ilk yer\n",
"print(ilkKita.rfind(\"a\")) #ilk yer"
]
},
{
"cell_type": "markdown",
"id": "e770cf5f",
"metadata": {},
"source": [
"String tipinde bir değişkenin başındaki veya sonundaki boşlukları `strip()` metodu ile silebiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "58bfc69d",
"metadata": {},
"outputs": [],
"source": [
"ornekMetin = \" TÜRKİYE BÜYÜK MİLLET MECLİSİ \"\n",
"print(ornekMetin.strip())"
]
},
{
"cell_type": "markdown",
"id": "ddc35e6c",
"metadata": {},
"source": [
"String tipinde bir değişkeni `split()` metodu ile istediğimiz yerden ayırarak bir listeye dönüştürebiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2ba46ab0-ffba-4c1a-bb7b-5ddb2c373c8d",
"metadata": {},
"outputs": [],
"source": [
"s1 = \"Türkiye Büyük Millet Meclisi\"\n",
"s2 = \"Türkiye, 23 Ekim 1923, Ankara\"\n",
"print(s1.split()) #split'in içini boş bırakırsan boşluklardan ayırır.\n",
"print(s2.split(\", \")) #split'in içine tırnak içinde yazdığın ifadeyi baz alarak ayırır."
]
},
{
"cell_type": "markdown",
"id": "89b2b58c-d515-4199-8ded-6de1ae67db22",
"metadata": {},
"source": [
"Etkinlik: \"İnsanın, gölgesiyle tanımlandığı bir çağda, marşlara düşer belki birkaç şey açıklamak\" mısrasını virgül+boşluk karakterinden \", \" ayırarak bir listeye dönüştürünüz ve alt alta yazdırınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5c5f7312-3031-4f0b-851f-0bfdae35b9f1",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"misra = \"İnsanın, gölgesiyle tanımlandığı bir çağda, marşlara düşer belki birkaç şey açıklamak\"\n",
"misra = misra.split(\", \")\n",
"print(*misra,sep=\"\\n\") #stringlerin başına gelen * sembolünün işlevini öncesinde görmüştük."
]
},
{
"cell_type": "markdown",
"id": "fc71d61d",
"metadata": {},
"source": [
"Karakter dizilerinin (string) karakterlerine `[ : ]` ile erişebiliriz. Köşeli parantezler arasına karakterin sıra (index) numarasını yazarız. Bu işlemlere **'dilimleme'** denir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2ca7eec6",
"metadata": {},
"outputs": [],
"source": [
"ornek = \"Pythhon\"\n",
"print(ornek[0]) #tek karakter için o karakterin sırasını girmeliyiz (dizilerde sıra 0(sıfır)dan başlar)\n",
"print(ornek[0:3]) #aralık için iki nokta ile başlama ve bitiş index'ini girmeliyiz\n",
"print(ornek[:2]) #başlangıç belirtmeseniz ilk sıradan başlar\n",
"print(ornek[3:]) #bitiş belirtmeseniz karakter dizisinin sonuna kadar alır"
]
},
{
"cell_type": "markdown",
"id": "af40233c",
"metadata": {},
"source": [
"Etkinlik: Adınızı çeşitli şekillerde dilimleyiniz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fdec6cc2-44d6-44a5-9b82-ed98d179e8a5",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"ad = input(\"Adınızı Giriniz: \")\n",
"print(ad[:3],ad[3:],ad[::-1],sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "d20327cc",
"metadata": {},
"source": [
"Karakter dizilerini (string) dilimlerken karakter ilerleme sırasını belirleyebiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0414d512",
"metadata": {},
"outputs": [],
"source": [
"ornek = \"TÜRKİYE\"\n",
"print(ornek[0:8:2]) #0. indexten başlayarak 7.indexe kadar 2'şer karakter ilerledik.\n",
"print(ornek[-1:-8:-1]) #Tersten sıraladık. -1. indexten başlayarak -7.indexe kadar tersten 1'er karakter ilerledik."
]
},
{
"cell_type": "markdown",
"id": "2dce1b5a",
"metadata": {},
"source": [
"Etkinlik: input() foknsiyonu ile kullanıcıdan alınan T.C. Numarasını ekrana tersten yazdırınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "83bd0f73-9d20-4419-8685-923523bbd367",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"vatandaslikNo = input(\"Vatandaşlık Numaranızı Giriniz: \")\n",
"print(vatandaslikNo[::-1])"
]
},
{
"cell_type": "markdown",
"id": "47251c9e",
"metadata": {},
"source": [
"Karakter dizileri ile ilgili diğer operatör ve metotlara sonradan değineceğiz.
\n",
"Karakter dizilerinin diğer metotlarını şöyle görüntüleyebilirsiniz:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "63267ec8",
"metadata": {},
"outputs": [],
"source": [
"print(dir(str))"
]
},
{
"cell_type": "markdown",
"id": "bc20e853",
"metadata": {},
"source": [
"## Integer (int) "
]
},
{
"cell_type": "markdown",
"id": "7a476733-e33c-4283-aea7-57c6920759ea",
"metadata": {},
"source": [
"Tamsayı değişken tipidir. Matematiksel işlemler yapmada kullanılır. Pozitif veya negatif olabilir. Çift tırnak (\"\") veya tek tırnak ('') arasına **yazılmaz.** Örnek tamsayı tipinde değişkenler:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c8007d72",
"metadata": {},
"outputs": [],
"source": [
"i1 = 99\n",
"i2 = -99\n",
"print(i1,i2,sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "40eac104",
"metadata": {},
"source": [
"Tipini bilmediğimiz değişkenler için tipini öğrenmek amacıyla `type()` foknsiyonunu kullanarak tipini görüntüleyelim."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c00838fa",
"metadata": {},
"outputs": [],
"source": [
"i = 1919\n",
"print(type(i))"
]
},
{
"cell_type": "markdown",
"id": "84c2fe25",
"metadata": {},
"source": [
"Integer (int) olmayan bir değişkeni integer'a dönüştürmek için `int()` fonksiyonu kullanılır. Fakat dönüştürülmek istenen veri tamamen rakamlardan (nümerik) oluşmalıdır, aksi halde hata verir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cb451fd6",
"metadata": {},
"outputs": [],
"source": [
"metin = \"1923\"\n",
"print(int(metin))\n",
"print(type(int(metin)))"
]
},
{
"cell_type": "markdown",
"id": "2daa3969-dadc-40fc-adbb-a3f5ae9c4924",
"metadata": {},
"source": [
"Etkinlik: input() foknsiyonu ile kullanıcıdan yaşını alınız ve değişken tipini type() fonksiyonu ile ekrana yazdırınız. Ardından bu veriyi tamsayıya çeviriniz ve yeniden değişken tipini ekrana bastırınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1ac5b174-0331-445c-aa89-44fad56a04ad",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"yas = input(\"Yaşınızı Giriniz: \")\n",
"print(type(yas))\n",
"yas = int(yas)\n",
"print(type(yas))"
]
},
{
"cell_type": "markdown",
"id": "67764571",
"metadata": {},
"source": [
"### Integer (int) Değişkeninin Metotları"
]
},
{
"cell_type": "markdown",
"id": "01615129-8bc0-432e-a530-fc55bfc19deb",
"metadata": {},
"source": [
"Tam sayıların 2'lik sayı sistemindeki basamak uzunluklarını bulmak için `bit_length()` metodu kullanılır."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c608663a",
"metadata": {},
"outputs": [],
"source": [
"i = 155\n",
"print(i.bit_length())"
]
},
{
"cell_type": "markdown",
"id": "453d83f1",
"metadata": {},
"source": [
"Etkinlik: input() foknsiyonu ile kullanıcıdan yaşını alarak önce integer'a çeviriniz sonra da 2'lik sayı sistemindeki basamak sayısını bularak ekrana yazdırınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e867d2f6-9df2-42d6-9397-cbd8a6dce35d",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"yas = input(\"Yaşınızı Giriniz: \")\n",
"print(int(yas).bit_length())"
]
},
{
"cell_type": "markdown",
"id": "e008d103",
"metadata": {},
"source": [
"Tam sayılar ile ilgili diğer operatör ve metotlara sonradan değineceğiz.
\n",
"Tam sayıların diğer metotlarını şöyle görüntüleyebilirsiniz:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "666b1a72",
"metadata": {},
"outputs": [],
"source": [
"print(dir(int))"
]
},
{
"cell_type": "markdown",
"id": "d9a0df29",
"metadata": {},
"source": [
"## Float (float)"
]
},
{
"cell_type": "markdown",
"id": "026732bb-9c73-4086-8d6f-3caea68ba905",
"metadata": {},
"source": [
"Ondalıklı sayı değişken tipidir. **Ondalık ayıracı nokta (.) dır.** Matematiksel işlemler yapmada kullanılır. Pozitif veya negatif olabilir.
Çift tırnak (\" \") veya tek tırnak (' ') arasına **yazılmaz.** Örnek ondalıklı sayı tipinde değişkenler:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "548c0813",
"metadata": {},
"outputs": [],
"source": [
"f1 = 15.75\n",
"f2 = -15.75\n",
"print (f1,f2,sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "d935046a",
"metadata": {},
"source": [
"Tipini bilmediğimiz değişkenler için tipini öğrenmek amacıyla `type()` foknsiyonunu kullanarak tipini görüntüleyelim."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7248d051",
"metadata": {},
"outputs": [],
"source": [
"f = 1923.0\n",
"print(type(f))"
]
},
{
"cell_type": "markdown",
"id": "fcbf0710-fc57-4d3f-8e41-e68cbde3f354",
"metadata": {},
"source": [
"Etkinlik: Yaşınızı ondalıklı olarak bir değişkene atayın. Ondalıklı olarak hesaplarken örnek olarak 11 tam 5/12 (11 yaşımdan 5 ay büyüğüm) olarak hesaplayınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "94d5b477-6f63-475e-b486-ebb1986ca3e5",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"yas = 11+8/12\n",
"print(yas,type(yas),sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "229830d3",
"metadata": {},
"source": [
"Float (float) olmayan bir değişkeni float'a dönüştürmek için `float()` foknsiyonu kullanılır. Fakat dönüştürülmek istenen veri tamamen rakamlardan (nümerik) oluşmalıdır, aksi halde hata verir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "162be4d8",
"metadata": {},
"outputs": [],
"source": [
"i = 1923\n",
"print(float(i))\n",
"print(type(float(i)))"
]
},
{
"cell_type": "markdown",
"id": "e6f8422c",
"metadata": {},
"source": [
"### Float (float) Değişkeninin Metotları\n",
"Birbirine bölününce ondalıklı sayıyı veren tam sayıları bulmak için `as_integer_ratio()` metodu kullanılır."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5f442e8b",
"metadata": {},
"outputs": [],
"source": [
"f1 = 7.5\n",
"print(f1.as_integer_ratio())"
]
},
{
"cell_type": "markdown",
"id": "3359616f",
"metadata": {},
"source": [
"Etkinlik-6.13: Float (ondalıklı) olarak hesapladığınız yaşınızın hangi sayıları bölünce ortaya çıktığını as_integer_ratio metodu ile öğreniniz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cf50ea9c-092e-445d-9aec-305094382283",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"yas = 15.6 #burayı float sayılarla değiştirerek sonucu gözlemleyebilirsiniz\n",
"print(yas.as_integer_ratio())"
]
},
{
"cell_type": "markdown",
"id": "565d383c",
"metadata": {},
"source": [
"Ondalıklı sayılar ile ilgili diğer operatör ve metotlara sonradan değineceğiz.
\n",
"Ondalıklı sayıların diğer metotlarını şöyle görüntüleyebilirsiniz:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f58e962e",
"metadata": {},
"outputs": [],
"source": [
"print(dir(float))"
]
},
{
"cell_type": "markdown",
"id": "b6048428",
"metadata": {},
"source": [
"## Boolean (bool)"
]
},
{
"cell_type": "markdown",
"id": "8506fbbe-9df5-4925-b427-5192bd7606f2",
"metadata": {},
"source": [
"Mantıksal veri tipidir. Sadece 'True' (doğru) ve 'False' (yanlış) değerini alır. Esasında bir sorgulama sonucudur. Mantıksal bütün sorguların sonucu True veya False olur. Örnek boolean tipi sorgulamalar:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "70e83769",
"metadata": {},
"outputs": [],
"source": [
"b1 = True\n",
"b2 = False\n",
"print(b1,b2,sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "7389cf15-9c2b-459a-97b5-2023a3cda3f6",
"metadata": {},
"source": [
"Bir değişkeni boolean veri tipine çevirmek için `bool()` fonksiyonu kullanılır."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "515c093d-514f-49d8-a94d-12d33085b612",
"metadata": {},
"outputs": [],
"source": [
"ornek1 = \"Türkiye\"\n",
"ornek2 = \"\"\n",
"ornek3 = 0\n",
"ornek4 = 1923\n",
"\n",
"ornek1=bool(ornek1)\n",
"ornek2=bool(ornek2)\n",
"ornek3=bool(ornek3)\n",
"ornek4=bool(ornek4)\n",
"\n",
"print(ornek1,ornek2,ornek3,ornek4,sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "8f2449de-cf99-42db-9791-503d697acfb5",
"metadata": {},
"source": [
"Etkinlik: Sayı olan sıfır (0) ve sıfırdan farklı herhangi bir sayıyı boolean veri tipinde ekrana bastırınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "04c523bd-5bb8-48fb-990a-ce186d50529c",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"bir = 1\n",
"sifir = 0\n",
"print(bool(sifir),bool(bir),sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "6c91629b",
"metadata": {},
"source": [
"Tipini bilmediğimiz değişkenler için tipini öğrenmek amacıyla `type()` foknsiyonunu kullanarak tipini görüntüleyelim."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4d558c30",
"metadata": {},
"outputs": [],
"source": [
"b1 = True\n",
"b2 = False\n",
"print(type(b1),type(b2),sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "d3480cbf",
"metadata": {},
"source": [
"## List (list) "
]
},
{
"cell_type": "markdown",
"id": "a6c66699-b2a9-44ba-bb73-debc8174f489",
"metadata": {},
"source": [
"Liste demektir, elemanlardan oluşan çok değişkenli veri tipidir. Listeler köşeli parantez [ ] ile başlar ve biter. İlk elemanın sırası (index) 0'dır. Listedeki elemanların arasında virgül (,) konur. Listede str, int, float, bool veya list elemanları aynı anda olabilir.
\n",
"**Özellikleri:**
\n",
"- Listedeki elemanların sırası(index) vardır ve sıraları değiştirilebilir.
\n",
"- Listeye eleman ekleme-çıkarma veya listeyi başka bir liste ile birleştirme yapılabilir.
\n",
"- Aynı elemandan birkaç tane (duplicate) olabilir.\n",
"- String veri tipinin **dilimleme** metotları aynen uygulanabilir.\n",
"- Sonradan eleman girilmek üzere boş bir liste ( [ ] ) oluşturulabilir.
\n",
"Örnek liste değişken tipinde veri:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dea1cd75",
"metadata": {},
"outputs": [],
"source": [
"liste = [\"Python\",1994,3.10,True,[\"En Popüler\",\"Programlama Dili\",1]]\n",
"print(liste)\n",
"print(liste[2])\n",
"print(liste[1:4])\n",
"print(type(liste))"
]
},
{
"cell_type": "markdown",
"id": "32f51f47",
"metadata": {},
"source": [
"Sadece string veri tipi bir listeye dönüştürülebilir. Bunun için `list()` foknsiyonu kullanılır. Diğer veri tiplerini listeye çevirmek için önce `str()` ile stringe çeviriniz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2fd141e6",
"metadata": {},
"outputs": [],
"source": [
"s = \"Türkiye 2023\"\n",
"print(list(s),type(list(s)),sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "bb73ec5d",
"metadata": {},
"source": [
"Bir sayı listesi oluşturmak için `range()` (aralık) foknsiyonu ile sayı listesi oluşturulabilir. Bunun için `list()` ve `range()` fonksiyonu kullanılır. `range()` fonksiyonu liste tipinden bağımsız başka işlemlerle de kullanılmaktadır."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "49fd3a15",
"metadata": {},
"outputs": [],
"source": [
"l = list(range(1,16))\n",
"print(l)"
]
},
{
"cell_type": "markdown",
"id": "4652121e",
"metadata": {},
"source": [
"Etkinlik-6.15: -5 ile +5 arasındaki sayılardan oluşan bir liste oluşurunuz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b60cb631-f780-4490-9078-227723ad1824",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü:\n",
"liste = [-5,-4,-3,-2,-1,0,1,2,3,4,5]\n",
"print(liste)"
]
},
{
"cell_type": "markdown",
"id": "f0b4a6e9",
"metadata": {},
"source": [
"Listelerin (list) eleman sayısını `len()` foknsiyonu ile öğrenebiliriz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f5a81309",
"metadata": {},
"outputs": [],
"source": [
"l = [\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\",\"Pazar\"]\n",
"print(len(l))"
]
},
{
"cell_type": "markdown",
"id": "0e748497",
"metadata": {},
"source": [
"### List (list) Değişkeninin Metotları"
]
},
{
"cell_type": "markdown",
"id": "91c7a1ce-277b-4fb9-82db-3d0bf4168d3a",
"metadata": {},
"source": [
"Listelere `append()` metodu ile **listenin sonuna** eklenmek üzere yeni eleman eklenebilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "15058a57",
"metadata": {},
"outputs": [],
"source": [
"l = [\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\"]\n",
"l.append(\"Pazar\")\n",
"print(l)"
]
},
{
"cell_type": "markdown",
"id": "b7d81ded",
"metadata": {},
"source": [
"Listedeki bir elemanın sırası `index()` metodu ile bulunabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a84f190b",
"metadata": {},
"outputs": [],
"source": [
"l = [\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\"]\n",
"print(l.index(\"Perşembe\"))"
]
},
{
"cell_type": "markdown",
"id": "bd4f5849",
"metadata": {},
"source": [
"Etkinlik: Adınızı list() foknsiyonu ile listeye çevirdikten sonra listenin sonuna yaşınızı sayı olarak ekleyiniz ve yaşınızın listedeki sırasını bulunuz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d4b5589e-2c00-4c2d-8d65-ccbb5b84a3cc",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"isim = \"TÜRKİYE\"\n",
"isim = list(isim)\n",
"isim.append (100)\n",
"print(isim)\n",
"print(isim.index(100))"
]
},
{
"cell_type": "markdown",
"id": "ac3d1c11",
"metadata": {},
"source": [
"Listelere `insert()` metodu ile **listenin istenilen sırasına(index)** eklenmek üzere yeni eleman eklenebilir. Insert metodu `insert(sıra,değer)` olarak çalışmaktadır."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a73580bb",
"metadata": {},
"outputs": [],
"source": [
"l = [\"Pazartesi\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\"]\n",
"l.insert(1,\"Salı\")\n",
"l.insert(6,\"Pazar\")\n",
"print(l)"
]
},
{
"cell_type": "markdown",
"id": "eeaca1e3",
"metadata": {},
"source": [
"Listeden bir elemana değeriyle erişilerek silinebilir. Bunun için `remove()` metodu kullanılır. Remove metodunu kullanırken silmek istediğiniz değerin listedeki sırasını bilmenize gerek yoktur. Eğer aynı değerden birkaç tane varsa sırası (index) en küçük olanı (ilk sırada olanı) siler."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ff78a890",
"metadata": {},
"outputs": [],
"source": [
"l = [\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\",\"Pazar\",\"Ocak\",\"Şubat\",\"Ocak\"]\n",
"l.remove(\"Ocak\")\n",
"print(l)"
]
},
{
"cell_type": "markdown",
"id": "26ff92af",
"metadata": {},
"source": [
"Listeden bir elemanı sırasına(index) erişilerek silinebilir. Bunun için iki yöntem vardır; `pop()` ve `del()` metotları kullanılır.
\n",
"Pop metodu ile belirttiğiniz sıradaki(index) eleman silinir. İndex numarası belirtilmezse listenin sonundaki elemanı siler.
\n",
"Del metodu ile belirttiğiniz sıradaki(index) eleman silinir. İndex numarası belirtilmezse **ilgili liste değişkenini tamamen ortadan kaldırır.**"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b06ead02",
"metadata": {},
"outputs": [],
"source": [
"l = [\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\",\"Pazar\",\"Ocak\",\"Ocak\"]\n",
"l.pop(7)\n",
"del l[0]\n",
"print(l)"
]
},
{
"cell_type": "markdown",
"id": "8894f25b",
"metadata": {},
"source": [
"Etkinlik: 1'den 10'a kadar tamsayıların bulunduğu bir listeden 7 sayısını siliniz ve aynı sıraya tekrar ekleyiniz.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "db6d1358-57c2-4a14-a840-f49be9537bf9",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"sayilar = [1,2,3,4,5,6,7,8,9,10]\n",
"sayilar.pop(6)\n",
"print(sayilar)\n",
"sayilar.insert(6,7)\n",
"print(sayilar)"
]
},
{
"cell_type": "markdown",
"id": "4c846016",
"metadata": {},
"source": [
"Listedeki tüm elemanları `clear()` metodu ile silebiliriz. Bu metodla listenin içi boşalır ve ilgili liste değişkeni kullanılmaya devam edilir. Yani liste değişkeni ortadan kalkmaz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "21638f61",
"metadata": {},
"outputs": [],
"source": [
"l = [\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\",\"Pazar\"]\n",
"l.clear()\n",
"print(l)"
]
},
{
"cell_type": "markdown",
"id": "80933f4b",
"metadata": {},
"source": [
"Liste elemanları başka bir değişkene `copy()` metodu ile liste olarak kopyalanabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fe70cc1d",
"metadata": {},
"outputs": [],
"source": [
"l1 = [\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\",\"Pazar\"]\n",
"l2 =l1.copy()\n",
"print(l2)"
]
},
{
"cell_type": "markdown",
"id": "1ccaef26",
"metadata": {},
"source": [
"Liste elemanları `sort()` metodu ile A'dan Z'ye veya küçükten büyüğe doğru sıralanabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2aea5c10",
"metadata": {},
"outputs": [],
"source": [
"l = [\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\",\"Pazar\"]\n",
"l.sort()\n",
"print(l)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "47a0b97c",
"metadata": {},
"outputs": [],
"source": [
"l = [3,4,5,1,2,6,7]\n",
"l.sort()\n",
"print(l)"
]
},
{
"cell_type": "markdown",
"id": "e7e03a86",
"metadata": {},
"source": [
"Liste elemanları `sort()` metodu ile Z'den A'ya veya büyükten küçüğe doğru da sıralanabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c2a08027-03c5-4933-bc16-d2eca8d576db",
"metadata": {},
"outputs": [],
"source": [
"l = [\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\",\"Pazar\"]\n",
"l.sort(reverse=True)\n",
"print(l)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a56bb919",
"metadata": {},
"outputs": [],
"source": [
"l = [3,4,5,1,2,6,7]\n",
"l.sort(reverse=True)\n",
"print(l)"
]
},
{
"cell_type": "markdown",
"id": "6ed622c6",
"metadata": {},
"source": [
"Liste elemanları `reverse()` metodu ile tersine çevrilebilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "11b51ea3",
"metadata": {},
"outputs": [],
"source": [
"l = [\"Pazartesi\",\"Salı\",\"Çarşamba\",\"Perşembe\",\"Cuma\",\"Cumartesi\",\"Pazar\"]\n",
"l.reverse()\n",
"print(l)"
]
},
{
"cell_type": "markdown",
"id": "3e600ac0",
"metadata": {},
"source": [
"Etkinlik: Adınızı list() foknsiyonu ile listeye çevirdikten sonra isminizdeki harfleri A'dan Z'ye, Z'den A'ya ve tersten olmak üzere farklı şekillerde sıralayınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cb167de0-4ac2-4562-9626-e0e6c7e22b36",
"metadata": {},
"outputs": [],
"source": [
"# Etkinlik Çözümü\n",
"isim = \"TÜRKİYE\"\n",
"isim = list(isim)\n",
"isim.sort()\n",
"print(isim)\n",
"isim.sort(reverse=True)\n",
"print(isim)"
]
},
{
"cell_type": "markdown",
"id": "7c43897e",
"metadata": {},
"source": [
"Listedeki elemanlardan kaçar tane olduğu `count()` metodu ile bulunabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7df64b49",
"metadata": {},
"outputs": [],
"source": [
"l = [1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,4,5,6,7]\n",
"print(l.count(1))\n",
"print(l.count(5))"
]
},
{
"cell_type": "markdown",
"id": "efda8250",
"metadata": {},
"source": [
"Listedeki elemanlardan sayısal olarak en büyük veya alfabetik olarak en sonda olan `max()` foknsiyonu ile, sayısal olarak en küçük veya alfabetik olarak en önde olan `min()` foknsiyonu ile bulunabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "700a0aab",
"metadata": {},
"outputs": [],
"source": [
"l = [\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"Z\"]\n",
"print(max(l))\n",
"print(min(l))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0fc4e598",
"metadata": {},
"outputs": [],
"source": [
"l = [101,345,543,786,908,123,434]\n",
"print(max(l))\n",
"print(min(l))"
]
},
{
"cell_type": "markdown",
"id": "f8f1e938",
"metadata": {},
"source": [
"## Tuple (tuple)"
]
},
{
"cell_type": "markdown",
"id": "781d3a3f-af36-4011-94cc-127301fa1e0e",
"metadata": {},
"source": [
"Demet demektir. Liste değişken tipi gibi elemanlardan oluşan çok değişkenli veri tipidir. Demetler normal parantez ( ) ile başlar ve biter. İlk elemanın sırası (index) 0'dır. Demetteki elemanların arasında virgül (,) konur. Demette str, int, float, bool veya list elemanları aynı anda olabilir.
\n",
"**Özellikleri:**
\n",
"- Demetteki elemanların sırası(index) vardır ve sıraları **değiştirilemez**.
\n",
"- Demete eleman ekleme-çıkarma **yapılamaz** ama başka bir demetle ile birleştirme yapılabilir.
\n",
"- Aynı elemandan birkaç tane (duplicate) olabilir.
\n",
"- String veri tipinin **dilimleme** metotları aynen uygulanabilir.
\n",
"Örnek demet veri tipi değişkeni:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f4e2385c",
"metadata": {},
"outputs": [],
"source": [
"yazAylari = (\"Haziran\",\"Temmuz\",\"Ağustos\")\n",
"print(yazAylari)\n",
"print(yazAylari[1])\n",
"print(yazAylari[0:2])\n",
"print(type(yazAylari))"
]
},
{
"cell_type": "markdown",
"id": "60aee67c",
"metadata": {},
"source": [
"Sadece string veya liste veri tipi bir demete dönüştürülebilir. Bunun için `tuple()` foknsiyonu kullanılır."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6e300736",
"metadata": {},
"outputs": [],
"source": [
"d = \"Tükiye 2023\"\n",
"print(tuple(d),type(tuple(d)),sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "10d79e56",
"metadata": {},
"source": [
"Demetlerin eleman sayısı `len()` foknsiyonu ile bulunabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "279fe223",
"metadata": {},
"outputs": [],
"source": [
"d = (\"Aralık\",\"Ocak\",\"Şubat\")\n",
"print(len(d))"
]
},
{
"cell_type": "markdown",
"id": "ce87179b",
"metadata": {},
"source": [
"### Tuple (tuple) Değişkeninin Metotları"
]
},
{
"cell_type": "markdown",
"id": "2a6fa6bf-524a-4db2-b2e0-df753f02e9e5",
"metadata": {},
"source": [
"Demetlerde `index()` metodu ile elemanın sırası bulunabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "95cf83de",
"metadata": {},
"outputs": [],
"source": [
"d = (\"Aralık\",\"Ocak\",\"Şubat\")\n",
"print(d.index(\"Ocak\"))"
]
},
{
"cell_type": "markdown",
"id": "91501d8a",
"metadata": {},
"source": [
"Demetlerde `count()` metodu ile hangi elemandan kaç tane olduğu bulunabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6868afa2",
"metadata": {},
"outputs": [],
"source": [
"d = (1,1,1,1,2,2,2,3,3,3,3,3,3,3,4,4,4,5)\n",
"print(d.count(3))"
]
},
{
"cell_type": "markdown",
"id": "2bf8773d-4f70-4476-95d0-30fda63d9338",
"metadata": {},
"source": [
"Etkinlik: Bir programcı kayıt esnasında sırasıyla TC, Ad, Soyad ve Doğum Yılı verilerini alacaktır. Bu sıranın daha sonra da hackerlar tarafından değiştirilmemesi için tuple yöntemiyle alıyor. Bu şekilde çalışacak algoritmayı kodlayınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "942b2cb6-ef5f-4d61-b963-05ad59546bb1",
"metadata": {},
"outputs": [],
"source": [
"#Etkinlik Çözümü\n",
"tc = input(\"Vatandaşlık Numaranızı Giriniz: \")\n",
"ad = input(\"Tam Adınızı Giriniz: \")\n",
"dogum = input(\"Doğum Tarihinizi Giriniz: \")\n",
"veriler = (tc,ad,dogum)\n",
"print(veriler)"
]
},
{
"cell_type": "markdown",
"id": "cdb54bc1",
"metadata": {},
"source": [
"## Set (set) "
]
},
{
"cell_type": "markdown",
"id": "12d43893-149a-4896-be17-2a78d25b86db",
"metadata": {},
"source": [
"Küme demektir. Liste değişken tipi gibi elemanlardan oluşan çok değişkenli veri tipidir. Kümeler kıvırcıklı parantez { } ile başlar ve biter. Küme elemanlarında sıra (index) yoktur. Kümedeki elemanların arasında virgül (,) konur. Kümede str, int, float veya bool elemanları aynı anda olabilir.
\n",
"**Özellikleri:**
\n",
"- Kümedeki elemanların **sırası(index) yoktur** ve sıraları **değiştirilemez**.
\n",
"- Kümeye eleman ekleme-çıkarma veya başka bir küme ile birleştirme yapılabilir.
\n",
"- **Aynı elemandan birkaç tane (duplicate) olamaz.**
\n",
"- **Dilimleme** metotları **uygulanamaz**.
\n",
"- Kümelerin içinde list veya tuple tipinde elemanları **olamaz.**
\n",
"Örnek küme veri tipi değişkeni:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3ad60072",
"metadata": {},
"outputs": [],
"source": [
"k = {1,2,3,\"Türkiye\"}\n",
"print(k,len(k),type(k),sep=\"\\n\")"
]
},
{
"cell_type": "markdown",
"id": "e5a08f28",
"metadata": {},
"source": [
"Sadece string, list veya tuple veri tipi bir kümeye dönüştürülebilir. Bunun için `set()` foknsiyonu kullanılır."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e522d596",
"metadata": {},
"outputs": [],
"source": [
"s = \"Python\"\n",
"l =[1,2,3]\n",
"t=(\"a\",\"b\",\"c\")\n",
"print(set(s))\n",
"print(set(l))\n",
"print(set(d))"
]
},
{
"cell_type": "markdown",
"id": "316b6491",
"metadata": {},
"source": [
"Bir sayı kümesi tanımlamak için `range()` (aralık) foknsiyonu ile küme tanımlanabilir. Bunun için `set()` ve `range()` foknsiyonları kullanılır."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "822a63a7",
"metadata": {},
"outputs": [],
"source": [
"k = set(range(1,10)) #1'den 10'a kadar olan sayılardan bir küme oluşturduk.\n",
"print(k)"
]
},
{
"cell_type": "markdown",
"id": "46505ac6",
"metadata": {},
"source": [
"### Set (set) Değişkeninin Metotları"
]
},
{
"cell_type": "markdown",
"id": "32f7ab9f-8a21-4377-8c1b-b6f0ee439757",
"metadata": {},
"source": [
"Kümelere `add()` metodu ile eleman eklenebilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4c4bcb40",
"metadata": {},
"outputs": [],
"source": [
"k = {\"T\",\"Ü\",\"R\",\"K\",\"İ\",\"Y\",\"E\"}\n",
"k.add(1923)\n",
"print(k)"
]
},
{
"cell_type": "markdown",
"id": "b63a0338",
"metadata": {},
"source": [
"Kümelerden `remove()` metodu ile eleman silinebilir. Silmek istediğiniz eleman yok ise **hata verir.**"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "69545cf8",
"metadata": {},
"outputs": [],
"source": [
"k = {\"T\",\"Ü\",\"R\",\"K\",\"İ\",\"Y\",\"E\",1923}\n",
"k.remove(1923)\n",
"print(k)"
]
},
{
"cell_type": "markdown",
"id": "234e5997",
"metadata": {},
"source": [
"Kümelerden `discard()` metodu ile de eleman silinebilir. Silmek istediğiniz eleman yok ise **hata vermez**."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cdf812d0",
"metadata": {},
"outputs": [],
"source": [
"k = {\"T\",\"Ü\",\"R\",\"K\",\"İ\",\"Y\",\"E\",1923}\n",
"k.discard(\"İ\")\n",
"k.discard(\"Y\")\n",
"k.discard(\"E\")\n",
"k.discard(2023)\n",
"print(k)"
]
},
{
"cell_type": "markdown",
"id": "45c18c80",
"metadata": {},
"source": [
"Kümeler `clear()` metodu ile temizlenebilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "df291bcb",
"metadata": {},
"outputs": [],
"source": [
"k = {\"T\",\"Ü\",\"R\",\"K\",\"İ\",\"Y\",\"E\",1923}\n",
"k.clear()\n",
"print(k)"
]
},
{
"cell_type": "markdown",
"id": "4cb96ae5",
"metadata": {},
"source": [
"Kümeler `update()` metodu ile birleştirilebilir veya `union()` ile birleşik yeni bir küme oluşturulabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e533da88",
"metadata": {},
"outputs": [],
"source": [
"k1 = {\"T\",\"Ü\",\"R\",\"K\"}\n",
"k2 = {\"İ\",\"Y\",\"E\"}\n",
"k3 = k1.union(k2)\n",
"print(k1,k3,sep=\"\\n\")\n",
"\n",
"k1.update(k2)\n",
"print(k1)"
]
},
{
"cell_type": "markdown",
"id": "2cd11285",
"metadata": {},
"source": [
"Kümelerin `intersection()` metodu ile kesişimleri, `difference()` metodu ile farkları bulunabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2fd2e7ac",
"metadata": {},
"outputs": [],
"source": [
"k1 = {\"P\",\"Y\",\"T\",\"H\",\"O\",\"N\"}\n",
"k2 = {\"F\",\"A\",\"Y\",\"T\",\"O\",\"N\"}\n",
"print(k1.intersection(k2))\n",
"print(k1.difference(k2))"
]
},
{
"cell_type": "markdown",
"id": "2858737b-97e3-4f17-9b46-a092c7135e23",
"metadata": {},
"source": [
"Etkinlik: Adam asmaca oyununda oyuncu kelimeyi tahmin etmeden önce oyuncudan 5 tane harf alınır ve bu harfler ile kelimede bulunan harfler karşılaştırılarak ikisinde de olanlar bulunur. Bu algoritmayı kodlayınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2bf18ce6-127e-4257-8d0f-b4f80ba3123d",
"metadata": {},
"outputs": [],
"source": [
"#Etkinlik Çözümü\n",
"kelime = \"TÜRKİYE CUMHURİYETİ\"\n",
"kelime = set(kelime)\n",
"tahminler = []\n",
"tahminler.append(input(\"1. Harfi Giriniz: \").upper())\n",
"tahminler.append(input(\"2. Harfi Giriniz: \").upper())\n",
"tahminler.append(input(\"3. Harfi Giriniz: \").upper())\n",
"tahminler.append(input(\"4. Harfi Giriniz: \").upper())\n",
"tahminler.append(input(\"5. Harfi Giriniz: \").upper())\n",
"tahminler = set(tahminler)\n",
"print(kelime.intersection(tahminler))\n"
]
},
{
"cell_type": "markdown",
"id": "8945081e",
"metadata": {},
"source": [
"## Frozenset (frozenset) "
]
},
{
"cell_type": "markdown",
"id": "c0acc2d2-49ce-462c-9060-9a3ed89ffc5f",
"metadata": {},
"source": [
"Kısıtlanmış küme demektir. Liste değişken tipi gibi elemanlardan oluşan çok değişkenli veri tipidir. Kısıtlanmış kümeler bir listenin başına `frozenset()` foknsiyonu girilmesi ile oluşur. Küme elemanlarında sıra (index) yoktur. Kümedeki elemanların arasında virgül (,) konur. Kümede str, int, float veya bool elemanları aynı anda olabilir.
\n",
"**Özellikleri:**
\n",
"- Kısıtlanmış kümedeki elemanların **sırası(index) yoktur** ve sıraları **değiştirilemez**.
\n",
"- Kısıtlanmış kümeye eleman **ekleme-çıkarma veya başka bir liste tipi değişkenle birleştirme yapılamaz**.
\n",
"- **Aynı elemandan birkaç tane (duplicate) olamaz.**
\n",
"- **Dilimleme** metotları **uygulanamaz**.
\n",
"- Kıtılanmış kümelerin içinde list veya tuple tipinde elemanları **olamaz.**
\n",
"Örnek kısıtlanmış küme veri tipi değişkeni:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d0738134",
"metadata": {},
"outputs": [],
"source": [
"fs = frozenset([\"pazartesi\",\"salı\",\"çarşamba\",\"perşembe\",\"cuma\",\"cumartesi\",1,2,3,4,5,6])\n",
"print (fs)"
]
},
{
"cell_type": "markdown",
"id": "912dc2fe-66ec-49a4-a3c3-d4ca778967c3",
"metadata": {},
"source": [
"Etkinlik: Bir yazılım yapan Ali bu yazılım lisansla satıyor. Bu lisansları tuttuğu bir değişkeni var ve lisansların değiştirilmesini önlemek için bir yöntem buluyor. Bu algoritmayı kodlayınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6c5ee4cc-438c-4ca3-a0e9-7d6a4c00c2bd",
"metadata": {},
"outputs": [],
"source": [
"#Etkinlik Çözümü\n",
"lisanslar = set([\"ABC-123-XYZ\",\"DEF-456-WYZ\",\"GHI-789-ZWX\"])\n",
"print(lisanslar)"
]
},
{
"cell_type": "markdown",
"id": "42bb73c6",
"metadata": {},
"source": [
"## Dictionary (dict)"
]
},
{
"cell_type": "markdown",
"id": "960a53f7-f480-4e1e-9dce-a7c4f1dbe5d5",
"metadata": {},
"source": [
"Sözlük demektir. Küme değişken tipi gibi fakat 2 boyutlu elemanlardan oluşan çok değişkenli veri tipidir. Sözlükler kıvırcıklı parantez ile başlar ve biter. Sözlüklerde her eleman 2 öğeden oluşur. İlki 'key' (anahtar), ikincisi 'value' (değer)'dir. Öğelerin arasına : konur. Eleman sıraları değiştirilemez, ekleme çıkarma yapılabilir. Sözlüklerde öğelerin arasında virgül (,) konur. Sözlükte str, int, float veya bool elemanları aynı anda olabilir.
\n",
"Örnek kısıtlanmış küme veri tipi değişkeni:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "de063f11",
"metadata": {},
"outputs": [],
"source": [
"sozluk = {\"Python\":\"Bir programlama dilidir.\",\n",
" \"Yazar\":\"Guido Van Rossum\",\n",
" 1994:\"Python'ın yayınlandığı yıl.\",\n",
" 2018:\"Van Rossum'un Python yönetiminiden istifa ettiği yıldır.\"}\n",
"print (sozluk[\"Yazar\"])"
]
},
{
"cell_type": "markdown",
"id": "3371f71b-6de9-4e32-94f1-9d67822abe94",
"metadata": {},
"source": [
"Sözlüğe `sozluk[anahtar]=Değer` ile yeni eleman (anahtar:değer) (key:value) ikili olarak eklenir. Bu yöntemle eklenen değerler son eleman olarak eklenir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f1c76992-2245-488a-9727-4e8ac6e920b7",
"metadata": {},
"outputs": [],
"source": [
"sayilarinKaresi = {1:1,2:4,3:9,4:16}\n",
"print(sayilarinKaresi)\n",
"sayilarinKaresi[9]=81 #9 key'i ile 81 value'sini ekledik.\n",
"print(sayilarinKaresi)"
]
},
{
"cell_type": "markdown",
"id": "6dd74e73-944f-45cb-a9d8-8db45dc1cac8",
"metadata": {},
"source": [
"Sözlükten `del` deyimi ile eleman silinebilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "422f0e6b-2864-406b-96ac-b836f363859a",
"metadata": {},
"outputs": [],
"source": [
"sayilarinKaresi = {1:1,2:4,3:9,4:16}\n",
"del sayilarinKaresi[3]\n",
"print(sayilarinKaresi)"
]
},
{
"cell_type": "markdown",
"id": "89da84b4-275d-489e-9906-89565a1377a0",
"metadata": {},
"source": [
"### Dictionary (dict) Değişkeninin Metotları"
]
},
{
"cell_type": "markdown",
"id": "e42884d3-e003-418b-9543-748edc03cf56",
"metadata": {},
"source": [
"Sözlükten eleman silmek için `pop()` metodu kullanılır. Bu metot kullanılırken parantez içine silincek anahtar(key) yazılır."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "aa1fea5f-7e16-4088-aa38-75b4ad4593d8",
"metadata": {},
"outputs": [],
"source": [
"sayilarinKaresi = {1:1,2:4,3:9,4:16}\n",
"print(sayilarinKaresi)\n",
"sayilarinKaresi.pop(3) #3 key'ine sahip eleman ikilisini sildik\n",
"print(sayilarinKaresi)"
]
},
{
"cell_type": "markdown",
"id": "8c8decf2-3f29-4db0-8acb-851a2d897c42",
"metadata": {},
"source": [
"`update()` fonksşyonu ile bir sözlüğü başka bir sözlüğün verileriyle güncelleyebilir(ekleyebilir) bu işlemi string değerlerle de yapabilirsiniz."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cd03741b-cf8a-4389-b9ed-b54f7e751fe9",
"metadata": {},
"outputs": [],
"source": [
"sayilarinKaresi = {1:1,2:4,3:9,4:16}\n",
"eklenecekler = {5:25,6:36,7:49}\n",
"sayilarinKaresi.update(eklenecekler)\n",
"print(sayilarinKaresi)\n",
"\n",
"#update'i string değerlerle kullanabilirsiniz.\n",
"sayilarinKaresi.update(Sekiz='AltmışDört', Dokuz='SeksenBir')\n",
"print(sayilarinKaresi)"
]
},
{
"cell_type": "markdown",
"id": "e8522d8e-6420-4f8c-9943-4c43cf9bd04d",
"metadata": {},
"source": [
"Sözlükteki bir anahtarın değeri `get()` fonksiyonu ile alınabilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "efc41be0-2121-41f2-b831-818e1b8a45d2",
"metadata": {},
"outputs": [],
"source": [
"sayilarinKaresi = {1:1,2:4,3:9,4:16}\n",
"print(sayilarinKaresi.get(4))\n",
"\n",
"#bu içiçe (nested) bir şekilde de kullanılabilir\n",
"matPuanlari = {\"Ada\":{\"1.Yazılı\":80,\"2.Yazılı\":90},\"Asya\":{\"1.Yazılı\":70,\"2.Yazılı\":85},\"Mete\":{\"1.Yazılı\":95,\"2.Yazılı\":100}}\n",
"print(matPuanlari.get(\"Asya\").get(\"2.Yazılı\"))"
]
},
{
"cell_type": "markdown",
"id": "0d555531-4d80-4de1-b594-05c6c4711865",
"metadata": {},
"source": [
"Etkinlik: Türk Devletlerinin başkentlerini bir sözlüğe kaydedediniz ve ülkeye göre çağırınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b127ce65-eca3-4b48-bbce-627a454847ee",
"metadata": {},
"outputs": [],
"source": [
"#Etkinliğin Çözümü\n",
"baskentler = {\n",
" \"Türkiye\":\"Ankara\",\n",
" \"Azerbaycan\":\"Bakü\",\n",
" \"Türkmenistan\":\"Aşkabat\",\n",
" \"Kazakistan\":\"Astana\", #yanlış varsa update ile düzeltiniz.\n",
" \"Özbekistan\":\"Taşkent\",\n",
" \"Kırgızistan\":\"Bişkek\",\n",
" \"Tataristan\":\"Kazan\"\n",
"}\n",
"print(baskentler.get(\"Tataristan\"))"
]
},
{
"cell_type": "markdown",
"id": "d8be8677-6f37-4ec2-a241-07aa76d9e435",
"metadata": {},
"source": [
"Bir liste türündeki (liste, demet, küme) değişken dizisi `fromkeys()` sözlük anahtarı olarak dönüştürülebilir. Hatta iki farklı liste türündeki değişken dizisi sözlük anahtarı ve değeri olarak birleştirilebilir."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d7b1e43f-f5b4-499f-ad2f-e4e75456ae8e",
"metadata": {},
"outputs": [],
"source": [
"harfler = [\"A\",\"B\",\"C\",\"Ç\"]\n",
"kod = (\"UTF-8\")\n",
"harflerinKodu = dict.fromkeys(harfler,kod)\n",
"print(harflerinKodu)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a7fb3376-5c5a-4c14-b8f2-73692c211b87",
"metadata": {},
"outputs": [],
"source": [
"harfler = [\"A\",\"B\",\"C\",\"Ç\"]\n",
"harflerinKodu = dict.fromkeys(harfler) #ikinci parametre boş bırakılırsa value değeri boş olarak oluşur\n",
"print(harflerinKodu)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "44e9b0f2-2763-41f5-87f7-fe8ac2ab25a4",
"metadata": {},
"outputs": [],
"source": [
"harfler = [\"A\",\"B\",\"C\",\"Ç\"]\n",
"harflerinKodu = dict.fromkeys(harfler,\"TÜRKÇE\") #ikinci parametre sabit olarak girilirse value değeri girilmiş olur.\n",
"print(harflerinKodu)"
]
},
{
"cell_type": "markdown",
"id": "045ad917-6db3-48e7-9374-7357a266aa8b",
"metadata": {},
"source": [
"Etkinlik: Bir yazılım yapan Ada bu yazılım ile günlük tutuyor. Tuttuğu günlüklerin anahtarı(key) tarih, değeri(value) ise o gün yazdıklarıdır. Sonra Ali geçmişe ait bir günün tarihini girerek o güne ait günceyi getiriyor. Bunu işlemi gerçekleştiren algoritmayı kodlayınız.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "db74b4bf-a439-4db4-95b6-4ad2262be816",
"metadata": {},
"outputs": [],
"source": [
"#Etkinliğin Çözümü\n",
"gunce = {\n",
" 10.10.2022:\"Merhaba günlük bugün günlerde 3 Ekim ve Bilişim dersinde Python isimli bir dil olduğunu öğrendik.\",\n",
" 17.10.2022:\"Merhaba günlük bugün her programlamada dilinde varolan temel kavramların olduğunu öğrendik.\",\n",
" 24.10.2022:\"Merhaba günlük bugün değişkenlerin (verilerin) çeşitli tiplerde olabileceğini öğretti bize öğretmenimiz.\",\n",
" 31.10.2022:\"Merhaba günlük bugün değişkenlerle çeşitli işlemler yapmayı öğredik. Mesela değer atama, toplama, birleştirme vb.\",\n",
" 07.11.2022:\"Merhaba günlük bugün 'eğer öyleyse-değilse' karar yapısını öğrendik.\",\n",
" 14.11.2022:\"Merhaba günlük bugün sürekli tekrlanan işleri döngüler ile yapmayı öğrendik.\",\n",
"}\n",
"print(gunce.get(31.10.2022))"
]
},
{
"cell_type": "markdown",
"id": "053fea5d",
"metadata": {},
"source": [
"# Operatörler (İşleçler)"
]
},
{
"cell_type": "markdown",
"id": "4c550d0c",
"metadata": {},
"source": [
"**Operatör (İşleç) :** Bilgisayarda işlemleri yürütüp gerçekleştiren (sonuçlandıran) öğelerdir. Python programlama dilinde:\n",
"1. **Atama,**\n",
"2. **Aritmetiksel (Matematiksel),**\n",
"3. **Karşılaştırma (Kimlik-Üyelik),**\n",
"4. **Mantıksal,**\n",
"5. **Bit**
\n",
"işleçleri bulunmaktadır. İşleçler sembol-simge olabileceği gibi bağlaç ve deyimlerden de oluşur."
]
},
{
"cell_type": "markdown",
"id": "8bf3faeb-2af9-40c2-b0c1-2c4e1998cbe2",
"metadata": {},
"source": [
"## Atama Operatörleri\n"
]
},
{
"cell_type": "markdown",
"id": "847fdba9-eff4-49e6-af5b-af72d9f9d70a",
"metadata": {},
"source": [
"Programlama dillerinde değişkenlerinin değerlerinin belirlenmesi için kullanılan operatörlerdir."
]
},
{
"cell_type": "markdown",
"id": "e1d91489-4fae-40d2-a4b3-4291f171838b",
"metadata": {},
"source": [
"| **OPERATÖR** | **İŞLEVİ** | **AÇIKLAMA** | **ÖRNEK** | **ÇIKTI** |\n",
"|:-:|:-:|:-|:-:|:-:|\n",
"| **=** | **Eşitle** | Değişkene yazılan değeri eşitler. Sağdaki değeri soldaki değişkene atar.| i=2|2|\n",
"| **+=** | **Toplayarak Eşitle** | Değişkenin **varolan değerine** eşittirin sağındaki değeri ekleyerek eşitler.| i+=10|12|\n",
"| **-=** | **Çıkararak Eşitle** | Değişkenin **varolan değerinden** eşittirin sağındaki değeri çıkararak eşitler.| i-=5|7|\n",
"| *= | **Çarparak Eşitle** | Değişkenin **varolan değerini** eşittirin sağındaki değerle çarparak eşitler.| i*=8|56|\n",
"| /= | **Bölerek Eşitle** | Değişkenin **varolan değerini** eşittirin sağındaki değere bölerek eşitler.| i/=4|14|\n",
"| %= | **Kalana (Mod'a) Eşitle** | Değişkenin **varolan değerini** eşittirin sağındaki değere bölerek kalana eşitler.| i%=8|6|\n",
"| //= | **Bölüm'e Eşitle** | Değişkenin **varolan değerini** eşittirin sağındaki değere bölerek bölüme eşitler.| i//=3|2|"
]
},
{
"cell_type": "markdown",
"id": "5c13d3d0-adfb-4ed7-ada0-5f2fcaac09c9",
"metadata": {},
"source": [
"Atama operatörleri için örnekler:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f93d9321",
"metadata": {},
"outputs": [],
"source": [
"i=16\n",
"print(i)\n",
"i+=4\n",
"print(i)\n",
"i-=5\n",
"print(i)\n",
"i*=2\n",
"print(i)\n",
"i/=3\n",
"print(i)\n",
"i%=6\n",
"print(i)\n",
"i//=3\n",
"print(i)"
]
},
{
"cell_type": "markdown",
"id": "73373cf0-fc2e-4379-aa2c-1679be91b3d0",
"metadata": {},
"source": [
"Etkinlik: Üç basamaklı en büyük sayıdan iki basamaklı en büyük sayıyı çıkarınız, sonra çıkan sonucu en büyük rakama bölünüz, ardından çıkan sonucu 4 ile çarpınız, elde edilen sonucun yaşınıza bölümünden kalanını bulunuz, çıkan sonuca 5 ekleyiniz. Sonuç kaç?
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d84c42e8-5b12-4f73-a8ca-ec93fff07f02",
"metadata": {},
"outputs": [],
"source": [
"#Etkinliğin Çözümü\n",
"enBuyuk3 = 999\n",
"enBuyuk2 = 99\n",
"enBuyuk1 = 9\n",
"yas = int(input(\"Yaşınızı giriniz: \"))\n",
"print(((enBuyuk3-enBuyuk2)/enBuyuk1*4)%yas+5)"
]
},
{
"cell_type": "markdown",
"id": "d7e5dddd",
"metadata": {},
"source": [
"## Aritmetiksel (Matematiksel) Operatörler"
]
},
{
"cell_type": "markdown",
"id": "497d4efe-254b-4753-8575-21082b748c18",
"metadata": {},
"source": [
"Programlama dillerinde aritmetik (matematiksel) işlemlerinin yapılabilmesi için kullanılan operatörlerdir."
]
},
{
"cell_type": "markdown",
"id": "068d37f0",
"metadata": {},
"source": [
"| **OPERATÖR** | **İŞLEVİ** | **AÇIKLAMA** | **ÖRNEK** | **ÇIKTI** |\n",
"|:-:|:-:|:-|:-:|:-:|\n",
"| **+** | **Toplama** | Sayısal değişkenleri (integer, float vd.) matematiksel olarak toplar, sayısal olmayanları (string, list vd.) birleşitirir.| 3+5
\"3\"+\"5\"|8
'35'|\n",
"| **-** | **Çıkarma** | Sayısal değişkenleri (integer, float vd.) matematiksel olarak çıkarır, sayısal olmayanlarda (string, list vd.) **hata verir**.| 2023-1923|100|\n",
"| * | **Çarpma** | Sayısal değişkenleri (integer, float vd.) matematiksel olarak çarpar, sayısal olmayanlarda (string, list vd.) değişkeni kere yazdırır.| $$10*5$$
$$\"C\"*3$$| 50
'CCC'|\n",
"| / | **Bölme** | Sayısal değişkenleri (integer, float vd.) matematiksel olarak böler, bölme işleminin sonucu her zaman 'float' tipidir.| 8/4|2.0|\n",
"| // | **Bölüm** | Sayısal değişkenleri (integer, float vd.) matematiksel olarak böler ve bölüm kısmını verir. İşleminin sonucu her zaman işleme sokulan veri tipidir.| 13//5
13.5//5|2
2.0|\n",
"| % | **Kalan** | Diğer adı mod almadır. Sayısal değişkenleri (integer, float vd.) matematiksel olarak böler ve kalan kısmını verir. İşleminin sonucu her zaman işleme sokulan veri tipidir.| 13%5|3|\n",
"| ** | **Üssü** | Sayısal değişkenleri (integer, float vd.) matematiksel olarak kuvvetini verir. İşleminin sonucu her zaman işleme sokulan veri tipidir.| 5**3|125|"
]
},
{
"cell_type": "markdown",
"id": "7837feb5",
"metadata": {},
"source": [
"Aritmetiksel operatörler için örnekler:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2aac5d7d",
"metadata": {},
"outputs": [],
"source": [
"toplam = 16+5\n",
"birlestirme = \"16\"+\"5\" #string olan verileri '+' işleci ile kullanırsak stringleri yanyana birleştirir.\n",
"fark = 16-5\n",
"carpim = 16*5\n",
"cogaltma = \"16\"*5 #string olan verileri integerler ile çarparsak string'i integer kadar yazmış oluruz.\n",
"bolme = 16/5\n",
"bolum = 16//5\n",
"kalan = 16%5\n",
"karesi = 16**2\n",
"\n",
"print (\"Toplam:{}\\nBirleştirme:{}\\nFark:{}\\nÇarpım: {}\\nBölme: {}\\nBölüm: {}\\nKalan: {}\\nKaresi; {}\\nÇoğaltılmış String: {}\"\n",
" .format(toplam,birlestirme,fark,carpim,bolme,bolum,kalan,karesi,cogaltma))"
]
},
{
"cell_type": "markdown",
"id": "95fea7cf",
"metadata": {},
"source": [
"### Aritmetiksel Bazı Fonksiyonlar\n",
"#### Gömülü Fonksiyonlar\n",
"**(Kütüphane eklemeye gerek kalmadan kullanılabilecekler)**"
]
},
{
"cell_type": "markdown",
"id": "70db288d-0e01-4502-93f3-b585722170e5",
"metadata": {},
"source": [
"- Verilen bir sayı dizisinin (integer tipi) toplamı `sum()` fonskiyonu ile alınır. Örnek: sum(1,3,5,7,12)\n",
"- Bir sayı kümesindeki en büyük değeri bulmak için `max()` fonskiyonu kullanılır.\n",
"- Bir sayı kümesindeki en küçük değeri bulmak için `min()` fonskiyonu kullanılır.\n",
"- Bir sayının mutlak değeri (pozitif değeri) `abs()` fonskiyonu ile alınır.\n",
"- Bir sayının hem bölümünü hem de kalanını aynı anda bulmak için `divmod()` fonskiyonu kullanılır. Örnek: divmod(10,3) yazarsak (3,1) olarak sonuç çıkar.\n",
"- Bir sayıyı yuvarlamak için `round()` fonskiyonu kullanılır. Ondalık kısmı 5 ve 5'ten yukarı ise yukarı değilse aşağı yuvarlar.\n",
"- Bir sayının üssünü almak için `pow()` fonskiyonu kullanılır. Örnek: pow(5,2)\n",
"- Bir aralıktaki sayıları ele almak için `range()` fonskiyonu kullanılır. Örnek: range(-10,10)\n",
"- Bir sayının 2'li sayı sistemindeki değerini bulmak için `bin()` fonskiyonu kullanılır.\n",
"- Bir sayının 8'li sayı sistemindeki değerini bulmak için `oct()` fonskiyonu kullanılır.\n",
"- Bir sayının 16'lı sayı sistemindeki değerini bulmak için `hex()` fonskiyonu kullanılır."
]
},
{
"cell_type": "markdown",
"id": "7247cf28",
"metadata": {},
"source": [
"Etkinlik: Dünyanın en hızlı roketi ile dünyanın ekvator çevresinde bir tam turu toplam kaç dakikada tamamlanır? Roket hızını internetten araştırınız(Pi=3.14, Dünyanın ekvatoral yarıçapı: 6378 km)
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5bf73f58",
"metadata": {},
"outputs": [],
"source": [
"#Roket Etkinliğinin Çözümü\n",
"rokethizi = 532000\n",
"ekvator = 6378\n",
"pi = 3.14\n",
"\n",
"cevre = 2*pi*ekvator\n",
"esure = 60*cevre/rokethizi #dakikaya çevirmek için ile çarptım.\n",
"print (\"Dünyanın ekvator hizasındaki çevresini\",esure,\"dakikada tamamlar.\")\n",
"\n",
"#Roket Etkinliğinin Şık Çözümü\n",
"h,r,p = 532000,6378,3.14\n",
"print (\"Dünyanın ekvator hizasındaki çevresini\",round(60*2*p*r/h,2),\"dakikada tamamlar.\")"
]
},
{
"cell_type": "markdown",
"id": "5a94c2b3",
"metadata": {},
"source": [
"Etkinlik: Babanızın yaşından annenizin yaşını çıkardıktan sonra kendi yaşınızı ekleyiniz ve evde yaşayan kişi sayısıyla çarpınız. Çıkan sayıyı kendi yaşınıza bölününce kalanın karesini alınız. Sonuç kaç?
"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "30e8a228-bf69-490d-b1e8-d8653a195280",
"metadata": {},
"outputs": [],
"source": [
"#Etkinliğin Çözümü\n",
"baba = int(input(\"Babanızın yaşını giriniz: \"))\n",
"anne = int(input(\"Annenizin yaşını giriniz: \"))\n",
"kendim = int(input(\"Kendi yaşınızı giriniz: \"))\n",
"mevcut = int(input(\"Evde toplam kaç kişi yaşıyor: \"))\n",
"print(((baba-anne+kendim)*mevcut)%kendim**2)"
]
},
{
"cell_type": "markdown",
"id": "1a3d3bc3-52e1-4a01-b00c-768199b760d7",
"metadata": {},
"source": [
"#### Math Kütüphanesi ile Gelen Fonksiyonlar"
]
},
{
"cell_type": "markdown",
"id": "8984702c-f848-4814-abe3-5822ce529893",
"metadata": {},
"source": [
"Gömülü olarak kullanamadığımız matematiksel fonksiyonları barındırır. `import math` veya `from math import *` olarak aktarılabilir."
]
},
{
"cell_type": "markdown",
"id": "465cf11e-094b-4f83-bd43-d8e9b85f7a94",
"metadata": {},
"source": [
"- Bir sayıyı aşağı yuvarlamak için `math.ceil()` fonskiyonu kullanılır.\n",
"- Bir sayıyı yukarı yuvarlamak için `math.floor()` fonskiyonu kullanılır.\n",
"- Bir sayının işaretini (+,-) başka bir sayıya aktarmak için `math.copysign()` fonskiyonu kullanılır. Örneğin math.copysign(5,-12) yazarsak sonuç -5 olur.\n",
"- Bir sayının float olarak mutlak değeri `math.fabs()` fonskiyonu ile alınır.\n",
"- Bir sayının faktöriyelini bulmak için `math.factorial()` fonskiyonu kullanılır.\n",
"- Bir sayının başka bir sayıya bölümünden kalanı flolat olarak bulmak için `math.fmod()` fonskiyonu kullanılır. Özellikle negatif sayılarda doğru sonuç verir.\n",
"- Flolat tipindeki sayıların toplamını bulmak için `math.fsum()` fonskiyonu kullanılır.\n",
"- Verilen sayıların EBOB'unu bulmak için `math.gcd()` fonskiyonu kullanılır. Örnek: math.gcd(sayi1,sayi2,sayi3)\n",
"- Pi sayısını kullanmak için `math.pi()` fonskiyonu kullanılır.\n",
"- Bir karekökünü bulmak için `math.sqrt()` fonskiyonu kullanılır."
]
},
{
"cell_type": "markdown",
"id": "31994fb1-9e65-4d76-8fda-16b65ffd078e",
"metadata": {},
"source": [
"Etkinlik: Kendi yaşınızı float olarak hesaplayıp (örn: (2022-2004)+5/12) yaşınızı aşağı ve yukarı yuvarlayınız.
"
]
},
{
"cell_type": "markdown",
"id": "6ccf1ac2-815f-428e-aed0-4e00b8d3e49a",
"metadata": {},
"source": [
"Etkinlik: Evinizde yaşayanların yaşlarını float olarak hesaplayıp (örn: (2022-2004)+5/12) yaşları toplayınız.
"
]
},
{
"cell_type": "markdown",
"id": "b1cb23ab-fabc-4e74-8935-9bc53f4046bb",
"metadata": {},
"source": [
"Etkinlik: 7 sayısının faktöriyeli ile 4 sayısının faktöriyelinin EBOB'unu bulunuz.
"
]
},
{
"cell_type": "markdown",
"id": "36800f3a-be43-4524-a12f-22b645d2812a",
"metadata": {},
"source": [
"Etkinlik: Bir çemberin çevresi 2*Pi sayısı*Çemberin Yarıçapıdır. Buna göre yarıçapı 19.23 olan çemberin çevresini hesaplayınız.
"
]
},
{
"cell_type": "markdown",
"id": "f5b58329-4131-4201-b232-63cbc5343ba7",
"metadata": {},
"source": [
"Etkinlik: Cumhuriyetimizin yaşının karekökünü bulunuz.
"
]
},
{
"cell_type": "markdown",
"id": "7b344933-bc4d-436a-8f67-805a050b809c",
"metadata": {},
"source": [
"#### Random Kütüphanesi ile Gelen Fonksiyonlar"
]
},
{
"cell_type": "markdown",
"id": "8596d79e-4a11-460e-b522-f420640e33b8",
"metadata": {},
"source": [
"Rassalık (rasgele) işlemlerini yapmamızı sağlayan fonksiyonları barındırır. `import random` veya `from random import *` olarak aktarılabilir."
]
},
{
"cell_type": "markdown",
"id": "756c806e-307a-4c63-aa9f-a32e59b9e249",
"metadata": {},
"source": [
"- 0 ile 1 arasında rasgele bir sayı (float) üretmek için `random.random()` fonskiyonu kullanılır.\n",
"- Bir aralıkta rasgele bir sayı (float) üretmek için `random.uniform()` fonskiyonu kullanılır. Örnek: random.uniform(1,20)\n",
"- Bir aralıkta rasgele integer bir sayı üretmek için `random.randint()` fonskiyonu kullanılır. Örneğin random.randint(1,100) ile 1 ile 100 sayıları arasında rasgele bir sayı üretilir.\n",
"- Bir aralıkta rasgele integer bir sayı üretmek için `random.randrange()` fonskiyonu kullanılır. randint()'ten farkı, aralıkta belirli bir artış vererek rassal sayı ihtimalini biçimlendiririz. Örneğin random.randrange(0,100,5) ile 0 ile 100 sayıları arasında 0'dan başlayarak 5'er 5'er artan sayılardan rasgele bir sayı üretilir.\n",
"- Bir listedeki elemanları rasgele karıştırmak için `random.shuffle()` fonskiyonu kullanılır. Örnek random.shuffle(liste_adi)\n",
"- Bir listedeki elemanlardan rasgele birini seçmek için `random.choice()` fonskiyonu kullanılır. Örnek random.choice(liste_adi)\n",
"- Bir listedeki elemanlardan rasgele birkaçını seçmek için `random.sample()` fonskiyonu kullanılır. Örnek random.choice(liste_adi,secilecek_eleman_sayisi)"
]
},
{
"cell_type": "markdown",
"id": "081c1fb7-455c-4bde-a5a3-812893ba59b6",
"metadata": {},
"source": [
"Etkinlik: Art arda 5 tane 1 ile 20 arasında rassal tam sayı oluşturunuz.
"
]
},
{
"cell_type": "markdown",
"id": "6ecde0bb-e8fb-48dc-8d7d-85decafb9f34",
"metadata": {},
"source": [
"Etkinlik: 1 ile 50 arasında sadece çift sayılardan rassal tam sayı oluşturunuz.
"
]
},
{
"cell_type": "markdown",
"id": "71e1dbf4-070c-4cd0-aa99-3941801d5da9",
"metadata": {},
"source": [
"Etkinlik: 0 ile 100 arasında sadece 13'ün katlarından rassal tam sayı oluşturunuz.
"
]
},
{
"cell_type": "markdown",
"id": "4a5deb77-344f-4da9-8b38-04ea40d1ab30",
"metadata": {},
"source": [
"Etkinlik: Rasgele float oluşturduğunuz negatif bir sayıdan o sayının tam kısmını çıkararak -1'den büyük 0'dan küçük bir rasgele sayı oluşturunuz.
"
]
},
{
"cell_type": "markdown",
"id": "ae0b3261-885c-4daa-91e3-c0ed9695e41f",
"metadata": {},
"source": [
"Etkinlik: Taş kağıt makas oyunu için oluşturulan liste tipi değişkenden makinenin seçimini rassal bir şekilde ekrana yazdırınız.
"
]
},
{
"cell_type": "markdown",
"id": "cfca7d84-f2af-4586-9d0c-f84e97b8fb9b",
"metadata": {},
"source": [
"#### Statistics Kütüphanesi ile Gelen Fonksiyonlar"
]
},
{
"cell_type": "markdown",
"id": "df8d1bff-b99b-4523-a948-af6fdf041631",
"metadata": {},
"source": [
"Matematikteki temel istatistiksel işlemleri (aritmetik ortalama, mod medyan vb.) içeren fonksiyonları barındırır. `import statistics` veya `from statistics import *` olarak aktarılabilir."
]
},
{
"cell_type": "markdown",
"id": "66ba40db-c434-4cc3-a02e-1d8e3c7f8ac2",
"metadata": {},
"source": [
"- Verilen sayı dizisinin ortalamasını bulmak için `statistics.mean()` fonskiyonu kullanılır.\n",
"- Verilen sayı dizisinin ağırlıklandırılmış ortalamasını bulmak için `statistics.fmean()` fonskiyonu kullanılır. Örnek: statistics.fmean(sayilar,agirlıiklar)\n",
"- Verilen sayı dizisinin geometrik ortalamasını bulmak için `statistics.geometric_mean()` fonskiyonu kullanılır.\n",
"- Verilen sayı dizisinin harmonik ortalamasını bulmak için `statistics.harmonic_mean()()` fonskiyonu kullanılır.\n",
"- Verilen sayı dizisinin modunu bulmak için `statistics.mode()` fonskiyonu kullanılır.\n",
"- Verilen sayı dizisinin medyanını bulmak için `statistics.median()` fonskiyonu kullanılır.\n",
"- Verilen sayı dizisinin küçük medyanını bulmak için `statistics.median_low()` fonskiyonu kullanılır.\n",
"- Verilen sayı dizisinin büyük medyanını bulmak için `statistics.median_high()` fonskiyonu kullanılır.\n",
"- Verilen sayı dizisinin gruplandırılmış örneklemde medyanı bulmak için `statistics.median_grouped()` fonskiyonu kullanılır.\n",
"- Verilerin standart sapmasını bulmak için `statistics.stdev()` fonskiyonu kullanılır. Eğer popülasyon için hesaplanacaksa `statistics.pstdev()` kullanılır.\n",
"- Verilerin varyansını bulmak için `statistics.variance()` fonskiyonu kullanılır. Eğer popülasyon için hesaplanacaksa `statistics.pvariance()` kullanılır.\n",
"- İki değişken arasındaki kovaryansı bulmak için `statistics.covariance()` fonskiyonu kullanılır.\n",
"- İki değişken arasındaki ilişkiyi bulmak için `statistics.correlation()` fonskiyonu kullanılır.\n",
"- Bir değişkene göre başka bir değişkeni tahmin etmek için `statistics.linear_regression()` fonskiyonu kullanılır."
]
},
{
"cell_type": "markdown",
"id": "92fb3133-a2b9-4915-a998-6f675770bdf1",
"metadata": {},
"source": [
"Etkinlik: Bir market müşterilerinin TC No ve alışveriş tutarlarını sözlük tipinde bir değişkenle tutmaktadır. Market 250 TL ve üzeri alışveriş yapan müşterilerinden rasgele 3'üne 500TL'lik hediye çeki verecektir. Bu akışı gerçekleştiren kodları yazınız.
"
]
},
{
"cell_type": "markdown",
"id": "9ba3bf82",
"metadata": {},
"source": [
"## Karşılaştırma Operatörleri"
]
},
{
"cell_type": "markdown",
"id": "620ea27c-5b4b-4453-9357-abdbf13f86de",
"metadata": {},
"source": [
"Programlama dillerinde değişkenleri&değerleri karşılaştırarak Doğru (True) veya Yanlış (False) bulma operatörüdür. Karşılaştırma işleçlerinden True veya False (boolean değer) haricinde bir çıktı olmaz."
]
},
{
"cell_type": "markdown",
"id": "3b55012d",
"metadata": {},
"source": [
"| **OPERATÖR** | **İŞLEVİ** | **AÇIKLAMA** | **ÖRNEK** | **ÇIKTI** |\n",
"|:-:|:-:|:-|:-:|:-:|\n",
"| **==** | **Eşit mi?** | Eşittirlerin sağındaki ve solundaki değerleri karşılaştırır. Eşitse True, değilse False değeri verir.| \"TR\"==\"TR\"
3==5|True
False|\n",
"| **!=** | **Farklı mı?** | Eşittirlerin sağındaki ve solundaki değerleri karşılaştırır. Farklıysa True, değilse False değeri verir.| \"TR\"!=\"TR\"
3!=5|False
True|\n",
"| **<** | **Küçük mü?** | Eşittirlerin sağındaki ve solundaki değerleri karşılaştırır. Soldaki sağdakinden küçükse True, değilse False değeri verir. Sadece sayısal değerler için kullanılır.| 3<5
5<3|True
False|\n",
"| **<=** | **Küçük veya Eşit mi?** | Eşittirlerin sağındaki ve solundaki değerleri karşılaştırır. Soldaki sağdakinden küçük veya eşitse True, değilse False değeri verir.| 5<=5
5<=3|True
False|\n",
"| **>** | **Büyük mü?** | Eşittirlerin sağındaki ve solundaki değerleri karşılaştırır. Soldaki sağdakinden büyükse True, değilse False değeri verir. Sadece sayısal değerler için kullanılır.| 3>5
5>3|False
True|\n",
"| **>=** | **Büyük veya Eşit mi?** | Eşittirlerin sağındaki ve solundaki değerleri karşılaştırır. Soldaki sağdakinden büyük veya eşitse True, değilse False değeri verir.| 5>=5
5>=7|True
False|"
]
},
{
"cell_type": "markdown",
"id": "e317bb7f",
"metadata": {},
"source": [
"Karşılaştırma operatörleri için örnekler:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b691655b",
"metadata": {},
"outputs": [],
"source": [
"sonuc = 3==5\n",
"print(sonuc)\n",
"sonuc = 3!=5\n",
"print(sonuc)\n",
"sonuc = \"TÜRKİYE\"==\"TR\"\n",
"print(sonuc)\n",
"sonuc = \"TÜRKİYE\"!=\"TR\"\n",
"print(sonuc)\n",
"print(\"------\")\n",
"sonuc = 3<5\n",
"print(sonuc)\n",
"sonuc = 3>5\n",
"print(sonuc)\n",
"sonuc = 3<=5\n",
"print(sonuc)\n",
"sonuc = 3>=5\n",
"print(sonuc)"
]
},
{
"cell_type": "markdown",
"id": "08d22805",
"metadata": {},
"source": [
"Etkinlik: Türkiye'nin yıllık ekonomik büyüme oranı ile Dünya ekonomisinin ortalama büyümesi ile karşılaştırınız. Tüm karşılaştırma operatörleri ile deneyip ekrana önerme olarak yazdırınız.
"
]
},
{
"cell_type": "markdown",
"id": "c2cdb2f4",
"metadata": {},
"source": [
"### Kimlik ve Üyelik Türü Karşılaştırmalar"
]
},
{
"cell_type": "markdown",
"id": "ea5ec01b-a397-4bc2-bd45-06e6284bdffd",
"metadata": {},
"source": [
"Değişkenlerin veya değerlerinin 'ne' olduğu veya 'ne' içerdiği ile ilgili karşılaştırmalardır."
]
},
{
"cell_type": "markdown",
"id": "25a2be3f",
"metadata": {},
"source": [
"| **KARŞILAŞTIRMA** | **TİP** | **AÇIKLAMA** | **ÖRNEK** | **ÇIKTI** |\n",
"|:-:|:-:|:-|:-:|:-:|\n",
"| **is** | **Kimlik** | İki değişkenin veya nesnenin aynı olması durumunda TRUE değeri verir. Değilse False.| a is a|True|\n",
"| **is not** | **Kimlik** | İki değişkenin veya nesnenin farklı olması durumunda TRUE değeri verir. Değilse False.| a is not a|False|\n",
"| **in** | **Üyelik** | Solundaki değişken veya nesne, sağındaki değişkenin veya nesnenin içinde var ise TRUE değeri verir. Değilse False.| \"Türkiye\" in \"i\"|True|\n",
"| **not in** | **Üyelik** | Solundaki değişken veya nesne, sağındaki değişkenin veya nesnenin içinde yok ise TRUE değeri verir. Değilse False.| \"Türkiye\" not in \"i\"|False|"
]
},
{
"cell_type": "markdown",
"id": "51b3673a",
"metadata": {},
"source": [
"Kimlik ve üyelik türü karşılaştırmalara örnekler verelim."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "04d22b9f",
"metadata": {},
"outputs": [],
"source": [
"s1 = \"İSTİKLAL HARBİ\"\n",
"s2 = \"KURTULUŞ SAVAŞI\"\n",
"q = \"U\"\n",
"print(s1 is s2, s1 is not s2, s1 in q, s2 not in q)"
]
},
{
"cell_type": "markdown",
"id": "0a7656c4",
"metadata": {},
"source": [
"Etkinlik: Kullanıcıdan aldığınız verinin her karakterini Türk alfabesi ile karşılaştırınız ve Türk alfabesinde olmayan değerleri ekrana yazdırınız.
"
]
},
{
"cell_type": "markdown",
"id": "33a61ebc",
"metadata": {},
"source": [
"### String Değişken Tipine Ait Bazı Karşılaştırma Metotları"
]
},
{
"cell_type": "markdown",
"id": "45ae8909",
"metadata": {},
"source": [
"| **KARŞILAŞTIRMA** | **TİP** | **AÇIKLAMA** | **ÖRNEK** | **ÇIKTI** |\n",
"|:-:|:-:|:-|:-:|:-:|\n",
"| **endswith()** | **string** | Değişken belirli bir değer ile bitiyorsa TRUE değeri verir. Değilse False.| \"TR\".endswith(\"R\")|False|\n",
"| **startswith()** | **string** | Değişken belirli bir değer ile başlıyorsa TRUE değeri verir. Değilse False.| \"TR\".startswith(\"T\")|True|\n",
"| **isalnum()** | **string** | Değişken tamamen harf veya rakamlardan oluşuyorsa TRUE değeri verir. Değilse False.| \"TR1923\".isalnum()|True|\n",
"| **isalpha()** | **string** | Değişken tamamen harflerden oluşuyorsa TRUE değeri verir. Değilse False.| \"TR1923\".isalpha()|False|\n",
"| **isnumeric()** | **string** | Değişken tamamen rakamlardan (float veya integer) oluşuyorsa TRUE değeri verir. Değilse False.| \"1920\".isnumeric()|True|\n",
"| **isdecimal()** | **string** | Değişken tamamen ondalık sayılardan oluşuyorsa TRUE değeri verir. Değilse False.| \"19.23\".isdecimal()|True|\n",
"| **isdigit()** | **string** | Değişken tamamen rakamlardan oluşuyorsa TRUE değeri verir. Değilse False.| \"1923\".isdigit()|True|\n",
"| **islower()** | **string** | Değişkendeki tüm harfler küçükse TRUE değeri verir. Değilse False.| \"TR\".islower()|False|\n",
"| **isupper()** | **string** | Değişkendeki tüm harfler büyükse TRUE değeri verir. Değilse False.| \"TR\".isupper()|True|\n",
"| **istitle()** | **string** | Değişkendeki tüm harfler büyük harfle başlıyor ve diğerleri küçükse TRUE değeri verir. Değilse False.| \"TR\".istitle()|False|\n",
"| **isspace()** | **string** | Değişken tamamen boşluklardan oluşuyorsa TRUE değeri verir. Değilse False.| \"TR\".isspace()|False|"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fbd47c6e",
"metadata": {},
"outputs": [],
"source": [
"print(\"TÜRKİYE\".endswith(\"E\"))\n",
"print(\"TÜRKİYE\".startswith(\"X\"))\n",
"print(\"TÜRKİYE1923\".isalnum())\n",
"print(\"TÜRKİYE\".isalpha())\n",
"print(\"1923\".isnumeric())\n",
"print(\"19.23\".isdecimal())\n",
"print(\"1923\".isdigit())\n",
"print(\"TÜRKİYE\".islower())\n",
"print(\"TÜRKİYE\".isupper())\n",
"print(\"Türkiye\".istitle())\n",
"print(\" \".isspace())"
]
},
{
"cell_type": "markdown",
"id": "75d3c191",
"metadata": {},
"source": [
"Etkinlik: Kullanıcıdan aldığınız verinin her karakterini Türk alfabesi ile karşılaştırınız ve Türk alfabesinde olmayan değerleri ekrana yazdırınız. Değerleri ekrana yazdırırken harf ve nümerikleri ayrı liste olarak yazdırınız.
"
]
},
{
"cell_type": "markdown",
"id": "c8bc5ff7",
"metadata": {},
"source": [
"## Mantıksal Operatörler"
]
},
{
"cell_type": "markdown",
"id": "7e44984d-756e-41b7-8910-efe2bab14520",
"metadata": {},
"source": [
"Birden fazla karşılaştırma işleci kullanılacağı zaman karşılaştırmaların birlikte test edilmesini sağlayan operatörlerdir. \"VE(and) (bütün durumlar birlikte doğruysa)\", \"VEYA(or) (bütün durumlardan en az biri doğruysa)\" ve \"DEĞİL(not) (durumun tersi)\" olarak 3 tanedir. Sonuçları her zaman True veya False olur."
]
},
{
"cell_type": "markdown",
"id": "880926b6",
"metadata": {},
"source": [
"| **OPERATÖR** | **İŞLEVİ** | **AÇIKLAMA** | **ÖRNEK** | **ÇIKTI** |\n",
"|:-:|:-:|:-|:-:|:-:|\n",
"| **and** | **VE** | Koşulların birlikte doğru olmasını test eder. Hepsi doğru ise True değeri verir. Herhangi birinin yanlış olması False değerini verir. | \"TR\"==\"TR\" and \"TR\"!=\"TC\"|True|\n",
"| **or** | **VEYA** | Koşulların herhangi birinin doğru olmasını test eder. Herhangi biri doğru ise True değeri verir. Hiçbiri doğru değilse False değerini verir. | \"TR\"==\"TR\" or \"TR\"!=\"TC\"|True|\n",
"| **not** | **DEĞİL** | Koşulun tersini test eder. Tersi doğru ise True değeri verir. Yanlış ise False değerini verir. | \"TR\"==\"TR\" or \"TR\"!=\"TC\"|