Ay: Şubat 2020

Python Switch Case benzeri Yapı Kurmak

Dictionary ile Switch benzeri bir yapı kurmak oldukça kolaydır:

switcher = {
'bir': 1,
'iki': 2,
'uc': 3,
'dort':4,
}
switch_result=switcher.get("iki")
# Tam Tersini yapacak olursak
switcher_rev = {
1:"bir",
2: "iki",
3: "üç",
4:"dört",
}
switch_rev_result=switcher_rev.get(3) #yine çalışmakta.
#Birden çok veri yapısı ile kullanırsak
switcher_2 = {
1:"bir",
2: "iki",
3: "üç",
4:"dört",
'5':"beş",
'6':"alti",
'7':"yedi"
}
switch_result=switcher_2.get('5')
print(switch_result)
#fonksiyon da çağırabiliriz.
def some_calculation1(number):
return number*number+2
def some_calculation2(number):
return number*number+3
switcher_fonk = {
1:some_calculation1(1),
2:some_calculation2(2)
}
print(switcher_fonk.get(2))
#Biraz daha özelleştirilmiş bir şeyler yapacak olursak
switch_lambdali = {'bir': lambda x: x*120,
'iki': lambda x:some_calculation1(x),
'uc': 3,
}
print(switch_lambdali.get(5)) #600
print(switch_lambdali.get("iki")(7)) #52
#Görüldüğü şekilde istenen değere istenen işlem yaptırılabiliyor.
#Son olarak defaultu get içinde tanımlamamız gerekmektedir.
default=-999
print(switcher.get("dokuz",default))
#Dictionary"de tanımlanmayan her eleman -999 döndürecektir.
view raw switchler.py hosted with ❤ by GitHub

Bir İnsanın ilk Öğrendiği Programlama Dilinin Python Olup Olmadığını Anlama Denemesi

Evet düşünün ki size bir String’de ard arda 2 adet 1 olup olmadığının kodunu Python dilinde yazmanız istendi. Eğer Kodu bir loop ile yazarsanız kötü bir örnek vermek gerekirse:

 for i in range(0,len(str)-2,1):
         if str[i]=="1" and str[i+1]=="1":
            return True

loopu işin içine sokan kodlar yazarsanız ilk öğrendiğiniz ve onca düşünüp kod yazdığınız dil Java, C, C++ ve benzeri dillerdir.

Ama kodu şu şekilde yazıyorsanız:

return "11" in str

yazıyorsanız siz ilk olarak python veya pythona benzer biraz daha yüksek seviye dilleri öğrenmişsiniz demektir ve pythonca veya hangi dili öğrenmişseniz o dil ile düşünmektesiniz.

Birtakım firmalar belli yaş üzerindeki insanları belki de bu yüzden çalıştırmıyorlar. Onların uygulayış ve anlayış biçimlerinin yeni paradigmalarla çatıştığı ve belli yerlerde anlam karmaşasına yol açtığı için. Bence yaptık yanlış.

İnsanın ilk öğrendiği dil ve programlama dili geriye kalan bütün hayatında iletişimleri ve bilgisayar ile iletişimleri etkiliyor galiba ne dersiniz? Son olarak Java gibi Kotlin yazan Androidçilere selamlar.

Twint ile Twitter Üzerinden Veri Çekmek

Twint Twitter üzerinden Twitter abisi kullanmadan Twitter verilerini çekmemize yarayan bir tooldur. Arka Kapı Dergi’de okudum ve gerçekten çok iyi bir şekilde çalıştığını gördüm. OSINT open source intelligence için geliştirilmiş ve gerçekten de bu iş için biçilmiş kaftan.Sadece açık (public) hesaplardaki bilgileri alabiliyor yani kilitli ve silinmiş hesaplar ile herhangi bir şey yapamıyor. Öncelikle Twintin nasıl yükleneceğini gelelim:

pip install twint

setup.py’ını okuduğumuzda Python3 ile kullanılabilir olduğunu görmekteyiz.

Ardından Twinti ister komut olarak ister python paketi olarak kullanabiliriz. Ben Python üzerinden göstermeyi tercih edeceğim.

İlk olarak import etmeli ve Config elde etmeliyiz:

import twint
config=twint.Config()

Örnek olarak bir kullanıcının 2014 yılı öncesi twitlerini almak için:

config.Year=2014
config.Username="kullanicinin-adi-ismi"
twint.run.Search(config=config) #işlem yapılıyor.  

Evet çıktıyı bir yere kaydetmek önemli gibi gözüküyor. Csv formatında kaydetmek için:

config.Output = "cvsadi.csv"
config.Store_csv = True

Genelleştirirsek:

def user_tweets_with_year(username:str,year:int):
    config=twint.Config()
    config.Year=year
    config.Username=username
    config.Output = username+"_"+str(year)+".csv"
    config.Store_csv = True
    twint.run.Search(config=config)

Belli bir kelimeyi veya kavramı araştırmak için:

config.Search="aranacak kavram"

Evet Twint ile birçok şey daha yapabilirsiniz. Twint’in çalışmaya devam etmesi dileklerimle.

Selenium’da Parent Elementi Çekmek

Web Sitelesi tasarımlarında birtakım elementler üst üste binmekte içteki taklanamaz olmakta ve yine bunun gibi birtakım olaylar olmaktadır. İstediğimiz elemente tıklayamadığımızda onun parent elementine tıklamak böyle durumlarda işe yarayabilir. Parent elementi şu şekilde alabilmekteyiz:

parent=a.find_element_by_xpath("..")