skip to Main Content

python ile kredi kartı no kontrolü

Daha önce kredi kartı numarasının kontrolü için luhn algoritmasından bahsetmiştim. Luhn algoritmasını python ile yazacak olursak aşağıdaki şekilde yapabiliriz.

def kontrol(kartno):
toplam = 0
hanesayisi = len(kartno)
tekcift = hanesayisi & 1
for sira in range(0, hanesayisi):
hane = int(kartno[sira])
if not (( sira & 1 ) ^ tekcift ):
hane = hane * 2
if hane < 9:
hane = hane - 9
toplam = toplam + hane
# return toplam
return ( (toplam % 10) == 0 )

kartno=raw_input("Kredi kartı numarasını gir  :")
if  kontrol(kartno) :
print kartno, 'nosu geçerli'
else:
print kartno, 'nosu geçerli değil'

python ile mysql’e bağlanma

Python ile MySQL e bağlanmak için sistemizde MySQLdb kütüphanesi olmalı. Bu kütüphane ile mysql veritabanı üzerinde işlem yapmak oldukça kolaylaşıyor. Aşağıda basit mysql örneği gözükmektedir.

try:
import MySQLdb
except ImportError:
sys.exit( "MySQLdb modulu gerekli - bulunamadi" )
''' MySQLdb nin sistemde varlığını kontrol ederek bağlıyoruz'''
db_hostname="benim_sunucum"
db_database="benim_veritabanım"
db_username="benim_veritabani_kullanici_adim"
''' vertabanı tanımlamalarını yapıyoruz'''
dbcon=MySQLdb.connect(host=db_hostname,user=db_username,db=db_database )
'''veritabanına bağlantı kuruyoruz'''
cursor=dbcon.cursor()
sql = """SELECT * FROM benim_tablom"""
cursor.execute(sql)
'''sql soruusunu işletiyoruz'''
data = cursor.fetchone()
field = cursor.description
'''sql sorgusu sonucu donen verinin ilk satirini aliyoruz'''
cursor.close()
dbcon.close()
'''veritabanı bağlantısını sonlandırıyoruz'''
print data
'''veriyi yazdırıyoruz'''

Kredi kartı numara doğrulama

Gelen bir epostada kredi kartı numarası nasıl doğrulanır şeklinde bir soru vardı.

Cevap : Luhn algoritmasıdır. Bir çok kişiye bu anlamsız gelebilir. Bunu basit bir örnekle açıklamayalım

16 Haneli bir kredi kartı numaramız olsun

6 7 6 2 0 5 0 1 2 1 5 2 6 3 8 4
Kart No 6 7 6 2 0 5 0 1 2 1 5 2 6 3 8 4
adım 1 6×2 6×2 0x2 0x2 2×2 5×2 6×2 8×2
12 12 0 0 4 10 12 16
adım 2 1+2 1+2 0 0 4 1+0 1+2 1+6
3 7 3 2 0 5 0 1 4 1 1 2 3 3 7 4
adım 3 3+7+3+2+0+5+0+1+4+1+1+2+3+3+7+4
46
adım 4 mod10(46) = 6

Adım 1 : Sağ taraftan başlayarak çift haneli sayıları iki ile çarpıyoruz

Adım 2 : Adım birde bulduğumuz yeni sayının haneler toplamını buluyoruz

Adım 3 : Yeniden oluşmuş olan 16 haneli sayımızın haneler toplamını buluyoruz

Adım 4 : Adım 3 de bulunan sayının mod 10 değerini buluyoruz

Adım 4 sonucunda bulunan değer 0 ise bu sayı Luhn algoritmasını
gerçekliyordur. Yani elimizdeki kredi kartı numarası
geçerli bir kredi kartı numarasıdır diyebiliriz.

Bunun için basit bir php script ise aşağıdaki şekilde yazılabilir.

< ?php

$sayi="12231231131";

$odd = !strlen($sayi)%2;

$toplam = 0;

for($i=0;$i<strlen($sayi);++$i) {

$n=0+$sayi[$i];

$odd=!$odd;

if($odd) {

$toplam+=$n;

} else {

$x=2*$n;

$toplam+=$x>9?$x-9:$x;

}

}

if (($toplam%10)==0){  echo $sayi." için luhn algoritmasi geçerli";}

else {echo $sayi." için luhn algoritmasi geçerli değil";}

?>

Python ile Nokia S60 için adım adım uygulama geliştirme – II

Bir önceki yazıda S60 cihazımız için python ile uygulama geliştirmek için gerekli dosyaları nereden bulacığımızı ve S60 cihazımıza python yüklemeyi ve çalıştırmayı anlatmıştım.

Bu yazımızda ise işi kişisel bilgisayarımızda python ile kod yazmak için yapmamız gerekenlerden ve bunları S60 cihazımıza yükleyerek yorumlayıcı tarafından çalıştırılması üzerinde duracağız.

Öncelikle forum.nokia sitesinden S60 cihazımıza uygun python SDK ları indirelim ve bilgisayarımıza kuralım. Bununla birlikte python.org sitesinden python un en son sürümünü bilgisayarınıza indirip kurmanızı öneririm. forum.nokia sitesinden indirdiginiz SDK yi bilgisayarınıza kurdugunuz zaman içerisinde işinize yarabilecek oldukça kullanışlı kılavuzlar bulacaksınız.

Şimdi sıra python kodlarını yazacagımız bir editöre ehtiyacımız var. Ben editplus ve ultraedit tercih ediyorum ancak bu yazılımlar paralı oldugu için isterseniz notepad, wordpad v.b. bir editor kullabilir veya context.cx adresinden oldukça başarılı ve bedava bir yazılım olan context i edinebilirsiniz. Tercih sizindir.

Artık kodlama kısmıan geldik. Eğer Python hakkında hiç bir bilginiz yok ise burdan sonrasına devam etmeden önce python.org sitesinden python hakkındaki kılavuzları edinmenizi öneririm. Çünkü bundan sonrası python programlama bilgisine dayanmaktadır.

Bir klasik olarak ilk kodumuzu yazalım..

import appuifw
appuifw.app.title = u”Hello World”
appuifw.note(u”Hello World!”, ‘info’)

Python ile Nokia S60 için adım adım uygulama geliştirme – I

İlk önce python un ne olduğunu açıklamakta fayda var. Python nesne yönelimli, fonksiyonel ve yapısal programlama öğelerini de içerisinde barındıran bir programlama dilidir.
Öncelikle telefonumuzun hakkında biraz ayrıntılı bilgiye ihtiyacımız var.

http://www.forum.nokia.com/devices/ adresine giriyoruz ve bu adresten telefonumuz hakkında bilgileri ediniyoruz. Benim telefonum Nokia 6670. Telefonumu seçtigim zaman

Back To Top