İnternet Tabanlı Programlama Dersi 7. Ünite Sorularla Öğrenelim

Python Ve Django

1. Soru

Python programlama dilinde örnek bir “Merhaba
Dünya” çıktısı veren program yazınız.

Cevap

Python dilinin söz diziliminin basit yapısını
karşılaştırabilmek için aynı örneği JAVA ve C++
programlama dili ile altı yedi satırda kodlarken Python ile
bunu tek satırda kodlamak mümkündür.
print(“...Merhaba Dünya...”)


2. Soru

Python programlama dilinde değişken ve metot ismi
olarak kullanılamayan sözcükler nelerdir?

Cevap

Python programlama dili yaklaşık 30 adet saklı
sözcük barındırmaktadır. Bu sözcükler değişken ve metot
ismi olarak kullanılamaz. Saklı sözcükler şunlardır: and,
as, assert, break, class, continue, def, del, elif, else, except,
False, finally, for, from, global, if, import, in, is, lambda,
None, nonlocal, not, or, pass, raise, return, True, try,
while, with, yield.


3. Soru

Python programlama dilinde bulunan hazır
fonksiyonlara örnek veriniz.

Cevap

Tüm dillerde ilk öğrenilen fonksiyonlardan olan
print fonksiyonu, istediğimiz verinin ekrana basılmasını
sağlamaktadır. Print fonksiyonu ile yazdıracağımız string
katarları tek tırnak (‘), çift tırnak (“) veya üç tane çift
tırnak kullanılarak yazdırılabilir. Üç çift tırnak gösterimi
genelde ekrana basmak istediğimiz karakter katarı
içerisinde “ karakteri bulunduğu zaman ve yazdırılacak
veri birden fazla satırdan oluşuyorsa tercih edilir. Print
fonksiyonu birden fazla parametre alabilmektedir. İstersek
“sep” değerini kullanarak boşluk yerine istediğimiz
karakterin parametreler arasına yazılmasını sağlayabiliriz.
Print fonksiyonu içerisinde bir alt satıra geçmek amacı ile
\n, bir tab (sekme) boşluk bırakmak için \t, aynı satırda
satır başı yapmak için \r karakterleri kullanılabilir. Print
fonksiyonunda kullanılabilecek yararlı bir işlev ise *
karakteri ile sağlanmaktadır. * parametresine sahip string
tipindeki paramatre harf harf yazılır ve aralarına
varsayılan olarak boşluk karakteri konulur. Varsayılan
karakteri değiştirmek için ise yine sep ifadesini
kullanabiliriz.
input() fonksiyonu konsol ekranında kullanıcıdan veri
almak için kullandığımız fonksiyondur. Bu fonksiyon
sayesinde kullanıcıdan gelen veriyi istediğimiz bir
değişkene atabiliriz. Burada dikkat etmemiz gereken
nokta, kullanıcıdan alınan bilginin (kullanıcı sayısal bir
bilgi girse bile) string tipinde olduğudur. Eğer
kullanıcıdan gelen bilgi ile sayısal işlem yapacaksak
muhakkak veriyi dönüştürmemiz gereklidir.
Dönüştürücü fonksiyonlar verinin tipini değiştiren
fonksiyonlar olarak tanımlanmaktadır. Özellikle
kullanıcıdan alınan verilerle matematiksel işlemler
gerçekleştirilecekse muhakkak dönüştürülmesi gerekir.
Örneğin int(x), list(x) ve str(x) alınan bir x değerini
sırasıyla integer, list ve string türlerine dönüştürür.


4. Soru

Python programlama dilinde değişkenler nasıl
tanımlanır?

Cevap

Programlama dilinde değişkeni, bir veriyi
içerisinde depolayan birim olarak tanımlayabiliriz.
Değişkeni genel anlamı ile boş bir kutuya benzetebiliriz.
Kutu, içerisine koyduğumuz veriyi bizim için saklar ve
üzerinde işlem yapmamıza izin verir. Birçok programlama
dilinde verinin saklanacağı değişken tipinin önceden
tanımlanması gerekmektedir. Fakat Python’da tıpkı PHP
de olduğu gibi veri tipleri önceden belirlenmez, değişkene
yapılan ilk atama esnasında atanan veri tipine göre
belirlenir. Bu programcı için büyük bir özgürlük sağlar.
Fakat bu durum değişken değerlerinin izlenmesini
zorlaştırır.
>>>tamsayı=10
>>>ad=”Ali”
>>>ondalik=7.2
Değişken isimlerini verirken daha önce de bahsettiğimiz
saklı kelimeleri ve kütüphanelerde yer alan fonksiyon
isimlerini kullanamayız. Bunun dışında da bazı kurallar
bulunmaktadır. Bu kurallardan bazıları programlama
ortamları tarafından bize dikte edilirken, bazıları da genel
tavsiye niteliğindedir. Değişken isimleri bir harf veya “_”
ile başlamalıdır. Python da değişkenler isimleri Türkçe
karakter içerebilir, ama şu an itibari ile bundan kaçınmakta
yarar vardır. Değişken isimlerinde boşluk kullanılmaz.
Değişken adı birden fazla kelimeden oluşuyorsa kelime
geçişlerinde büyük harf veya _ kullanılabilir. Örneğin
degisken_adi veya degiskenAdi gibi. Değişken isimlerini
seçerken anlaşılabilir yorumlanabilir isimler seçmekte
yarar bulunmaktadır. Değişken ataması “=” işareti ile
yapılmaktadır. Aynı değere sahip birden fazla değişken
aynı satırda tanımlanabilir. Python’ da programlamada çok
kullanılan değişken takas işlemi için kısa yapılar
tanımlanmıştır.
>>>a=5
>>>b=8
>>>a, b=b, a


5. Soru

Python programlama dilinde paket yapısını
açıklayınız.

Cevap

Paket, bir dizin yapısı içerisinde bir araya
getirilmiş birbiri ile ilgili modüllerden oluşan yapıya
verilen isimdir. Python’u tam anlamı ile etkili
kullanabilmek ve hızlı kod üretebilmek için modüllerden
amacımıza uygun olanları bilmek çok önemlidir. Örneğin
amacımız bir web sayfası yapmak ise “Django”, bir
masaüstü uygulaması geliştirmek ise “tkinter” veya bir
android veya iOS için program yazmak ise ise “kivy”
paketlerini iyi bilmemiz gerekmektedir.
Bir paketin kodumuza dahil edilmesi modül dahil etme ile
aynıdır. Kodumuza bir paket içerisindeki tek bir modülü
eklemek istediğimizde ise “import paketAdi.modülAdi”
veya “from paketAdi import modülAdi” komutu
kullanılmalıdır. Bir pakette yer alan bir modülün belli
fonksiyonlarını eklemek istiyorsak ise “from
paketAdi.modülAdi import fonksiyonListesi” satırı
kullanılmalıdır.


6. Soru

Python programlama dilinde sınıf ve nesne
tanımlamaları nasıl yapılmaktadır?

Cevap

Her programlama dilinde sınıf ve nesne
tanımlamaları farklı şekillerde yapılmaktadır. Python’da
ise içi boş bir sınıf şu şekilde tanımlanabilir.
class DortIslem:
pass
yeniİslem=dortIslem()
Görüldüğü gibi sınıf tanımlaması için “class” ifadesini
kullandık. Sınıf tanımlama gövdesinde ise sadece pass
yazdık. Bu şimdilik “DortIslem” sınıfı hakkında daha
fazla bilgi vermeyeceğimiz anlamını taşımaktadır. Sınıf
tanımlamasının ilk satırı “class DortIslem():” şeklinde
parantez kullanılarak da yazılabilir. Şimdi “DortIslem”
sınıfını biraz geliştirelim ve değişken tanımlamalarını
yapalım. Birçok dilin aksine python, sınıftan türetilecek
nesnelerin değişken tanımlarını “__init__” isimli bir metot
içerisinde gerçekleştirir.
class DortIslem:
def __init__(self):
self.sayi1=15
self.sayi2=25
ilkIslem=DortIslem()
print(ilkIslem.sayi1, ilkIslem.sayi2)
Örnekten de görüldüğü üzere nesne değişkeni olarak sayi1
ve sayi2 değişkenlerinin tanımı __ init__ metodu
içerisinde gerçekleştirilmiştir. Yani,
“ilkIslem=DortIslem()” satırında ilkIslem nesnesi
türetilirken ilk olarak __init__ metodu çalışmakta ve o
nesne için sayi1 ve sayi2 değişkenleri tanımlanarak ilk
atamaları yapılmaktadır. Bu tanımlamada dikkati çeken ilk
nokta “self” kelimesidir. Bu kelime esasen o an için
değişken tanımlaması yapılacak nesneyi temsil etmektedir.
Yani, metot içerisinde tanımlayacağımız her türlü
değişken sınıftan türetilecek nesneler için ayrı ayrı
tutulacaktır. “self” kelimesi yerine istenen herhangi kelime
kullanılabilir. Tek koşuk __init__ metodunun ilk
parametresi olmaktır. Genel olarak kodlarda self kelimesi
tercih edilmektedir.


7. Soru

Django ile örnek bir web proje oluştururarak
adımlarını anlatınız.

Cevap

Django ile proje oluşturmak için aşağıdaki
işlemlerin dos kabuğunda sırayla uygulanması gerekir.
C:\Django>mkdir projeler
C:\Django>cd projeler
C:\Django\projeler>django-admin startproject ilkSite
Bu işlemden sonra proje klasörünün içerisine bazı klasör
ve dosyalar otomatik olarak oluşturulacaktır. Django’nun
çalışma mantığını anlamak için “Merhaba Dünya” gibi bir
örnekle başlayalım. Django’da herhangi bir sayfanın
görüntülenebilmesi için görünümün hazırlanıp, görünüme
ulaşılacak adresle bağlama işleminin yapılması gereklidir.
İlk önce görünümü hazırlayalım. Bunun için bir python
dosyası oluşturmamız gerekiyor. Dosyanın isminin ne
olduğu çok önemli olmasa da genel olarak views.py ismi
kullanılmaktadır.
from django.http import *
def hello(request):
text=””
for i in range(10):
text+=”<b>Merhaba</b> <br>”
return HttpResponse(text)
Görüldüğü üzere ilk önce django.http paketi kodumuza
dahil edilmiş ardından da “hello” fonksiyonu
tanımlanmıştır. “hello” fonksiyonu içerisinde
“HttpResponse” fonksiyonu kullanılmıştır. Bu fonksiyon
parametre olarak verilen metin ile web sayfasını oluşturur.
“views.py” dosyası projenin kök dizinine atılabilir.
Sayfanın görüntülenebilmesi için dosyanın proje ile url
bağlantısını kurmamız gerekmektedir. Bu işlem için
“urls.py” dosyası düzenlenmelidir. ”urls.py” proje ile
bağlantı kurulacak sayfaların tanımlamaları yapılmaktadır.
Görüldüğü üzere dosyanın önceki halinde varsayılan
olarak bir url tanımlaması bulunmaktadır. Bu tanımlama
django’nun projemiz için otomatik oluşturduğu “admin”
sayfasıdır. “Url” tanımlaması yapılırken öncelikle adres
çubuğunda sayfanın çağrılacağı isim, ardından ise sayfa
çağrıldığında çalıştırılacak olan fonksiyon belirtilmiştir.
“views.py” dosyasını projeye bağlamak amacı ile “
url(r’^selam/’, views.hello)” kodu kullanılmıştır. Burada
“selam” çağrılma kelimesi olarak seçilmiş selam
çağrıldığında çalışacak fonksiyon “views.selam_ver”
olarak belirlenmiştir. Tabiki “urls.py” dosyasına “import
views” satırının eklenmesi unutulmamalıdır. Bu
düzenlemeden sonra 10 tane “Merhaba” yazdırılan bir web
sayfamız olacaktır.


8. Soru

Tkinter paketi nasıl kullanılır?

Cevap

Tkinter paketini kullanmak için öncelikle
dosyamız içerisine paketi eklememiz gerekmektedir.
Bunun için “import tkinter” kodunu kullanmaktayız.
İstenirse “as” ifadesi ile tkinter paketine bir takma isim de
verilebilir. Bu komutun ardından Tk() metodu ile bir
pencere tanımlanır. Ardından ise geometry metodu
kullanılarak pencerenin ebatları ve konumunu, title
metodu ile pencerenin başlığı ayarlanabilir. geometry
metodunda parametre olarak girilen “300x300” pencerenin
ebatını verirken, parametrenin “100+100” kısmı ise x ve y
ekseninde konumunu vermektedir. En son ise “ekran.
mainloop()” komutu ile pencere görünür hale getirilir.
Eğer pencerenin simgesini değiştirmek istiyorsak,
“ekran.wm_iconbitmap(ikon dosyasının yolu)” metodunu
kullanabiliriz. Varsayılan olarak oluşturduğumuz pencere
kullanıcı tarafından boyutlandırılabilir. Eğer biz
penceremizin boyutlandırılmasını istemiyorsak,
“ekran.resizable(False, False)” metodunu kullanabiliriz.
Metottaki ilk parametre enine ikinci parametre boyuna
boyutlandırmayı kontrol etmektedir. Yani metodu
“ekran.resizable(True, False)” şeklinde kullanırsak, bu
oluşturulan ekranın enine boyutlandırabildiğini fakat
boyuna boyutlandırılamadığını gösterir. Tkinter paketinde
yer alan minsize() ve maxsize() metotları ise pencere
maksimum ve minimum ebatlarını belirlememizi
sağlamaktadır. Tkinter kütüphanesi, pencere içerisinde
kullanabileceğimiz birçok nesneye sahiptir: label, button,
entry, checkbutton, listbox, menu, scrollbar vb.


9. Soru

Python dilinin avantajları nelerdir?

Cevap

  • Açık kaynak kodlu ve ücretsiz bir dil olması,
  • Yorumlanan ve dinamik bir dil olması,
  • Etkileşimli bir dil olması
  • Söz diziminin sade ve okunabilirliğinin kolay olması,
  • Modüler bir yapıya sahip olması,
  • Hızlı bir şekilde öğrenilebilmesi, yeni başlayanlar için uygun olması,
  • Nesneye yönelik programlama dili olması ama bunu mecbur tutmaması,
  • Öğretici kaynaklarının oldukça fazla olması,
  • Bilimsel araştırmalarda yaygın olarak kullanılması,
  • Farklı alanlara özel çok geniş bir kütüphane, modül, paket desteğinin olması,
  • Gelişmiş bir grafik kütüphanesinin olması,
  • Farklı işletim sistemleri üzerinde çalışabilmesi (kodu bir kez yazmak yeterli)
  • Farklı dillerde yazılmış kodların entegrasyonunu desteklemesi,
  • Uluslararası saygınlığının olması,
  • Az kod yazarak çok iş yapmayı desteklemesi,
  • 3.x serisinden itibaren UTF-8 desteğinin olması


10. Soru

While döngüsündeki koşulu belirlerken döngü sonsuz döngüye girerse bu hatadan nasıl kurtulabilinir?

Cevap

While döngüsündeki koşulu belirlerken çok dikkatli olmamız gerekir. Burada yapacağımız hata programımızın sonsuz döngülere girmesine neden olabilir. Böyle bir durumda programı durdurmak için ctrl+c veya ctrl+z tuş kombinasyonları kullanılır.


11. Soru

Python hakkında bilgi veriniz.

Cevap

Python, nesne yönelimli, yorumlamalı, modüler
ve etkileşimli yüksek seviyeli bir programlama dili olarak
tanımlanmaktadır. Python dili yorumlanan bir dil olma
özelliği ile JavaScript programlama dilinin, yapısal
sağlamlığı ile de java dilinin özelliklerini birleştiren
modern, basit ve temiz söz dizimine sahip, iyi tasarlanmış
bir programlama dilidir. Bu programlama dilinin
avantajlarını şu şekilde sıralayabiliriz.
• Açık kaynak kodlu ve ücretsiz bir dil olması,
• Yorumlanan ve dinamik bir dil olması,
• Etkileşimli bir dil olması (Yorumlayıcı
penceresinde komutlar veri sonuçlarını hemen
alabilirsiniz),
• Söz diziminin sade ve okunabilirliğinin kolay
olması,
• Modüler bir yapıya sahip olması,
• Hızlı bir şekilde öğrenilebilmesi, yeni başlayanlar
için uygun olması,
• Nesneye yönelik programlama dili olması ama
bunu mecbur tutmaması,
• Öğretici kaynaklarının oldukça fazla olması,
• Bilimsel araştırmalarda yaygın olarak
kullanılması,
• Farklı alanlara özel çok geniş bir kütüphane,
modül, paket desteğinin olması,
• Gelişmiş bir grafik kütüphanesinin olması,
• Farklı işletim sistemleri üzerinde çalışabilmesi
(kodu bir kez yazmak yeterli)
• Farklı dillerde yazılmış kodların entegrasyonunu
desteklemesi,
• Uluslararası saygınlığının olması,
• Az kod yazarak çok iş yapmayı desteklemesi,
• 3.x serisinden itibaren UTF-8 desteğinin olması
(kodlama da ğ,ı,ç,ü,ö,ş,İ,Ş,Ğ,Ü,Ö,Ç gibi
karakterler kullanılabilir).
Python programlama dili ile web uygulamaları, ağ ve
soket programcılığı, veri analizi programları, makina
öğrenmesi ile ilgili programlar, doğal dil işleme üzerine
programlar, bilimsel içerikli programlar (SciPy),
veritabanı programları gibi birçok farklı program
kodlanabilir. Bunlar dışında masaüstü programcılığı ve
oyun programcılığı için de Python kullanılabilir. Fakat
Python’u bu tip programlamada kullanmak çok uygun ve
verimli olmayacaktır. Python, tıpkı Java gibi yorumlanan
bir dil olduğundan dolayı bir yorumlayıcıya ihtiyaç
duymaktadır. Python bu yapısının getirdiği avantaj nedeni
ile platform bağımsızdır.


12. Soru

Python dilinde kod bloklarını belirleme ne şekilde olmaktadır?

Cevap

Python dilinde kod bloklarını belirlemede begin/end veya süslü parantez {, } gibi ifadeler yerine girintileme kullanılmaktadır.


13. Soru

Python program denetimini açıklayınız.

Cevap

Programlama dillerinde program denetimi,
şartlara bağlı olarak program akışını düzenlememize
imkân veren, programın oluşturacağı sonuçları
değiştirmemizi sağlayan yapılar olarak tanımlanabilir.
Akış denetimi ve döngüler iyi bir programcının
derinlemesine bilgi sahibi olması gereken yapılardır.
Program akışının denetlenmesi ve kontrolü kod yazımının
en önemli parçasıdır.
Kontrol yapıları kod içerisinde, koşul kullanarak yön
değiştirme için tasarlanmış en basit yapılardır. Python’da
koşulları belirtmek için if, else, elif isimli 3 deyim
kullanılmaktadır.


14. Soru

Python programlama dilinde modül yapısını
açıklayınız.

Cevap

Modül, birtakım fonksiyonları ve nitelikleri
barındıran araçlar olarak tanımlanabilir. Modüller bizim
için tekrar tekrar kod yazmamızın önüne geçen yapılardır.
Bu noktada Python’un temel olarak parçalardan bir bütün
elde etmek için tasarlanmış bir dil olduğunu söylemek
yanlış olmaz. Aslında şu ana kadar kullandığımız hazır
fonksiyonlar ile birçok defalar Python’un hazır
kütüphanesinde bulunan modüllerden yararlandık.
Standart python kütüphane modülleri kurulumla beraber
sistemimize yüklenmiştir. Standart modüllere ek olarak
Python ile uğraşan programcılar farklı amaçlara uygun
birçok modül geliştirmişler ve yayınlamışlardır. Bunların
birçoğu açık kaynak kodludur ve kurulum
gerektirmektedir.
Bir modül içerisinde hangi fonksiyonların olduğunu
“dir()” ile öğrenebiliriz. Eğer modül içerisinden belli başlı
bazı fonksiyonları kullanacaksak, tüm modülü
yüklememize gerek olmayabilir. Bunun için, “from
modülAdi import fonksiyonListesi” ifadesi kullanılır.
Temel olarak bakıldığında yazdığımız her kod ve .py
uzantılı dosya bir modüldür ve import deyimi ile başka
kodla entegre edilebilir.


15. Soru

Python programlama dilinde fonksiyonlar nasıl
kullanılır?

Cevap

Python’da fonksiyon kullanımı iki aşamadan
oluşmaktadır: tanımlama ve çağırma. Fonksiyon
tanımlamak için “def” anahtar kelimesi kullanılır. Bu
deyimden sonra fonksiyonun adı verilir. Fonksiyon adında
değişken adı belirleme kuralları geçerlidir. Fonksiyon adı,
fonksiyon çağırılırken kullanılacaktır. Fonksiyonun adının
belirlenmesinin ardından ise parametre listesi parantez
içerisinde virgül ile ayrılarak tanımlanır. Fonksiyonlar 0
veya n adet parametre alabilirler. Fonksiyon tanım satırı
“:” karakteri ile bitirildikten sonra, bir alt satırdan itibaren
fonksiyonun işlevini tanımlayacak kod listesi yazılır.
Python’da bir fonksiyonun çağırılabilmesi için öncelikle
tanımlanması şarttır. Tanımlanan bir fonksiyon, kodun
istenen bir bölümünde fonksiyonun adı ve parametre
listesi ile çağrılabilir. Python programlama dilinde
fonksiyon tanımlarken istediğimiz parametrelere
varsayılan değer atayabiliriz. Bu sayede fonksiyon
çağrımında varsayılanı tanımlanmış parametrelere değer
girmezse işlemlerimiz varsayılan değer ile yürütülür.


16. Soru

Django nedir?

Cevap

Django, Python programlama diliyle yazılmış bir
web sayfası geliştirme çatısıdır (web framework). Çatı,
hızlı, güvenilir, modüler ve sağlam bir kodlama
yapabilmemiz için kullanılan altyapı olarak tanımlanabilir.
Django MVC (Model-ViewController) mimarisine benzer
MTV (Model-View-Template) mimarisi ile çalışmaktadır.
Genelde bir program yazılım süreci temel olarak aynı
işlemleri içermektedir. Bu nedenle aynı kodları tekrar
tekrar yazmak yerine çatının sağladığı altyapı olanakları
kullanmak sürece olumlu yönde katkı yapmaktadır.
Temel olarak django’yu, farklı dillerde hazırlanan
wordpress, joomla, openCart, nukePHP’ ye benzetmek
çok yanlış olmaz. Django, python kurulumu ile birlikte
gelmemektedir. Kurulumun işletim sistemine göre
yapılması gerekmektedir.


17. Soru

Miras (Inheritance) nedir?

Cevap

Nesne Yönelimli Programlama dillerindeki en
temel prensiplerinden biri Miras(Inheritance) kavramıdır.
Bu prensip, bir sınıfın özelliklerinin ve metotlarının başka
sını ara aktarılmasına dayanır. Bu şekilde birbirlerine
kodsal açıdan benzeyen sını arı tek tek yazmak yerine,
ortak noktaları belirlenerek temel bir sınıf (base class)
oluşturulur. Daha sonra ise temel sınıfın ortak özellikleri
üzerine yeni özellikler metotlar eklenerek türetilmiş sını ar
(derived class) oluşturulmaktadır.


18. Soru

Django ile veritabanı bağlantısı nasıl gerçekleştirilir?

Cevap

Veritabanı ayarları “settings.py” dosyasında
yapılmaktadır. “settings.py” dosyasında gerekli ayarlar
yapıldıktan sonra projemiz içerisinde veritabanı
işlemlerini yapabilmek için bir uygulama oluşturmamız
gereklidir. Bunun için konsolda şu kodu yazmamız
gereklidir: python manage.py startapp vt_yonetim. Bu
komutun işlenmesi ile proje dizinimizde vt_yonetim isimli
bir klasör oluşacaktır. Klasör admin.py, apps.py,
models.py, tests.py ve __init__.py gibi dosyalar
içermektedir. Bu dosyalardan üzerinde çalışacağımız
models.py ve views.py dosyası boş olarak gelmektedir.
Oluşturduğumuz vt_yonetim uygulamasının projemiz
tarafından tanınabilmesi için INSTALLED_APPS
değişkenine “vt_yonetim,” satırının eklenmesi gereklidir.
MTV mimarisinin temel elemanı olan model, veritabanı
yapısının python kodu olarak temsil edilen hali şeklinde
tanımlanabilir. Modeller sayesinde veritabanının
kontrolünü ve yönetimini kolaylıkla yapabiliriz. Projede
veritabanını kullanabilmemiz için düşündüğümüz
veritabanı yapısının model tanımlamasını “models.py”
dosyasına yapmamız gerekmektedir:
from django.db import models
class Ogrenci(models.Model):
ad = models.CharField(max_length=30)
soyad = models.CharField(max_length=30)
class Ders(models.Model):
ad = models.CharField(max_length=100) ogrenciler
=models.ManyToManyField(Ogrenci)
Modeli tanımladıktan sonra tablolarda hata kontrolü için
python manage.py check komutu kullanılmaktadır. Eğer
bir hata bulunamazsa sistem “System check identified no
issues (0 silenced).” yanıtı verecektir. Ardından, python
manage.py makemigrations vt_yonetim komutu ile
django’ya veritabanındaki değişiklik olduğu bilgisi
verilmelidir.


19. Soru

Python kim tarafından ve kaç yılında duyurulmuştur?

Cevap

Guido Van Rossum, 1991


20. Soru

Programlama dillerinde program denetimi ne demektir?

Cevap

Programlama dillerinde program denetimi, şartlara bağlı olarak program akışını düzenlememize imkân veren, programın oluşturacağı sonuçları değiştirmemizi sağlayan yapılar olarak tanımlanabilir. Akış denetimi ve döngüler iyi bir programcının derinlemesine bilgi sahibi olması gereken yapılardır. Program akışının denetlenmesi ve kontrolü kod yazımının en önemli parçasıdır.


21. Soru

Python dilinde nesneye yönelik programlama yaparken erişim belirleyiciler nasıl gruplanır ve nasıl ifade edilirler?

Cevap

Bir sınıfın üyelerini yani değişkenlerini ve metotlarını, erişim durumlarına göre ikiye ayırmak mümkündür: public (genel erişime açık), private (genel erişime kapalı). Erişime açık olma (public), eğer bir sınıfın üyesine direk olarak dışarıdan erişebiliyorsa buna “public” denmektedir. Erişime kapalı olma (private), bir sınıfın üyelerine direk olarak ulaşılamama durumunu belirtir. 

Bir sınıfta tanımlı private üyeler “__” iki adet alt çizgi ile başlamaktadır. Public ve private erişim belirleyicilerin yanında semi-private üyelerde bulunmaktadır. Bu üyeler isimlerinin önüne eklenen “_” tek alt çizgi karakteri ile tanımlanırlar. Fakat bu üyelere private üyelerde olduğu gibi dışarıdan erişimi engelleyen bir mekanizma bulunmamaktadır. 


22. Soru

Python programlama dilindeki saklı sözcükler nelerdir?

Cevap

aklı sözcükler şunlardır: and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield.


23. Soru

Python programlama dilinde yorumlar hangi
karakterle yapılır?

Cevap

Bir programlama dilinde koda açıklamalar
koymak, sağlıklı bir kodlama yapabilmek açısından çok
önemlidir. Her programlama dilinde olduğu gibi
Python’da da yorum satırları oluşturabilmek için bazı özel
karakterler bulunmaktadır. Eğer yapacağımız yorum tek
satırdan oluşuyorsa # işaretini kullanabiliriz.
# bu bir yorum satırıdır.


24. Soru

range() fonksiyonunun kullanımını açıklayınız.

Cevap

Range([başlangıç değeri],sonuç değeri,[artım
değeri]) şeklinde gösterilmektedir. Yani toplamda 3
parametre almaktadır. İlk parametre aralığın başlangıç
değerini, ikinci parametre sonlanma değerini, üçüncü
parametre ise artış değerini belirtmektedir. Fonksiyon eğer
sadece tek parametre kullanılarak çağrılısa başlangıç
değeri 0, artış değeri ise 1 olarak kullanılır.


25. Soru

Python dili nasıl özellikleri olan bir programlama dilidir?

Cevap

Python, nesne yönelimli, yorumlamalı, modüler ve etkileşimli yüksek seviyeli bir programlama dili olarak tanımlanmaktadır. Python dili yorumlanan bir dil olma özelliği ile JavaScript programlama dilinin, yapısal sağlamlığı ile de java dilinin özelliklerini birleştiren modern, basit ve temiz söz dizimine sahip, iyi tasarlanmış bir programlama dilidir.


26. Soru

Python programlama dilinde fonksiyon nasıl tanımlanır?

Cevap

Fonksiyon tanımlanan anahtar kelimesi “def”’dir. Bu deyimden sonra fonksiyonun adı verilir. Fonksiyon adında değişken adı belirleme kuralları geçerlidir. Fonksiyon adı, fonksiyon çağırılırken kullanılacaktır. Fonksiyonun adının belirlenmesinin ardından ise parametre listesi parantez içerisinde virgül ile ayrılarak tanımlanır. Daha öncede belirtildiği üzere fonksiyonlar 0 veya n adet parametre alabilirler. Fonksiyon tanım satırı “:” karakteri ile bitirildikten sonra, bir alt satırdan itibaren fonksiyonun işlevini tanımlayacak kod listesi yazılır.


27. Soru

Form nedir?

Cevap

Formlar, kullanıcıdan veri alabilmek için
tasarlanmış html nesneleridir. Formlarda kullanıcı
tarafından girilen veriler istenilen sayfaya POST veya
GET metodu kullanılarak gönderilirler. GET metodunda
gönderilecek veri(ler)nin değişken adı ve içeriği adres
çubuğunda görülürken, POST metodunda
gösterilmemektedir. Buna ek olarak GET metodu ile
göndereceğimiz veri 2KB’tan fazla olamazken POST
metodunda böyle bir sınır bulunmamaktadır. Dilerseniz
Django ile form ve POST metodunun kullanımını bir
örnek üzerinden açıklayalım. İsterseniz örnekte POST
ifadesi gördüğünüz yerleri GET ile değiştirerek örneği
GET metodu ile çalışabilecek bir hale getirebilirsiniz.


28. Soru

Python programlama dilindeki ‘List’ veri tipi özellikleri nelerdir?

Cevap

Ardışık verilerin tutulduğu listeler olarak tanımlanabilir. Esasen diğer dillerdeki dizi değişkenlerin python’daki karşılığıdır. Liste elemanları köşeli parantez kullanılarak aralarında virgül ile tanımlanır. Liste elemanına ulaşmak için indis (anahtar) kullanılmaktadır.


29. Soru

Python, sınıftan türetilecek nesnelerin değişken tanımlarını hangi metot içerisinde gerçekleştirir?

Cevap

“__init__” isimli bir metot


30. Soru

Python ile kullanılan veri tipleri nelerdir?

Cevap

Python ile kullanılan veri tipleri, integer, float, long integer, boolean, complex, string, list, dictionary ve tuples olarak sıralanabilir. Ayrıca python’da fonksiyonlar, lambdalar, nesneler, dosya tanıtıcıları gibi topluluklar da veri tipi olarak kabul edilirler.


31. Soru

Python programlama dili ile ne çeşit programlar kodlanabilir?

Cevap

Python programlama dili ile web uygulamaları, ağ ve soket programcılığı, veri analizi programları, makina öğrenmesi ile ilgili programlar, doğal dil işleme üzerine programlar, bilimsel içerikli programlar (SciPy), veritabanı programları gibi birçok farklı program kodlanabilir.


32. Soru

Python’ da fonksiyon tanımı nasıl yapılmaktadır?

Cevap

Fonksiyonlar def anahtar derimini takiben fonksiyonAdı(parametre/ler) şeklinde tanımlanırlar.

Örneğin:

def fuc(parametre1, parametre2) iki parametre alan "func" adında bir fonksiyondur. 


33. Soru

>>>s1=input(‘ilk sayıyı giriniz’)

>>>s2=input(‘ikinci sayıyı giriniz’)

>>>print(s1,”+”, s2,” = “, s1+s2)

Yukarıdaki ifadede eğer 76 ve 4 rakamları kullanıcı tarafından girilmiş ise print fonksiyonu ekrana ne basacaktır.

Cevap

764


34. Soru

Yazdığımız bir kodu herhangi bir koda eklemek istiyorsak kodumuzun uygun yere taşınması gerekmektedir. Sistemdeki mevcut kütüphanelerin bulunduğu klasör bu kodun bulunması gereken bir yerdir. Python'da mevcut kütüphanelerin sistemimizdeki yerini hangi ifade ile bulabiliririz.

Cevap

sysconfig.get_python_lib()


35. Soru

Tkinter’da Geometri Yönetimi nasıl yapılmaktadır?

Cevap

Tkinter’da nesnelerimizi bir pencere içerisine veya başka bir nesne içerisine yerleştirirken kullanabileceğimiz 3 farklı yaklaşım bulunmaktadır: pack, grid ve place.

  • Pack kullanarak, nesnelerimizi alt alta (varsayılan) veya yan yana yerleştirmek mümkündür.
  • Grid, pencere alanımızı bir tablo (table) gibi kullanmamızı sağlar. Bu sayede nesneleri daha düzenli bir şekilde yerleştirebiliriz.
  • Place, nesneleri pencere üzerinde istediğimiz konuma yerleştirmemizi sağlar. Kullanımı basit olmasına rağmen çok tercih edilmemektedir. Bunun nedeni yapılan tasarımın farklı çözünürlüğe sahip bilgisayarlarda sorun yaratabilmesidir.

36. Soru

Python programlama dilindeki ‘None Nesnesi’ nedir?

Cevap

Var olmayan değerleri ifade etmekte kullanılır. Diğer dillerde yer alan “null ve nil” ifadelerinin pythondaki karşılığıdır.


37. Soru

Python’da koşulları belirtmek için hangi deyimler kullanılmaktadır?

Cevap

Python’da koşulları belirtmek için if, else, elif isimli 3 deyim kullanılmaktadır.


38. Soru

Tkinter nedir?

Cevap

Tkinter, python ile beraber gelen masaüstü
programlarda kullanılan kullanıcı arayüzlerini
oluşturmamıza imkân veren bir pakettir. Daha önce de
bahsedildiği gibi farklı paketler ile de grafik arayüzüne
sahip programlar yazabiliriz. Bu paketlerin en bilinenleri
PyQti PyGI, PyGtk, Kivy gibi paketlerdir. Tkinterin
avantajı, paketlerinin kurulu gelmesi, sağlam, kararlı ve
oturmuş bir arayüz paketi olmasıdır.


39. Soru

Django'da şablon kullanımı nasıl yapılmaktadır?

Cevap

Django’da şablon kullanmak için üç temel komut bulunmaktadır: template.Template, template.Context ve render.

from django import

template sablon = template.Template(“Öğrenci İsmi: {{isim}}”)

c = template.Context({“isim”:”Ali”})

print (sablon.render(c))

Şablonları kullanabilmek için öncelikle template modülünün eklenmesi gerekmektedir. Ardından template.Template ile tasarım kodları tanımlanmıştır. Bu kodların içerisinde “{{isim}}” ifadesi bu kısmın değişeceğini belirtmektedir.


Bahar Dönemi Dönem Sonu Sınavı
25 Mayıs 2024 Cumartesi