Orta Seviye Python

Aşağıdaki program ve kodlar, aşağıdaki Türkçe Pyhton video listesinden (24.videodan itibaren) yararlanarak hazırlanmıştır. Eğer daha temel düzeyde Pyhthon dersine ihtiyacınız varsa ilk 24 videoyu izlemenizi de öneririm.

https://www.youtube.com/playlist?list=PLIHume2cwmHehcxQE1XZieL21syR3m3tR

İnternette veri indirme

In [9]:
print("Internetten resim indirme!!")

import urllib.request as req
url1 = "http://netlogoweb.org/assets/images/desktopicon.png"
req.urlretrieve(url1, "netlogo.jpg")
Internetten resim indirme!!
Out[9]:
('netlogo.jpg', <http.client.HTTPMessage at 0x1044ba630>)

Hata ayıklama

In [3]:
girdi1 = input("sayı1: ")
girdi2 = input("sayı2: ")

try:
    say1 = int(girdi1)
    say2 = int(girdi2)
    print(say1 / say2)
except ZeroDivisionError:
    print("Bölen 0 olamaz!!")
except ValueError:
    print("Lütfen sayısal değer giriniz.")
sayı1: 4
sayı2: 7
0.5714285714285714

Dosya yazma

In [4]:
# yaz.txt olmasa da, oluşturulur.
dosya = open("yaz.txt","a")
dosya.write("naber \n")
Out[4]:
7
In [5]:
dosya.write("nasıl gidiyor \n")
Out[5]:
15

Dosya Okuma

In [15]:
try:
    dosya = open("yaz.txt","r")
    liste = dosya.readlines()
    
    # Tüm listeyi yazdıralım
    print(liste)

    for i in liste:
        print(i.strip()) # alt-satıra geçen karakterden, "\n", kurtuluyoruz
except:
    print("Dosya bulunamadı")
finally:
    dosya.close()
['naber \n', 'naber \n', 'naber \n', 'nasıl gidiyor \n']
naber
naber
naber
nasıl gidiyor

Dosyanın başına bir şey ekleme

In [20]:
with open("yaz.txt","r+") as dosya:
    veri = dosya.read()
    dosya.seek(0)
    veri = "Bunu en başa yazalım!!\n" + veri
    dosya.write(veri)
In [21]:
dosya = open("yaz.txt","r")
print(dosya.readlines())
['Bunu en başa yazalım!!\n', 'naber\n', 'naber \n', 'naber \n', 'nasıl gidiyor \n']

Sqlite ile Veritabani işlemleri

Sqlite veritabanı görütülemek için şu programı kullanabilirsiniz

* http://sqlitebrowser.org/
In [28]:
import sqlite3 as sql

baglanti = sql.connect("dersler.db")
islem = baglanti.cursor()

def tabloolustur():
    islem.execute("CREATE TABLE IF NOT EXISTS ogrenciler (ad TEXT, soyad TEXT, numara INT, ortalama INT)")
    baglanti.commit()

def degerekle(ad, soyad, no, ort):
    komut = "INSERT INTO ogrenciler VALUES (\'"
    komut = komut +  ad +"\', \'" + soyad + "\', "+ str(no) + ", " + str(ort) + ")"
    islem.execute(komut)
    baglanti.commit()

tabloolustur()

ad, soyad, no, ort = 'Murat', 'Peker',1010123,89
degerekle(ad, soyad, no, ort)

ad, soyad, no, ort = 'Salim', 'Gündüz',1312125,56
degerekle(ad, soyad, no, ort)

baglanti.close()
---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
<ipython-input-28-15dc3a88ec4e> in <module>()
     17 
     18 ad, soyad, no, ort = 'Murat', 'Peker',1010123,89
---> 19 degerekle(ad, soyad, no, ort)
     20 
     21 ad, soyad, no, ort = 'Salim', 'Gündüz',1312125,56

<ipython-input-28-15dc3a88ec4e> in degerekle(ad, soyad, no, ort)
     11     komut = "INSERT INTO ogrenciler VALUES (\'"
     12     komut = komut +  ad +"\', \'" + soyad + "\', "+ str(no) + ", " + str(ort) + ")"
---> 13     islem.execute(komut)
     14     baglanti.commit()
     15 

OperationalError: database is locked

Nesne Tabanlı Programalama - NTP

In [30]:
class Dusman:
    kalan_can = 3
    def saldır(self):
        print("hucuuuummmm... !!")
        self.kalan_can -= 1
    def canlimi(self):
        if self.kalan_can <= 0:
            print("\t\t>>> Olu")
        else:
            print("\t\t>>> Kalan can: " + str(self.kalan_can))

dusman_1 = Dusman()

dusman_1.saldır();
dusman_1.canlimi()
hucuuuummmm... !!
		>>> Kalan can: 2
In [31]:
dusman_1.saldır();
dusman_1.canlimi()

dusman_1.saldır();
dusman_1.canlimi()
hucuuuummmm... !!
		>>> Kalan can: 1
hucuuuummmm... !!
		>>> Olu
In [32]:
class Rakip:
    def __init__(self, isim, can, guc, mermi):
        self.isim, self.kalan_can = isim, can
        self.saldiri_gucu, self.mermi_sayisi = guc, mermi

    def print(self):
        mesaj = "\nisim {}, kalan can {}, saldırı gücü {}, Mermi sayısı {} "
        print(mesaj.format(self.isim,self.kalan_can,self.saldiri_gucu,self.mermi_sayisi))

rakip1 = Rakip("Gargamel", 1000, 50, 25)
rakip1.print()
isim Gargamel, kalan can 1000, saldırı gücü 50, Mermi sayısı 25 

Buradan devam edeceğim

Python3 Dersleri 39 - NTP - Inheritance (Kalıtım)

* https://www.youtube.com/watch?v=IDSBIZHc3rI&list=PLIHume2cwmHehcxQE1XZieL21syR3m3tR&index=39
In [ ]: