Mülakatta Python ile ilgili çıkabilecek sorulara devam ediyoruz. 🙂

Python Mülakat Soruları -5-

python
..

1) Python Nesne Yönelimli bir programlama dili mi yoksa işlevsel bir programlama dili mi?

Python, Nesne Yönelimli programlama kavramlarının çoğunu kullanır. Ancak Python’da işlevsel programlama da yapabiliriz. Uzmanların görüşüne göre Python, çok paradigmalı bir programlama dilidir.
Python yardımıyla işlevsel, prosedürel, nesne yönelimli ve zorunlu programlama yapabiliriz.

2) Bir Python scriptte bir MySQL veritabanından nasıl veri alabiliriz?

Bir veri tabanından veri almak için, o veri tabanı için mevcut olan modülü kullanmalıyız. MySQL veritabanı için, Python scriptiğimizdeki MySQLdb modülünü içe aktarıyoruz.
Öncelikle belirli bir veritabanına URL, kullanıcı adı, şifre ve veritabanı adını girerek bağlanmamız gerekiyor.
Bağlantıyı kurduktan sonra, cursor() fonksiyonu ile bir imleç açabiliriz. Açık bir imleç üzerinde, sorguları yürütmek ve veritabanı tablolarından veri almak için fetch() işlevini çalıştırabiliriz.

3) Python’da bir listenin append() ve extension() işlevleri arasındaki fark nedir?

Python’da liste adı verilen yerleşik bir sıra elde ederiz. Bir listede append() ve extension() gibi standart işlevleri çağırabiliriz.
Bir listenin sonuna bir öğe eklemek için append() yöntemini çağırıyoruz.
Bir listenin sonuna başka bir liste eklemek için extend() metodunu çağırıyoruz.
Append() içinde öğeleri birer birer eklemeliyiz. Ancak, extension() içinde başka bir listeden birden çok öğe aynı anda eklenebilir.

4) Python kodunda bir hata koşulunu nasıl ele alacaksınız?

Python kodundaki hata koşullarını işlemek için istisna işlemeyi uygulayabiliriz. Başa çıkamayacağımız bir hata durumu bekliyorsak, uygun mesajla hatayı yükseltebiliriz.
Örneğin;

>>> if student_score < 0: raise ValueError(“Score can not be negative”)

Programı durdurmak istemiyorsak hata durumunu yakalayıp bir mesaj yazdırıp programımıza devam edebiliriz.
Örneğin, aşağıdaki kod parçacığında hatayı yakalıyoruz ve varsayılan age değeriyle devam ediyoruz.

#!/usr/bin/python
try:
age=18+’duration’
except:
print(“duration has to be a number”)
age=18
print(age)

5) Python’da split() ve slicing arasındaki fark nedir?

Hem split() işlevi hem de slicing bir String nesnesinde çalışır. split() işlevini kullanarak, bir String’den kelime listesini alabiliriz.

Örneğin; ‘a b c ‘.split(), [‘a’, ‘b’, ‘c’] döndürür.

Slicing, bir String’den alt string almanın bir yoludur. Başka bir String döndürür.

Örneğin. >>> ‘a b c'[2:3], b’yi döndürür.

6) Bir sınıfın başka bir sınıfın alt sınıfı olup olmadığını Python’da nasıl kontrol edeceksiniz?

Python, a sınıfının b sınıfının bir alt sınıfı olup olmadığını kontrol etmek için kullanışlı bir issubclass(a,b) yöntemi sağlar.

Örneğin;

int, uzun (long) bir alt sınıf değildir

>>> issubclass(int,long)
FAlSE

bool, int’in bir alt sınıfıdır

>> issubclass(bool,int)
TRUE

7) Python’da bir kod parçasında nasıl hata ayıklayacaksınız?

Python’da, kodda hata ayıklamak için hata ayıklayıcı pdb’yi kullanabiliriz. Hata ayıklamaya başlamak için bir Python script üstüne aşağıdaki satırları girmeliyiz.

import pdb
pdb.set_trace()

Bu satırları ekledikten sonra kodumuz debug modunda çalışmaktadır. Artık hata ayıklama için breakpoint, step through, step into vb. komutları kullanabiliriz.

8) Bir Python script profilini nasıl çıkarırsınız?

Python, Python kodunun profilini çıkarmak için kullanılabilen cProfile adlı bir profil oluşturucu sağlar.
Bunu yorumlayıcıdan olduğu kadar kodumuzdan da çağırabiliriz.
Komut dosyasını çalıştırmak için harcanan toplam sürenin yanı sıra işlev çağrılarının sayısını da verir.
Hatta standart çıktı yerine profil sonuçlarını bir dosyaya yazabiliriz.

9) Python’da ‘is’ ve ‘==’ arasındaki fark nedir?

Bir nesneyi kimliğine karşı kontrol etmek için ‘is’ kullanırız.
İki nesnenin eşitliğini kontrol etmek için ‘==’ kullanıyoruz.
Örneğin;

>> lst = [10,20, 20]
>>> lst == lst[:]
True
>>> lst is lst[:]
False

Ayrıca Veri Analizi Mülakat Soruları yazımı ve Python Mülakat Soruları  yazımı da inceleyebilirsiniz. 🙂

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir