Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan Python programlama dili eğitim serisinin bir parçasıdır. Eğitmen, nesne yönelimli programlama konusunu pekiştirmek için ATM sistemi örneği üzerinden adım adım anlatmaktadır.
- Video, ATM sisteminin temel sınıflarının (Müşteri ve ATM) oluşturulmasından başlayarak, şifre doğrulama, menü sistemi, bakiye sorgulama, kredi kartı borcu görüntüleme, para çekme, para yatırma ve çıkış gibi temel ATM işlemlerinin nasıl programlanacağını göstermektedir. Eğitmen, 95 satırlık ATM uygulamasını kodlamakta, test etmekte ve hata ayıklama sürecini detaylı olarak anlatmaktadır.
- Eğitim, veritabanı oluşturma, döngü kontrolü, if-else yapıları ve sınıfların kullanım mantığı gibi temel programlama kavramlarını içermektedir. Ayrıca, uygulamada karşılaşılan "type- c ford table and integer" hatasının tespit edilmesi ve düzeltilmesi gibi pratik hata ayıklama teknikleri de gösterilmektedir.
- 00:02Nesne Yönelimli Programlama Örneği
- Python eğitim serisinde nesne yönelimli programlama mantığı konusu tamamlanmış ve şimdi bu konuyla ilgili bir örnek verilecek.
- Sınıflar ve metotlar, ATM sistemleri, oyunlar gibi uygulamaların temel mantığı olan nesne yönelimli programlama çerçevesinde geliştirilen yapılar.
- Önceki videoda amatörce geliştirilen basit bir ATM mantığı anlatılmıştı, şimdi bu sistemi sınıflar ve metotlar kullanarak daha sistematik şekilde yeniden yapacağız.
- 03:48Fonksiyon ve Sınıf Mantığı
- ATM sistemi kendi başına bir sınıftır ve içinde özellikler (metotlar) vardır, metot yapısı aslında fonksiyon yapısıdır.
- Fonksiyonlar, tekrar tekrar kullanılacak kod bloklarını başlıklar haline getirerek kod tekrarını önler ve kodu daha kolay yönetmeye imkan sağlar.
- ATM'de giriş kontrolü, işlem seçimleri ve çıkış gibi özellikler sınıf içerisinde birer özellik yapısıdır.
- 06:09Müşteri Sınıfı Oluşturma
- Veritabanı kullanmadan müşteri bilgilerini saklamak için "Müşteri" sınıfı oluşturuluyor.
- Müşteri sınıfı içerisinde ad, soyad, hesap bakiyesi, kredi kartı borcu ve son ödeme tarihi gibi özellikler tanımlanıyor.
- Ahmet adlı bir müşteri için sınıf üzerinden hesap oluşturuluyor ve ad, soyad, kart şifresi, hesap bakiyesi, kredi kartı borcu ve son ödeme tarihi gibi bilgiler atanıyor.
- 09:58Müşteri Sınıfı Oluşturma
- Mehmet hesabını oluştururken, sınıfın özelliklerini kullanarak hesap bakiyesi, kredi kartı borcu ve son ödeme tarihi gibi bilgileri tanımladı.
- Müşteriye ait özellikleri bir sınıf içerisinde tanımlayarak, daha sonra dışarıdan bu bilgileri alabildik.
- Takılan kart isimli bir sözlük oluşturuldu, bu sözlük, hesap bilgilerinin takıldığı bir alan olarak kullanıldı.
- 13:25ATM Sınıfı Oluşturma
- ATM isimli bir sınıf tanımlandı ve init yapısı oluşturuldu.
- ATM sınıfının içerisinde ATM'nin ismi veya bankanın ismi gibi özellikler tanımlandı.
- Giriş kontrolü isimli bir metot oluşturuldu, bu metot şifrenin doğru girip girmediğini kontrol edecekti.
- 17:14Giriş Kontrolü Metodu
- Giriş kontrolü metodu, kişinin şifresini üç defa hakkı var olarak kontrol edecek.
- Doğru şifre girilirse program çalışacak, yanlış girilirse hakkı azalacak ve hakkı kalmadığında program kapanacak.
- Şifre kontrolü için if yapısı kullanıldı: Eğer kişinin girdiği şifre takılan karttaki kart şifresine eşitse program çalışacak.
- 20:46Hatalı Şifre Durumu
- Şifre eşleşmezse ve kişinin hakkı sıfırdan farklıysa, "Hatalı şifre girdiniz, kalan hakkınız" mesajı ekrana yazılacak.
- Her yanlış girişte kişinin hakkı bir azalacak.
- Eğer kişi üç kez hatalı şifre girerse, "Şifrenizi üç defa hatalı girdiğinizden dolayı kartınız bloke olmuştur" mesajı ekrana yazılacak.
- 22:21ATM Sistemi İçin Giriş Kontrolü
- ATM sisteminde giriş kontrolü için bir metod oluşturuldu ve bu metodun görevi, ATM'nin adını gösterip giriş kontrolü yapması olarak tanımlandı.
- Giriş kontrolü metodu, ilerleyen süreçlerde tekrar kullanılacak bir yapı olarak tasarlandı.
- ATM'nin çalışması için ilk olarak bankanın adı gösterilir, ardından giriş kontrolü ve döngü işlemi devreye girer.
- 23:51ATM Sistemindeki Özelliklerin Tanımlanması
- ATM'de yapılacak her işlem için ayrı metotlar tanımlanacak, öncelikle "program" isimli bir metod oluşturuldu.
- ATM'nin menüsü için "menü" isimli bir yapı oluşturuldu ve menüde bakiye sorgulama, kredi kartı borcu, para çekme, para yatırma ve kart iade gibi özellikler tanımlandı.
- Her bir özellik için ayrı metotlar oluşturuldu (bakiye, kredi kartı borç, para çekme, para yatırma) ve menüye geri dönme seçeneği için de bir özellik tanımlandı.
- 27:55ATM Sisteminin Sürekli Çalışması İçin Döngü
- ATM yapısının sürekli çalışır halde bulunması için bir while döngüsü oluşturuldu.
- Bankanın adı "atm" sınıfının bir özelliğinden alınarak döngüye entegre edildi.
- Döngü, ATM'nin sürekli çalışmasını sağlamak için "banka" nesnesinin "program" özelliğini sürekli çalıştırıyor.
- 30:50Program Metodunun Görevi
- Program özelliğinin görevi, ATM'nin sürekli çalışmasını sağlamak ve menü yapısını çalıştırarak kullanıcıya seçenek sunmaktır.
- Kullanıcının menüden seçim yapması için "seçim" adlı bir değişken tanımlandı.
- Seçime göre if-else yapısı kullanılarak kullanıcıya sunulan seçeneklere göre ilgili metotlar çağrılıyor (bakiye sorgulama, kredi kartı borç, para çekme, para yatırma).
- 34:54ATM Program Akış Şeması
- Programın akış şeması tanımlanmış ve ATM'nin döngü yapısı kurularak sürekli aktif halde çalışması sağlanmıştır.
- Programın görevi menüden bilgi almak, menüdeki değerler program içerisindeki seçim değişkenine atanacaktır.
- Seçim değişkenine göre bakiye, kredi kartı borcu, para çekme, para yatırma veya kart iade işlemleri çalışacaktır.
- 36:42Menü Kısımlarının Tanımlanması
- Menü kısmının görevi müşteriden bilgi almak ve bu bilgiyi program isimli metodun içerisine göndermektedir.
- Menüde bakiye sorgulama (1), kredi kartı borç sorgulama (2), para çekme (3), para yatırma (4) ve kart iade (5) seçenekleri bulunmaktadır.
- Menüdeki seçim bilgisi integer yapısından alınarak program içerisindeki seçim değişkenine atanmaktadır.
- 37:43Menü Gösterimi ve Kullanıcı Bilgisi Alma
- Menüde "Merhabalar X Bank Hoş Geldiniz Sayın Ahmet" şeklinde kullanıcıya özel mesaj gösterilmektedir.
- Kullanıcıya yapmak istediği işlemi seçmesi için seçenekler listelenmektedir.
- Kullanıcıdan alınan bilgi format metoduyla bankanın ismi, takılan kartın adı ve soyadı kullanılarak oluşturulmuştur.
- 42:42Geçersiz Giriş Kontrolü
- Kullanıcının 1-5 arasında olmayan bir değer girdiğinde, "Lütfen 1 ve 5 arasında geçerli bir değer giriniz" uyarısı verilmektedir.
- Geçersiz giriş durumunda ana menüye dönülmesi için self.program() çalıştırılmaktadır.
- Menü fonksiyonu, kullanıcıdan alınan seçim değerini döndürerek işlemi tamamlamaktadır.
- 44:39Programın Genel Yapısı
- Veritabanı alanı sözlük yerine bir sınıftan yaratılmış ve ATM isimli bir sınıf oluşturulmuştur.
- ATM sınıfına bir isim atanmış ve giriş kontrolü için ayrı bir metot oluşturulmuştur.
- Program yapısı, döngü nesnesi sayesinde sürekli çalışır hale gelmiş ve menü özelliği kullanıcıdan değer alarak seçim değişkenine atanmaktadır.
- 46:52Bakiye Gösterme Fonksiyonu
- Kullanıcı 1'e bastığında bakiye isimli metot çağrılır ve hesap bakiyesinin görüntülenmesi sağlanır.
- Bakiye fonksiyonunda "Hesap bakiyeniz: [takılan kartın hesap bakiyesi] TL" şeklinde mesaj gösterilir.
- 47:45Döngüyü Durdurma ve Menüye Dönme
- Bakiye işlemi gerçekleştirildiğinde döngünün bitirilmesi gerekiyor, aksi takdirde kullanıcı bilgi almadan hemen menüye döner.
- Döngüyü bitirmek için "self.dongu = False" ifadesi kullanılıyor ve kullanıcıya ne yapmak istediğini soruluyor.
- Menüye dönme özelliği, kullanıcıya ana menüye dönmek için 7, kart iade için 5 basmasını isteyen bir seçenek sunuyor.
- 51:14Ana Menü Seçenekleri
- Kullanıcı bakiye seçeneğini seçerse (1), bakiye özelliği çalışır, bakiye bilgisi gösterilir ve döngü durdurulur.
- Kredi kartı borcu seçeneği (2) seçildiğinde, kredi kartı borcu ve son ödeme tarihi bilgisi gösterilir.
- Para çekme seçeneği (3) seçildiğinde, kullanıcıdan çekilecek tutar istenir ve hesap bakiyesinden çıkarılır.
- 55:21Para Çekme ve Yatırma İşlemleri
- Para çekme işlemi sırasında, çekilecek tutar hesap bakiyesinden büyükse "yetersiz bakiye" mesajı verilir ve menüye dönülür.
- Para yatırma seçeneği (4) seçildiğinde, kullanıcıdan yatırılacak tutar istenir ve hesap bakiyesine eklenir.
- Çıkış seçeneği (5) seçildiğinde, teşekkür mesajı gösterilir ve program sonlandırılır.
- 1:00:33Sınıf Yapısının Avantajları
- Kodun okunabilirliği daha iyi olur çünkü sınıf yapısı kullanılmıştır.
- Menüye dönme gibi işlemleri bir kez tanımlayıp her yerde çağırabiliriz, böylece kod tekrarı engellenir.
- Bu yöntem, kodun daha az satırlık olması değil, okunabilirliği ve işlevlerin kolayca çağrılabilmesi açısından avantaj sağlar.
- 1:02:02ATM Programı Sınıf Yapısı
- Programda veritabanı sınıf tipinde oluşturulmuş ve hazır veritabanı olmadığı için iki örnek veri oluşturulmuştur.
- ATM sınıfı oluşturulmuş ve girişi kontrol etme, menü gösterme, bakiye sorgulama, kredi kartı borcu sorgulama, para çekme, para yatırma ve çıkış gibi özellikler metot olarak tanımlanmıştır.
- Ana sınıfla çalışma mantığı, her görevi ayrı bir metot olarak tanımlayıp her metotun altına yapması gereken görevi yazmaktır.
- 1:04:14Programın Çalıştırılması ve Test Edilmesi
- Program çalıştırıldığında öncelikle giriş kontrol mekanizması devreye girer ve şifre kontrolü yapılır.
- Şifre üç kez hatalı girildiğinde kart bloke olur ve program sonlanır.
- Doğru şifre girildiğinde ana menü görüntülenir ve kullanıcı işlem seçimi yapabilir.
- 1:05:45Menü İşlemleri
- Ana menüde bakiye sorgulama, kredi kartı borç sorgulama, para çekme, para yatırma ve çıkış seçenekleri bulunmaktadır.
- Geçersiz bir değer girildiğinde "Lütfen bir ve beş arasında geçerli bir değer giriniz" uyarısı verilir ve ana menüye dönülür.
- Bakiye sorgulama ve kredi kartı borç sorgulama işlemlerinde kullanıcıya ilgili bilgiler gösterilir.
- 1:10:12Para Çekme ve Para Yatırma Hataları
- Para çekme işlemi sırasında çekilecek tutar hesap bakiyesinden fazla girildiğinde hata vermektedir.
- Para yatırma işlemi de benzer şekilde hata vermektedir.
- Hataların nedeni, para çekme ve para yatırma fonksiyonlarındaki kod hatası olabilir.
- 1:15:06ATM Uygulamasında Hata Ayıklama
- Para çekme işlemi için miktar, hesap bakiyesinden büyükse hata mesajı verilip menüye dönülüyor.
- Hata mesajı "sportif frame type for table and int" şeklinde veriliyor ve hesap bakiyesi ile miktar arasında matematiksel işlem yapmaya çalışıldığı belirtiliyor.
- Hata, kart bilgilerinde hesap bakiyesi alanına yanlışlıkla eklenen virgül nedeniyle oluşuyor.
- 1:16:49Hata Düzeltilmesi ve Uygulamanın Test Edilmesi
- Virgül kaldırıldıktan sonra problem çözülüyor ve uygulama düzgün çalışıyor.
- CMD üzerinden ATM uygulaması çalıştırılarak para çekme ve para yatırma işlemlerinin düzgün çalıştığı test ediliyor.
- Para çekme işlemi yetersiz bakiye hatası veriyor, para yatırma işlemi ise başarıyla gerçekleşiyor ve hesap bakiyesi güncelleniyor.
- 1:19:09Sınıfların Kullanımı ve Sonuç
- Önceki ATM uygulamasından farklı olarak bu örnekte sınıflar kullanılarak daha organize bir yapı oluşturulmuş.
- Sınıfların ana mantığı, tanımlanan özelliklere (metotlara) bir kez tanımlandıktan sonra gerektiğinde çağrılabilmesi.
- Bu sınıf yapısı sadece ATM için değil, muhasebe otomasyonu gibi başka sistemler için de kullanılabilir.