Medya İşleme Adımları – 2

480p – 720p – 1080p – 1440p Nedir?

Eğer iyi bir arşivciyseniz 480-720-1080p gibi  terimlerle oldukça çok karşılaşacaksınız.

Öncelikle belirtmem lazım ki bu tabirlerin filmin kalitesi ile bir ilgisi yoktur. 720p diye bir film indirirsiniz 500Mb.’a ve berbat bir görüntü alırsınız. 480p film indirirsiniz, boyutu 2GB’tır süper bir görüntü alırsınız.

Bu noktada takip ettiğiniz RELASE grubunun önemi çok büyük.. ProDji, unseen gibi gruplar görüntü kalitesinden taviz vermeyen gruplardır. Download yaparken bu gibi grupları tercih ederseniz hüsrana uğramazsınız.

480p genellikle karşınıza 480×720 (pixel) olarak çıkabilecekken, 480×576 ve 480×640 gibi çeşitli tipleriyle de karşılaşabilirsiniz. Dikey de 480 pixel çözürlüğe sahip olması nedeniyle bu ismi almıştır. DVD5’lerin ulusal standartta ki çözünürlük değeri budur. Dikkat ediniz ulusal standart diyorum.. Siz veya başka birisinin hazırladığı RipDvd’lerden bu kaliteyi beklemeyin. Kaldı ki ileride de göreceğiz .flv’den bile DVD hazırlayabilirsiniz.

1280×720 çözünürlüğünde ki HD filmler 720p olarak anılır. Dikey de 720 pixel çözürlüğe sahip olması nedeniyle bu ismi almıştır. Saniye de 60 frame değeri ulusal standarttır. 720p’nin dikeyde çözünürlüğü 1080p’den daha iyidir. Bu yüzden ABD’de yayınlanan bir çok dizi 720p olarak yayınlanır. Detaylı görüntü gerektiren spor müsabakaları gibi görüntülerde hala 720p kullanılır.

Full-HD olarak anılan, daha ziyade Blueray disklerde kullanılan çözünürlüktür. 1080p Blueray diskler çift katman olarak kullanıldığında 40GB. veri depolayabildiğinden, bu tip videoların oynatılması için oldukça güçlü sistemler gerekir ve bunları depolamak için büyük harddisklere sahip olmanız gerekir. 16:9 ekran tipi destekler.

1440p ise henüz kullanılmıyor olmasına rağmen gelecekte karşımıza çıkacak türlerden biri. 720p’nin iki katı çözünürlük sunmayı hedefliyor. 1080p gibi 16:9 değil 4:3 ekran genişliği destekleyeceği açıklanmıştı. Özetle 720p’nin özelliklerinin aynılarını ikiye katlamak amaç. Şuana kadar 1440p olarak yayınlanan tek film The Chronicles of Narnia: The Lion, the Witch and the Wardrobe‘dir.

Medya İşleme Adımları – 1

Önsöz

Uzun zamandır bahsedeceğim ancak fırsat olmamıştı. Aklımda ki yazı dizisinin ilk bölümünü yazmak için ufak bir fırsat buldum şuan.

Yazı dizisi; arşivcileri, bilgisayar argosu tabirle “warez”cileri mutlu edecek diye umuyorum.

Yazı disi boyunca ; DVD nasıl encode-decode edilir, ripleme işlemi nasıl yapılır, flv dosyalar nasıl indirilir, nasıl joint edilir, görüntü ve ses kaybı yaşanmadan nasıl formatlar arası dönüştürme yapılır, çoklu ses dosyaları nasıl joint edilir, altyazılar nasıl senkronlanır, senkron sorunları nasıl düzeltilir, hangi relase grubunu tercih etmeliyiz, ses kaymaları nasıl engellenir, mkv dosyalara nasıl ses eklenir vb. konulara değineceğim.

Temel Kavramlar

DivX Nedir?

DivX bir görüntü sıkıştırma formatıdır. DivX aslında görüntüyü MPEG-4 (2) formatına uyumlu şekilde sıkıştırır. MPEG-4’ten farklı olarak ses içeriklerini AAC ile değil MP3 veya AC-3 ile sıkıştırır. Günümüzde MPEG-3 (10) şeklinde sürekli gelişen görüntü sıkıştırma standartları gelişmektedir. DivX ilk başlarda ücretsiz bir sıkıştırma formatı iken daha sonra ücretli hala gelmiş ve bu durum XviD’in ortaya çıkmasını sağlamıştır.

XviD Nedir?

Yukarı da bahsettiğim gibi DivX’in ücretli olmasından sonra ortaya çıkmıştır. DivX ile benzerlikler gösterir. Bugün DivX diye indirip izlediğiniz pek çok film aslında XviD ile sıkıştırılmıştır.

MPEG-1 Nedir?

Oldukça ilkel bir görüntü işleme metodudur. Eski VCD’ler tarafından kullanılır. MPEG-2 ve MPEG-4’ün çıkması ile kullanımı oldukça azalmıştır.

MP3 Nedir?

MP3 aslında MPEG-1 Audio Layer III’ün kısaltılmış halidir. Sayısal sesler içerisinde insan kulağının duyamayacağı frekansta olan ses dalgalarıda vardır. MP3 ile bu duyamayacağımız frekansta ki dalgalar silinir ve ses sıkıştırılmış olur.

MPEG-2 Nedir?

MPEG-2 MPEG grubu tarafından standartları kabul edilmiş ses ve görüntü kodlama biçimidir. ISO/IEC tarafından 13818 uluslararası standart olarak belirlenmiştir.

MPEG-2 genellikle uydu yayınları ve kablolu televizyonlar dahil canlı yayınlar için ses ve görüntü sıkıştırmasında kullanılır. Ayrıca MPEG-2 bazı değişikliklerle DVD filmlerinin kodlanmasında kullanılır.

MPEG-4 Nedir?

MPEG-4 standardı, şu anda kullanılan MPEG-2 standardına göre daha yüksek sıkıştırma olanakları ve yeni kodlama araçları sunmayı amaçlamaktadır.

MPEG-4 Görüntü standardı ise daha farklı bir yol izleyerek dikdörtgen görüntü biçimi kullanımını aşarak, nesneye yönelik görüntü işleme yöntemlerini tercih etmiştir.

Cam Nedir?

Cam ile başlayan bir medya terimi görürseniz bundan anlamanız gereken, sinema filminin kamera ile çekilmiş hali olduğudur. Çeken kameranın özellikleri ve daha sonra bilgisayarda yapılan düzenlemelere göre CamRip veya Screen (scr) filmler çeşitli formatlarda olabilir. Görüntü kaliyesi konusunda bir standart yoktur. Bu yüzden önce sample’ları indirmenizi öneririm.

TeleSyc Nedir?

Yukarıda bahsettiğim Cam ile hemen hemen aynı olan TeleSyc yine aynı şekilde sinemadan kamera ile yapılan çekimdir. Genellikle makine odasından, boş bir salonda yapılır. Görüntü kaliyesi konusunda bir standart yoktur. Bu yüzden önce sample’ları indirmenizi öneririm.

TeleCine Nedir?

Telecine, sinemada filmi izlediğiniz makaradan doğrudan kayıt yapma yöntemidir. Genellikle TC filmlere çok az rastlanır. TC filmlerin kalitesi Cam ve TeleSys filmlere göre oldukça iyidir. Ancak bu yöntem için kullanılan cihazların pahalı olması nedeniyle TC filmlere pek rastlanmaz.

SCREENER (SCR)

Filmlerin piyasaya çıkmadan önce dağıtılan reklam sürümlerinin taranması ile elde edilir. Reklam sürümleri olduğu için filmde sahne sıralaması karışık olabilir, görüntüde çeşitli reklamlar olabilir.  Reklam sürümleri de tek tip değildir. Master olarak adlandırdığımız sürümde bahsettiğimiz kısıtlamalardan bir çoğu yoktur ve master sürümlerden yapılan kayıt işlemlerinde çok daha kaliteli görüntü alınabilir.

DVD-SCREENER (DVDscr)

Aynı şekilde screener’lardan bazıları DVD’ye dönüştürülür. DVD retail’lerin içerdiği bazı ekstralar dışında genellikle geniş ekrandır(widescreen). Uyarı mesajları her zaman siyah kısımda olmayabilir; dolayısıyla bu, izleme zevkini bölebilir. Rip edenin yeteneğine bağlı olarak DVD Screener’lar çok iyi kalitede olabilir. DVD Screener’lar genellikle SVCD ya da Divx/XviD formatlarına dönüştürülür.

DVDRip

Piyasaya sürülen DVD’nin son kopyasıdır. Mümkünse bu, tekrar pre-retail(örneğin, Star Wars Episode 2) olarak piyasaya sürülür ve mükemmel kalitede olur. DVDRip’ler, SVCD ve DivX/XviD olarak yayımlanır

BRRip

Görüntü kalitesi muhteşeme yakındır. Blueray disklerden rip edilmiş görüntülerdir.

HDRip

Görüntü kalitesi muhteşeme yakındır. Blueray disklerden rip edilmiş görüntülerdir.

TvRip

Televizyon’dan kayıt edilmiş görüntülerdir. Televizyona yayını veren kaynaktan, kayıt aracına kadar çeşitli etmenlere bağlı olarak görüntü kalitesi değişebilir. Özetle mükemmel bir video’da olabilir berbatta.

DVD-R

DVD-R, en popüler DVD yazma çözümüdür (DVD-RAM,DVD+R gibi farklı seçeneklerin arasından sıyrılır). Taraf başına 4.7 gb veri taşır, çift taraflı yazılabilir DVD’elr de mevcuttur, böylece tek diskte yaklaşık 10 GB taşınabilir. SVCD ‘nin MPEG2 görüntüleri DVD-R’a yazılıp izlenmeden önce dönüştürülmelidir. DVD’den DVD-R’a kopya yapmak da mümkündür, ama bazı durumlarda extralar/diller yer sorunu yaratmamaları açısından kaldırılır.

MiniDVD

MiniDVD ile cDVD, DVD formatının standart bir CDR/CDRW üzerinde olmasıdır. Yüksek çözünürlük/bitrate değerlerinden dolayı bir MiniDVD diskine 18-21 dakikalık görüntü yazılabilir, fakat bu format sadece birkaç oynatıcı tarafından desteklenir.

MKV

Matroska Video Avi /Ogm gibi bir dosya türüdür, RealMedia formatının çok geliştirilmiş şeklidir esasen. Tek dosyada altyazı, film cover vs. çoklu seçeneklerde kodlanabilir fakat, donanım DiVX lerde desteklenmez. Pek çok sitede de tavsiye edilmez, güçlü bir donanım gerektirir.

HCP Protokolü ve URL Validation Zaafı

10 Haziran 2010 tarihinde Windows XP’leri etkileyen ciddi bir zaaf keşfedildi, bu zaaf sadece Windows XP ve Server 2003’lere etki etmekle beraber, HCP protokolünü kullanmakta. Üstelik HCP protokolünün yarattığı ilk zaafiyet de değil bu. 2003 yılında “KB825119” ismiyle yayınlanan güncelleştirme paketi de yine HCP protokolü kullanılarak, saldırgan tarafından hazırlanmış bir URL’nin kurbanın bilgisayarında çalıştırılması ve zaafın exploit edilmesiyle sağlanan uzaktan kod çalıştırabilme açığını düzeltmek için yayınlanmıştı.

Ben blogumda 12 Haziran günü “Ne Kadar Süre Tanımalıyız” başlıklı yazımda bu durumdan bahsetmiştim, 18 Haziran’da ise Milliyet Gazetesi‘de bu olay haber oldu.

Helpctr Nedir?

Helpctr.exe dosyası parametresiz kullanıldığı taktirde, Windows XP’de Windows Yardım ve Destek Merkezini başlatır.

Parametreli kullanımda sözdizimi ise şu şekildedir : helpctr [/url [URL]] [/mode [URL]] [/hidden] [/fromstarthelp]

Parametreleri inceleyecek olursak:

/url[URL] Windows Yardım ve Destek Merkezi altında görüntülemek istediğiniz yardım sayfasının URL’sini girebilirsiniz.

/mode[URL] Windows Yardım ve Destek Merkezi’nin düzen, sözdizimi ve içeriğini kontrol eden Launch_Description.dtd şeması ile çalışan bir XML tanım dosyası belirtir.

/hidden Bir arayüz göstermeksizin Windows Yardım ve Destek Merkezi’ni başlatır. Bu komut ile bir yardım konusu yine arayüz gösterilmeden yüklenebilir. Uzaktan yönetilen script çalıştırma işlemlerinde kullanılabilir (sistem yöneticileri vs.)

/fromstarthelp : Yardım ve Destek Merkezi’nin yeni bir kopyasını başlatır.

/? : Komut satırında yardım seçeneklerini görüntüler.

Uyarı : [URL] içerisinde belirteceğiniz URL’leri, süssüz çift tırnak içerisinde de belirtebilirsiniz. [“www.serhatdundar.com”] gibi.

HCP Protokolü Nedir?

HCP; Windows XP altında ki “Windows Yardım ve Destek Merkezi” için kullanılan bir protokoldür. HCP prokolünü içeren çeşitli URL’ler sayesinde Yardım ve Destek Merkezi’nin çeşitli yönetim birimlerine kısayoldan ulaşılabiliyor.

Bu URL’lerden bir kısmını örneklemek gerekirse :

Geniş çevreler tarafından kullanımının güvenli olduğu düşünülen HCP protokolü; kayıtlı komut satırı parametresi olan /fromhcp ile çağırıldığında yardım merkezi uygulamasına geçer. Bu yöntem ile yardım merkezi uygulaması, sadece bir takım yardım dökümanı ve parametrenin çalışmasına izin veren kısıtlı bir modda açılır.

Service Pack 2’de dahil edilen bu metod bize; daha güvenli bir yol olan, güvenilir online dökümanların bir listesi ile çalışma imkanı tanır. (whitelist)

Bu hata çok kötü bir durummuş gibi görünmese de, kodun ileri ki kısımlarında /fromhcp whitelist’in den kaçmak için hatalı işlemler döndürmemize olanak sağlıyor.

Doğal yollardan herhangi bir yardım dökümanına erişebildiğimizi farzedersek (MPC:: hataları ile bu dökümana erişme yolları ileri de anlatılacak), bu dökümana erişimde kullanılan, tamamen URL üzerinden kontrol edebileceğimiz bir döküman önceden tanımlı olmalı (Yazı içerisinde ki HCP Protokolü Nedir? kısmı emsal alınabilir). Peki ya daha önceden tanımlanmamış bir dökümana aynı yollardan erişmek istersek?

Standart install işlemi ile yüklenmiş dökümanlara göz attıktan sonra, bunu yapmanın tek yolunun bir XSS (Cross Site Scriptin) hatası olduğunu anlayabiliriz. Dikkatli bir incelemeden sonra böyle birşey keşfedebilirsiniz :

Bu yardım dökümanı standart windows yüklemesi sonucu bize hazır olarak geliyor ve sysinfo/commonFunc.js scriptinin içindeki GetServerName() fonksiyonunun yetersiz kaçış ve filtreleme özellikleri yüzünden bu sayfa DOM-type XSS saldırılarına maruz kalıyor. Eğer en baştan, ‘=’ (eşittir), ‘”‘ (çift tırnak) veya diğer karakterler tanımlansaydı, kaçış ve filtreleme özellikleri ile encode işlemi sonlandırılabilirdi.

Bu hatanın hala exploit edilebilir olduğu kesinleşmiş değil, <img src=zararliicerik onerror=kod> ve <script>kod</script> gibi basit hileler hiçbir işe yaramıyor. Bu gibi durumlarda browser güvenliği adımlarını dikkatlice inceleyip analiz etmek işimizi görebilir. Özetle belirtmek gerekirse; alışık olduğumuz XSS saldırı metodları işe yaramadı ve alternatif yollar aramaya koyulduk.

Bu adreste anlatılan IE’ye mahsus “defer” özelliği ile problemi çözebiliriz. Şimdi bu ufak hileyi öğrendik ve bu hile ile basitçe komut çalıştırabileceğimizi biliyoruz çünkü bu yardım dökümanı ayrıcalıklı alanda (whitelist) barınıyor.

Komut satırında, aşağıda ki şekilde bu öğrendiklerinizi test edebilirsiniz :

Şuan yaptığımız işlem bir açıktan ziyade eğlence gibi dursada, bu işlem 3.parti güvenilmeyen bir yazılım tarafından size yaptırılırsa hiçte eğlenceli olmayabilir. Belirttiğimiz işletim sistemleri üzerinde (Windows XP ve Server 2003), IE (8 ve üstü), Firefox ve Chrome ile hcp:// URL’lere erişmeye çalıştığınızda muhtemelen başarılı bir sonuç alacaksınız. Bir çok kullanıcı hcp:// protokolünün güvenli olduğunu düşünür ve hcp URL’lere tıklamaktan çekinmez.

Windows XP üzerinde çalışan tüm browser’ların bu zaaftan kaçabilmesi için bir yol var aslında. ASX HtmlView elementi içinde ki bir <iframe> nesnesi ile hcp protokolünü çağırarak sorunu çözebiliyoruz. (bknz:ASX)

Saldırı yaklaşık olarak şu şekilde görünecek :

Starthelp.html ise şu şekilde olabilir :

Bir kullanıcının .asx dosyasını okumasını sağlatmak için, javascript kullanabiliriz :

Ne Kadar Süre Tanımalıyız ?

Dün technews’te gözüme çarpan ilginç bir haber vardı. İnternette güvenlik platformlarında da oldukça tartışılan bir konu oldu şu iki gündür. Konu; güvenlik açığı bulunduğu zaman bunu internette paylaşmadan önce ilgili firma veya kuruma ne kadar zaman tanınması gerektiği :

Haberi özetlemek gerekirse :

Google Research çalışanlarından Tavis Ormandy isimli şahıs Microsoft XP ve Server 2003’te uzaktan kod çalıştırılabilmesine ilişkin bir zaaf keşfediyor.

Bu zaafı Microsoft’a resmi yollardan bildiriyor ve 4 gün boyunca bunu paylaşmıyor, buqtrack’e düşürmüyor, 4 günden sonra (doğal olarak) açığı paylaşıyor. Bu durum sonrasında Microsoft, açığı incelemeleri ve muhtemel güncelleştirmeleri yayınlamaları için sadece 4 gün tanıdığı için Tavis’e oldukça sert tepki veriyor.

(Tavis’in bulduğu zaafı buradan inceleyebilirsiniz)

“Microsoft Yardım ve Destek Merkezi” teknik sayfalarında, bu hizmetin sadece kullanıcılara güvenli dökümentasyon ve parametre sağlamak için kullanıldığını belirtiyor, oysa ki HCP protokolü kullanıldığı zaman URL’ler düzgün şekilde yorumlanamayabiliyor. HCP sayesinde çalıştırılan bir URL ile “Microsoft Yardım ve Destek Merkezi”ne erişim sağlanıyor. Burada belirtmek lazım ki bütün browserlar HCP protokolünü desteklemiyor. Bu olaydan sonra bir çoğu artık bu protokole destek vermeyi kesti. Şuan Opera ve Firefox bu protokolü tanımıyor, sorun çıkartan yine Internet Explorer..

Eğer saldırganın hedefinde ki kullanıcı; yönetici yani administrator hakları ile sisteme giriş yapmış ise, bu açık sayesinde saldırgan tüm sistemin erişimini ele alabiliyor. Microsoft yayınladığı duyuru da şöyle diyor :

“Saldırgan yeni programlar yükleyebilir, bilgilerinizi görebilir-değiştirebilir veya silebilir ve bütün kullanıcı haklarına sahip yeni bir kullanıcı hesabı oluşturabilir.”

Microsoft bu kadar büyük bir zaaf yaratacan durumu gözden kaçırdığı için kendisine kızmak yerine Google’a tepki veriyor, açığı bulan güvenlik uzmanının en az 30 gün süre tanıması gerektiğini, en acımasız güvenlik uzmanlarının bile 14 gün süre tanıdığını, 4 günün böyle bir açığı teşhis ve tamir etmek için yeterli olmayacağını belirtiyor.

Daha önce 23 Mart’ta CanSecWest’in bulduğu Safari, Firefox ve IE kullanıcılarını etkileyen ciddi bir güvenlik açığı, Firefox tarafından 10 gün içerisinde, Safari tarafından 1 ay içerisinde, Microsoft tarafından ise 3 ay içerisinde fixlenmişti.. Bu olayı da hatırlayınca acaba diyorum Microsoft kuru gürültümü yapıyor? Tavis eğer 15 gün verseydi, bir açığı 3 ayda anca fixleyebilen Microsoft bu sefer ne yapacaktı çok merak ediyorum.

Python Liste Denetimi Örneği

İstihza’da bölüm sonu sorularında gördüğüm 3.soruyu aslında çözmeyecektim, gözüme basit gibi göründü ama hiçte sandığım gibi değilmiş.

Soru zor değil aslında ancak ciddi bir mantık kurmak ve o yolu işletmek gerekiyor.

Önce tek listede verileri toplayıp daha sonra bunların tek-cift durumunu denetleyecek bir fonksiyon yazmayı denedim, daha sonra fonksiyon alacağı sonuçlara göre ekrana veri yazdıracaktı ancak sonradan bunu gereksiz olduğunu düşündüm. Programın başında boş iki liste oluşturdum, biri tek sayıları tutacaktı diğeri çift. Kullanıcıdan sadece 10 sayı girmesini istediğimiz için bu iki listenin toplam öge sayısını buldurdum ve while döngüsüyle bu şartı sağlattım.

En büyük sıkıntıyıda kodları incelediğinizde göreceğiniz 16.satırı yazmadığım için yaşadım, bu kodu while dışında işletmiştim zaten, orada işletmesem “sayi” adlı değişken tanımlanmıyor, yok işletsem içeride bir türlü listenin öge sayısı sayılmıyor. Ortalık biraz karıştı açıkcası. En sonunda 2 kez işleterek olayı çözdüm.

Kullanıcının girdiği değeri kontrol ediyoruz, liste_tek veya liste_cift isimli listelerde varmı yokmu diye, eğer varsa bu değeri listeye ekletmiyoruz. Kullanıcının girdiği değerin kalanına göre hangi listeye ekleneceği belirleniyor, eğer kalan 0’sa çiftler listesine, kalan 1’se tekler listesine.

Program ayrıca değer hatalarına karşı bir try-except bloğu da bulunduruyor, kullanıcı rakam girmesi gerekirken string girerse programın sonlanmaması açısından bu gerekli.

http://code.google.com/p/pythonkodcalismalarim/ adresinden kodları inceleyebilir veya doğrudan bu adresten indirebilirsiniz.

Şimdilik bu kadar.

Python ile Hesap Makinesi – 2

Python ile Hesap Makinesi-2

Bu konuda örneklediğim python ile hesap makinası uygulaması sorunsuz çalışmaktaydı ancak bazı kusurları da vardı..

1) Verileri güvensiz olan input() metodu ile alıyorduk, bu da kullanıcıya input içerisinde komut çalıştırma imkanı sunuyordu. Eğer program bilgisayarınızda çalışacaksa bir sorun yok.. Ancak bir sunucu üzerinde çalışacaksa ciddi sorunlar yaratabilecek bir durum..

Öncelikle input() metodları raw_input()’a dönüştürüldü, işlem kararsızlığı yaratmaması açısından her birine birde int() fonksiyonu eklendi.

2) Kullanıcı bölme işlemi sırasında bir sayıyı 0’a bölmeye kalkarsa doğal olarak bir sayı 0’a bölünemeyeceğinden program hata verip duruyordu, bu hata ihtimali temizlendi.

3) Kullanıcı int() ile integer değere çevirdiğimiz alanlara integer olmayan bir değer girer ise program hata verip duruyordu, bu hata ihtimali de temizlendi.

4) Fazladan özellik olarak kare, küp ve hacim alma işlemleri ekledim, sizde kendi ihtiyaçlarınıza göre çeşitli özellikleri kolayca ekleyebilirsiniz.

Bu adresten daha önceki önceki python kod çalışmalarına göz atabilir veya direk bu adresten konuda ki projeyi indirebilirsiniz.

Şimdilik bu kadar.

Python ile "Sıcaklık Birimleri Çevirici"

Basit bir uygulama hazırladım. Celvin, Celcius, Fahrenheit ve Rankin birimleri arasında istediğiniz şekilde değer dönüşümü yapabiliyorsunuz.

http://code.google.com/p/pythonkodcalismalarim/ adresinde ki 4.maddeyi ziyaret edebilir veya doğrudan bu adresten indirebilirsiniz.

Programı özetlemek gerekirse;

12 adet dönüşüm olasılığı mevcut bu 4 sıcaklık birimi arasında, bu yüzden her bir ihtimali fonksiyona döküyoruz, toplam 12 tane fonksiyonumuz bulunuyor. Daha sonra kullanıcıya hangi birimi dönüştürmek istediğini soruyoruz, ilgili fonksiyonlar çalışıyor ve dönüşüm olasılıklarına göre kullanıcıya çıktı veriyor.

Kodları inceleyerek daha da geliştirebilirsiniz, farklı sıcaklık birimleri arasında geçişler için fonksiyonlar yazabilirsiniz, veya bu uygulamanın benzeri daha farklı birimler (uzunluk-sıcaklık vb.) için özellikler geliştirebilirsiniz.

Belki birilerine faydası olur diye paylaşayım.

Python ile Basit Bir Liste Uygulaması

Kullanıcıdan isim, soyisim ve telefon numarası olmak üzere 3 adet veri alarak bunları bir listenin tek ögesi şeklinde toplayan basit bir python kodudur, kullanıcı eğer bu 3 alandan herhangi birine boş değer girerse program devam eder ancak listeye herhangi birşey eklemez. Basit bir telefon rehberi düşünülmüştür ve bu rehberin boyutu 5 kişiyle sınırlandırılmıştır.

Eğer yazmaya üşenirseniz kodları http://code.google.com/p/pythonkodcalismalarim/ adresinden download edebilirsiniz.

Kodu açıklayacak olursak :

#7 Deneme isimli bir fonksiyon tanımladık, herhangi bir argüman bulundurmuyor.

#8 Rehber adında boş bir liste oluşturduk.

#9 Programımızın ; rehberin uzunluğu 5 ögeyi geçmediği sürece çalışmasını söyledik.

#10 Kullanıcıdan x olarak değişkene atadığımız bir “isim” verisi girmesini istedik.

#11 Kullanıcıdan y olarak değişkene atadığımız bir “soyisim” verisi girmesini istedik.

#12 Kullanıcıdan z olarak değişkene atadığımız bir “telefon” verisi girmesini istedik.

#13 x, y, z değerlerinden herhangi birinin boş girilme durumunu hazırladık.

#14 Üstteki durum sağlanırsa pass yani direk kodun geri kalanını geç, okuma dedik.

#15 Eğer if durumu sağlanmazsa yapılacak hareket

#16 Rehbere kullanıcının girdiği x’i eklemesini, sonra bir boşluk bırakıp y’yi eklemesini ve sonra bir boşluk daha bırakıp z’yi eklemesini söyledik.

#17 Rehberi ekrana yazdırdık

#18 Fonksiyonu çağırdık.