<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Python Programlama Dili &#187; istihza</title>
	<atom:link href="http://www.istihza.com/blog/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.istihza.com/blog</link>
	<description>Bir belgelendirme projesi...</description>
	<lastBuildDate>Mon, 02 Jan 2012 09:27:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Yeni Python3 Belgeleri</title>
		<link>http://www.istihza.com/blog/yeni-python3-belgeleri.html/</link>
		<comments>http://www.istihza.com/blog/yeni-python3-belgeleri.html/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 09:27:07 +0000</pubDate>
		<dc:creator>istihza</dc:creator>
				<category><![CDATA[istihza.com]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Python3]]></category>
		<category><![CDATA[Tkinter]]></category>
		<category><![CDATA[Yeni belgeler]]></category>

		<guid isPermaLink="false">http://www.istihza.com/blog/?p=1602</guid>
		<description><![CDATA[Uzun süredir üzerinde çalıştığım yeni Python3 belgelerinin bir kısmını bugün yayımladım. Bu belgelere http://www.istihza.com/beta/py3/icindekiler_python.html adresinden ulaşabilirsiniz. Aslında elimde sitede gördüğünüzden daha fazla belge var, ama bu belgeleri yayımlayabilmek için, içeriğin hazır olması yetmiyor ne yazık ki. Belgelerin sunumu ile de epey uğraşmak lazım. O yüzden, bu belgeleri yayımlanabilir hale getirebilmek için bunların üzerinde biraz daha çalışmam gerekiyor. [...]]]></description>
			<content:encoded><![CDATA[<p>Uzun süredir üzerinde çalıştığım yeni Python3 belgelerinin bir kısmını bugün yayımladım. Bu belgelere <a href="http://www.istihza.com/beta/py3/icindekiler_python.html">http://www.istihza.com/beta/py3/icindekiler_python.html</a> adresinden ulaşabilirsiniz.</p>
<p>Aslında elimde sitede gördüğünüzden daha fazla belge var, ama bu belgeleri yayımlayabilmek için, içeriğin hazır olması yetmiyor ne yazık ki. Belgelerin sunumu ile de epey uğraşmak lazım. O yüzden, bu belgeleri yayımlanabilir hale getirebilmek için bunların üzerinde biraz daha çalışmam gerekiyor. Belgeler hazır oldukça sunucuya yükleyeceğim.</p>
<p><a href="http://www.istihza.com/py3/icindekiler_python.html">http://www.istihza.com/py3/icindekiler_python.html</a> adresinde bulunan eski belgelerde Python3&#8242;ün 3.0 sürümünü ele almıştık. Yeni belgelerin eski belgelerden farkı ise, yeni belgelerde Python3&#8242;ün daha yeni bir sürümünün (Python 3.2.2), çok daha ayrıntılı bir şekilde anlatılıyor olması.</p>
<p>Yeni Python3 belgelerinin başka bir önemli özelliği de Python ve Tkinter&#8217;in birlikte anlatılmış olması. Bu belgelerde öğrenci komut satırı ve grafik arayüz tasarımını birlikte öğrenecek. Bu sistemin öğrencinin motivasyonunu artıracağını düşünüyorum. Bu kararın gerekçelerini belgelerde şu şekilde açıklamaya çalıştım:</p>
<blockquote>
<p id="index-62">Bir programlama dilini öğrenirken, öğrencinin karşısındaki en büyük engel öğrenilmesi gereken şeylerin çokluğu veya zorluğu değildir. Aslında öğrencinin öğrenme motivasyonunu kırabilecek, onu yolundan alıkoyabilecek en önemli etken, öğrendiği bilgileri kafasında bir yere oturtamamasıdır. Yani öğrenci bir programlama dilini öğrenirken, özellikle de henüz yolun başındaysa ve daha önce de herhangi bir programlama dili deneyimi olmamışsa, öğretilen şeyler ona gereksizmiş gibi gelebilir. Hatta öyle ki, zaman zaman anlamsız ayrıntılarla vakit kaybettiği hissine dahi kapılabilir.</p>
<p>Bu kitapta şimdiye kadar öğrendiğimiz bilgilerden örnek vermemiz gerekirse, kapkara bir ekrana “Merhaba Zalim Dünya!” yazdırmanın son derece gereksiz ve aslında hiçbir işe yarayamayan bir çaba olduğunu düşünebilir. Öğrenci (doğal olarak) her zaman sabırsızdır. Bir an önce sonuca varmak, emeklemeyi öğrenmeden koşmak ister.</p>
<p>Bu kitaptaki konuları okurken siz de yukarıda anlatılan sabırsızlık ve manasızlık duygusuna kapılmış olabilirsiniz. Ama aslında bunun çok doğal bir his olduğunu asla aklınızdan çıkarmayın ve bir an da olsa kafanızdan geçen bu hislerin sizi yolunuzdan döndürmesine, motivasyonunuzu kırmasına izin vermeyin. Unutmayın ki, bütün büyük programlar, minicik ayrıntıların programcı tarafından ustaca bir araya getirilmesi sonucu ortaya çıkar. Hatta şöyle diyebiliriz: Programlama, bir yap-bozun parçalarını birleştirmek gibidir. Yap-bozun parçalarına tek tek baktığınızda bu parçalar bütüne dair bir anlam ifade etmeyebilir. Asıl manzara bu anlamsız görünen küçük parçaları birleştirdiğinizde ortaya çıkar&#8230;</p>
<p>Aslında bu anlattıklarımız sadece programlama öğrenen öğrenciler için değil, her konunun öğrencileri için geçerlidir. Örneğin okullarda İngilizce öğretilirken ilk verilen bilgilerden biri “<em>This is an apple!</em>” (Bu bir elmadır) cümlesidir. Belki bu cümleyi hayatınız boyunca hiçbir zaman kullanmayacaksınız. Ama bu cümlede geçen ve ilk bakışta dikkatinizi çekmemiş olabilecek ayrıntılar aslında İngilizce’nin yapısı ve mantığı hakkında son derece önemli bilgiler içeriyor. Böyle bir cümle kurmadan, daha karmaşık cümleler kuramazsınız. Aynı şekilde, bizim bu kitapta size öğrettiğimiz <tt>print("Merhaba Zalim Dünya!")</tt> komutunu da yazdığınız programlarda muhtemelen hiçbir zaman kullanmayacaksınız. Ama tıpkı “<em>This is an apple!</em>” cümlesinde olduğu gibi, <tt>print("Merhaba Zalim Dünya!")</tt> ifadesi de Python programlama diline dair çok önemli ayrıntıları içinde barındırır. Aynı şekilde, bu komutu yazabilmek de önemli ve büyük programlar üretebilmenin ilk adımıdır.</p>
<p>Öğrencinin yaşadığı bu ikilem sadece kendisini değil, herhangi bir konu üzerine öğretici belge hazırlayanları da bir hayli zorlar. Çünkü herhangi bir konu üzerine öğretici belge hazırlayanların aşması gereken en büyük zorluk, anlatılacak konuları düzgün bir şekilde hazırlamaktan ziyade, yukarıda söz edilen heves kırıcı etkenleri bertaraf edip, okurun ilgisini sürekli ayakta tutabilmektir.</p>
<p>Konuyu programlama açısından ele alacak olursak, aslında öğrencinin hevesini kıran şey biraz da komut satırının kasvetli havasıdır. Bir programlama dilini öğrenmeye çalışan kişi günlük yaşamında sürekli olarak modern grafik arayüzlere sahip programlarla karşılaşırken, kendi öğrenme deneyimi sırasında siyah bir ekranla uğraşmak zorunda kalmak pek hoşuna gitmeyebilir. Öğrencinin komut satırıyla birlikteliği uzadıkça, sabırsızlığı da artacak, bir an önce pencereli-düğmeli programlar yazabilme arzusu yüzünden öğrenmesi gereken temel bilgilere odaklanmakta dahi zorluk çekebilecektir.</p>
<p>Bu kitapta, yukarıda sözü edilen sıkıntıları en hafife indirmek için biz öğrenciyi grafik arayüz programlama ile erkenden tanıştırma yoluna gideceğiz.</p>
<p>Elbette Python programlama dilini bu kitap aracılığıyla öğrenmek isteyenler arasında, Tkinter’e (veya genel olarak grafik arayüz programlamaya) hiç bulaşmadan sadece Python öğrenmek isteyenler de olabilir. İşte biz onları da düşünerek grafik arayüz konusunu ayrı bir bölüm olarak tasarladık. Bundan sonraki her dersin sonunda “Tkinter” adlı bir bölüm de yer alacak. Eğer grafik arayüz konusunu öğrenmek istemeyenlerdenseniz ders sonlarındaki Tkinter adlı bölümleri es geçebilirsiniz. Bu bölümleri görmezden gelmeniz Python’ın kendisine ilişkin bölümlerdeki konuları anlamanızı zorlaştırmaz veya herhangi bir şekilde etkilemez.</p>
<p>Grafik arayüz programlama ile komut satırı programlama konularının bir arada anlatılmasının gerekçesi, bir an önce pencereli-düğmeli programlarla tanışmak isteyenlerin ihtiyacına cevap verebilmektir. Eğer “benim böyle bir ihtiyacım yok!” diyorsanız alnınız dik, başınız ileride yolunuza devam edebilirsiniz.</p>
<p>Esasında her öğretme biçiminin kendine has artı ve eksi yönleri vardır. Bu açıdan, dezavantajsız bir öğretme biçiminden söz etmek pek mümkün olmayacaktır.</p>
<p id="index-63">Bir programlama dilini sadece komut satırı üzerinden öğretmeye çalışmanın dezavantajlarından yukarıda bahsetmiştik. Grafik arayüz programlama, özü itibariyle ileri düzey bir konu olduğu ve kavramlar açısından komut satırı programlamaya göre önemli farklılıklar içerdiği için öğrenciyi erkenden grafik arayüz programlama ile tanıştırmanın da bazı dezavantajları olabilir. Ancak Python programlama dili özelinde düşünürsek, bir Python programcısı, örneğin bir C programcısına kıyasla programlama macerası boyunca grafik arayüze sahip programlarla çok daha fazla haşır neşir olacaktır. Çünkü Python programlama dili, yapısı itibariyle grafik arayüz geliştirmeye, C programlama diline göre çok daha uygundur. Üstelik biz bu öğretme biçiminin olası dezavantajlarını en aza indirmek için elimizden geleni de yapacağız.</p>
</blockquote>
<p>Yeni Python3 belgelerini beğeneceğinizi umuyorum. Her zaman olduğu gibi, bu belgeleri hazırlarken de amacım kaliteli, anlaşılır ve modern bir Türkçe kaynak ortaya çıkarmaktı. Bu amaca ulaşmak için elimden gelen çabayı gösteriyorum. Ancak elbette bu belgelerde bazı hatalar ve eksiklikler de olacaktır. Belgelerde bulduğunuz hataları ve eksiklikleri kistihza [at] yahoo [nokta] com adresinden bana iletebileceğiniz gibi, <a href="http://www.istihza.com/forum ">http://www.istihza.com/forum</a> adresinde de dile getirebilirsiniz.</p>
<p>Python programlama dili ile ilgilenen herkese faydalı olması ümidiyle&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.istihza.com/blog/yeni-python3-belgeleri.html/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Python Programları</title>
		<link>http://www.istihza.com/blog/python-programlari.html/</link>
		<comments>http://www.istihza.com/blog/python-programlari.html/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 13:36:59 +0000</pubDate>
		<dc:creator>istihza</dc:creator>
				<category><![CDATA[istihza.com]]></category>

		<guid isPermaLink="false">http://www.istihza.com/blog/?p=1596</guid>
		<description><![CDATA[istihza.com&#8217;da http://www.istihza.com/programlar/icindekiler_programlar.html adresinde bulunan programları Wiki&#8217;ye taşıdım. Burada şu programlar yer alıyor: bsod_arsiv calarsaat direnchesapla ekranyakala inciname linzip md5kaydedici mezgeldek odun ohmhesaplayici parcala posedur3 pyvakitci servertools sifreci sifreyap sozlugum tercuman Eğer bu programlardan herhangi birinin yazarı iseniz ve eğer bu programların bilgilerinde değişiklik yapmak istiyorsanız http://www.istihza.com/wiki/ adresinde kendi programınıza ait sayfayı düzenleyebilirsiniz. &#160;]]></description>
			<content:encoded><![CDATA[<p>istihza.com&#8217;da <a href="http://www.istihza.com/programlar/icindekiler_programlar.html">http://www.istihza.com/programlar/icindekiler_programlar.html</a> adresinde bulunan programları Wiki&#8217;ye taşıdım. Burada şu programlar yer alıyor:</p>
<blockquote><p>bsod_arsiv</p>
<p>calarsaat</p>
<p>direnchesapla</p>
<p>ekranyakala</p>
<p>inciname</p>
<p>linzip</p>
<p>md5kaydedici</p>
<p>mezgeldek</p>
<p>odun</p>
<p>ohmhesaplayici</p>
<p>parcala</p>
<p>posedur3</p>
<p>pyvakitci</p>
<p>servertools</p>
<p>sifreci</p>
<p>sifreyap</p>
<p>sozlugum</p>
<p>tercuman</p></blockquote>
<p>Eğer bu programlardan herhangi birinin yazarı iseniz ve eğer bu programların bilgilerinde değişiklik yapmak istiyorsanız <a href="http://www.istihza.com/wiki/doku.php">http://www.istihza.com/wiki/</a> adresinde kendi programınıza ait sayfayı düzenleyebilirsiniz.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.istihza.com/blog/python-programlari.html/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>GNU/Linux Dağıtımlarında Python3 Bağımlılıkları</title>
		<link>http://www.istihza.com/blog/gnulinux-dagitimlarinda-python3-bagimliliklari.html/</link>
		<comments>http://www.istihza.com/blog/gnulinux-dagitimlarinda-python3-bagimliliklari.html/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 14:34:52 +0000</pubDate>
		<dc:creator>istihza</dc:creator>
				<category><![CDATA[istihza.com]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[bağımlılıklar]]></category>
		<category><![CDATA[Python3]]></category>
		<category><![CDATA[Wiki]]></category>

		<guid isPermaLink="false">http://www.istihza.com/blog/?p=1594</guid>
		<description><![CDATA[Hatırlarsanız geçen aylarda şöyle bir çalışma yapmıştık: http://www.istihza.com/blog/istihza-comda-python3.html/ Bu çalışmada amacımız, Python3&#8242;ün kaynaktan derlenmesi esnasında, farklı GNU/Linux dağıtımlarında hangi paketlerin halihazırda kurulu olması gerektiğini tespit edebilmekti. Buradan çıkan sonucu http://goo.gl/zfLpX adresine yerleştirdim. Eğer oradaki tabloda gördüğünüz eksiklikler varsa veya farklı bir dağıtım için bağımlılık listesi girmek istiyorsanız sayfayı düzenleyebilirsiniz.]]></description>
			<content:encoded><![CDATA[<p>Hatırlarsanız geçen aylarda şöyle bir çalışma yapmıştık:</p>
<p><a href="http://www.istihza.com/blog/istihza-comda-python3.html/">http://www.istihza.com/blog/istihza-comda-python3.html/</a></p>
<p>Bu çalışmada amacımız, Python3&#8242;ün kaynaktan derlenmesi esnasında, farklı GNU/Linux dağıtımlarında hangi paketlerin halihazırda kurulu olması gerektiğini tespit edebilmekti.</p>
<p>Buradan çıkan sonucu <a href="http://goo.gl/zfLpX">http://goo.gl/zfLpX</a> adresine yerleştirdim. Eğer oradaki tabloda gördüğünüz eksiklikler varsa veya farklı bir dağıtım için bağımlılık listesi girmek istiyorsanız sayfayı düzenleyebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.istihza.com/blog/gnulinux-dagitimlarinda-python3-bagimliliklari.html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Farklı İşletim Sistemlerinde Komut Satırına Ulaşmak</title>
		<link>http://www.istihza.com/blog/farkli-isletim-sistemlerinde-komut-satirina-ulasmak.html/</link>
		<comments>http://www.istihza.com/blog/farkli-isletim-sistemlerinde-komut-satirina-ulasmak.html/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 14:31:16 +0000</pubDate>
		<dc:creator>istihza</dc:creator>
				<category><![CDATA[istihza.com]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Komut satırı]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Wiki]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.istihza.com/blog/?p=1581</guid>
		<description><![CDATA[Programlama öğrenmeye azmetmiş pek çok kişi, kullandığı işletim sisteminde komut satırına nasıl ulaşacağını genellikle bilir. Ama yine de programlamaya yeni başlayanlar (özellikle Windows kullanıcıları), kullandıkları işletim sisteminde komut satırına ulaşmak konusunda bazen sıkıntı yaşayabiliyor. Bu sıkıntıyı hafifletmek için http://goo.gl/ZyjAU adresinde bir makale oluşturduk. Bu makalede sadece Windows işletim sistemine değil, başka işletim sistemlerine de yer vermek [...]]]></description>
			<content:encoded><![CDATA[<p>Programlama öğrenmeye azmetmiş pek çok kişi, kullandığı işletim sisteminde komut satırına nasıl ulaşacağını genellikle bilir. Ama yine de programlamaya yeni başlayanlar (özellikle Windows kullanıcıları), kullandıkları işletim sisteminde komut satırına ulaşmak konusunda bazen sıkıntı yaşayabiliyor. Bu sıkıntıyı hafifletmek için <a href="http://goo.gl/ZyjAU">http://goo.gl/ZyjAU</a> adresinde bir makale oluşturduk. Bu makalede sadece Windows işletim sistemine değil, başka işletim sistemlerine de yer vermek istiyoruz.</p>
<p>Ben yeni Python3 belgelerinde, Ubuntu ve Windows 7&#8242;de komut satırına nasıl ulaşılacağını anlattım. Bu iki işletim sistemi dışında, kullanıcıların farklı işletim sistemi ve platformlarda komut satırına nasıl ulaşacağını anlatan bir belgenin elimizde olmasının faydalı olacağına siz de inanıyorsanız, <a href="http://goo.gl/ZyjAU">http://goo.gl/ZyjAU</a> adresindeki makaleyi başka işletim sistemlerine ait bilgileri girerek zenginleştirebilirsiniz.</p>
<p>GNU/Linux dağıtımlarında komut satırına ulaşma işlemi birbirine benzese de, özellikle dağıtımların masaüstü arayüzü üzerinde yaptıkları özelleştirmeler nedeniyle grafik olarak komut satırına ulaşmada farklılıklar olabiliyor. O yüzden, ben bütün dağıtımlar için bu bilgilerin tek tek girilmesinden yanayım.</p>
<p>Not: Sayfada halihazırda bulunan Windows XP girdisini şablon olarak kullanabilirsiniz.</p>
<p>İlgilenen herkese teşekkürler.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.istihza.com/blog/farkli-isletim-sistemlerinde-komut-satirina-ulasmak.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>istihza.com Wiki</title>
		<link>http://www.istihza.com/blog/istihza-com-wiki.html/</link>
		<comments>http://www.istihza.com/blog/istihza-com-wiki.html/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 08:37:27 +0000</pubDate>
		<dc:creator>istihza</dc:creator>
				<category><![CDATA[istihza.com]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[forum]]></category>
		<category><![CDATA[Python3]]></category>
		<category><![CDATA[Wiki]]></category>

		<guid isPermaLink="false">http://www.istihza.com/blog/?p=1556</guid>
		<description><![CDATA[Bildiğiniz gibi, istihza.com üzerinde Python2 belgelerinin yanısıra, bir de Python3 belgeleri yer alıyor. Ancak yine bildiğiniz gibi, sitedeki Python3 belgeleri uzun zamandır güncellenmedi. Haliyle bu belgelerde Python3&#8242;ün eski bir sürümü ele alınıyor. Sitedeki Python3 belgelerini güncellemek ve daha kapsamlı bir hale getirebilmek için, çok uzun bir süredir bu belgeler üzerinde çalışıyorum. Ancak gün içinde beni [...]]]></description>
			<content:encoded><![CDATA[<p>Bildiğiniz gibi, istihza.com üzerinde Python2 belgelerinin yanısıra, bir de Python3 belgeleri yer alıyor. Ancak yine bildiğiniz gibi, sitedeki Python3 belgeleri uzun zamandır güncellenmedi. Haliyle bu belgelerde Python3&#8242;ün eski bir sürümü ele alınıyor.</p>
<p>Sitedeki Python3 belgelerini güncellemek ve daha kapsamlı bir hale getirebilmek için, çok uzun bir süredir bu belgeler üzerinde çalışıyorum. Ancak gün içinde beni meşgul eden çok fazla şey olduğu için belgeler üzerindeki çalışmalarım pek hızlı ilerleyemiyor ne yazık ki&#8230; Ama hızımız yavaş da olsa, sonuçta ortada bir ilerleme olduğu için bu belgeler önünde sonunda tamamlanacak.</p>
<div class="wp-caption alignright" style="width: 260px"><a href="http://www.istihza.com/images/m.jpg"><img class="  " title="istihza.com ekibi" src="http://www.istihza.com/images/m.jpg" alt="" width="250" height="346" /></a><p class="wp-caption-text">istihza.com ekibi, tasarım ve içerik üzerinde gece gündüz titizlikle çalışıyor...</p></div>
<p>Dediğim gibi, yeni Python3 belgelerinde amacım ortaya hem daha güncel, hem de çok daha kapsamlı bir belge bütünü çıkarmak. Ben tek başıma elimden geldiği kadar bu amaca yönelik çalışmalarımı yürütüyorum, ancak bir programlama dili üzerine gerçekten işe yarar bir kaynak ortaya çıkarmak istiyorsak bir kişinin çabasından daha fazlasına ihtiyacımız var.</p>
<p>istihza.com&#8217;u tek kişinin elinden çıkma bir proje olmaktan kurtarmanın ilk adımı olarak daha önce forum alanını hayata geçirmiştik [<a href="http://www.istihza.com/forum">http://www.istihza.com/forum</a>].  Forum alanı sayesinde, Python&#8217;la ilgilenenlerin fikir alış verişinde bulunabileceği ve doğrudan birbirlerine yardımcı olabileceği bir mekan meydana getirmiş olduk. istihza.com alanındaki Python belgelerini çok daha geniş kapsamlı bir hale getirebilmek için bugünden itibaren &#8220;wiki&#8221; alanını da kullanıma açıyoruz. Wiki alanına <a href="http://www.istihza.com/wiki">http://www.istihza.com/wiki</a> adresinden ulaşabilirsiniz.</p>
<p>Wiki alanı, pek çok önemli amaca hizmet edecek. Örneğin ana Python3 belgelerinde değinemediğimiz özel konulara Wiki&#8217;de yer verebileceğiz. Mesela ben Python3 belgelerinde konuları Ubuntu ve Windows7 üzerinden anlatıyorum. Benim şu an için bir Mac bilgisayara erişimim yok. İşte Mac kullanan bir Python programcısı örneğin Python&#8217;ın Mac bilgisayarlara nasıl kurulacağını bu Wiki alanında anlatabilecek. Ya da bir Debian kullanıcısı, Python&#8217;ın Debian üzerine kurulumu esnasında nelere dikkat edilmesi gerektiğini Wiki alanında dile getirebilecek.</p>
<p>istihza.com&#8217;u takip eden herkesin çok iyi bildiği gibi, istihza.com&#8217;da yayımlanan belgelerin diline özel bir önem veriyoruz. Ana sayfamızda da ifade ettiğimiz gibi;</p>
<blockquote><p>istihza.com; Python Programlama Dili ve bu dilin standart grafik arayüz kütüphanesi Tkinter’e ilişkin <strong>okunaklı</strong>, <strong>özgün</strong> bir Türkçe kaynak oluşturma projesidir.</p></blockquote>
<p>&#8220;Okunaklı&#8221; ve &#8220;özgün&#8221; olmak, Wiki alanında da bağlı kalınacak ilkeler olmalı. Dolayısıyla, Wiki&#8217;de yer alacak belgelerin niceliğinden ziyade niteliği bizi daha fazla ilgilendiriyor. Oluşturduğumuz her belgede bu ilkeleri göz önünde bulundurmaya dikkat edeceğiz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.istihza.com/blog/istihza-com-wiki.html/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Python 3.2.1</title>
		<link>http://www.istihza.com/blog/python-3-2-1.html/</link>
		<comments>http://www.istihza.com/blog/python-3-2-1.html/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 09:04:25 +0000</pubDate>
		<dc:creator>istihza</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[3.2.1]]></category>
		<category><![CDATA[hata]]></category>
		<category><![CDATA[rc]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.istihza.com/blog/?p=1546</guid>
		<description><![CDATA[Python&#8217;ın 3.x serisine ait en son kararlı sürüm 3.2.0. Ancak daha önceki bir yazıda da anlatmaya çalıştığım gibi, bu sürüm önemli hatalar barındırıyor. Orada da söylediğim gibi, bu hatalardan GNU/Linux dağıtımları etkilenmedi. Ancak özellikle Windows kullanıcıları açısından Python 3.2.0 hiç iyi bir tercih değil. Python&#8217;ın kararlı 3.2.1 sürümü yakında yayımlanacak. O zamana kadar Windows kullanıcıları [...]]]></description>
			<content:encoded><![CDATA[<p>Python&#8217;ın 3.x serisine ait en son kararlı sürüm 3.2.0. Ancak <a href="http://www.istihza.com/blog/windows-python-3-2de-bir-hata.html/">daha önceki bir yazıda da anlatmaya çalıştığım gibi</a>, bu sürüm önemli hatalar barındırıyor. Orada da söylediğim gibi, bu hatalardan GNU/Linux dağıtımları etkilenmedi. Ancak özellikle Windows kullanıcıları açısından Python 3.2.0 hiç iyi bir tercih değil.  </p>
<p>Python&#8217;ın kararlı 3.2.1 sürümü yakında yayımlanacak. O zamana kadar Windows kullanıcıları en azından aday sürümleri kurarak, büyük hatalar barındıran 3.2.0 sürümünden kurtulmayı tercih edebilir. </p>
<p>Not: 23 Haziran 2011 tarihi itibariyle Python&#8217;ın <a href="http://www.python.org/ftp/python/3.2.1/">FTP sunucularından</a> 3.2.1rc1 sürümü indirilebiliyor. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.istihza.com/blog/python-3-2-1.html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>pyc Dosyaları için Özel Dizin</title>
		<link>http://www.istihza.com/blog/pyc-dosyalari-icin-ozel-dizin.html/</link>
		<comments>http://www.istihza.com/blog/pyc-dosyalari-icin-ozel-dizin.html/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 09:31:57 +0000</pubDate>
		<dc:creator>istihza</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.istihza.com/blog/?p=1533</guid>
		<description><![CDATA[Python&#8217;da herhangi bir modülü içe aktardığımızda, .py uzantılı modül dosyasının bulunduğu dizinde .pyc uzantılı bir önbellek dosyası oluşur. Bu önbellekleme mekanizması sayesinde, bu modül tekrar içe aktarılacağı zaman Python içe aktarma işlemini daha hızlı gerçekleştirebilir. Python 3.2&#8242;ye kadar olan Python sürümlerinde bu .pyc uzantılı dosyalar, ana .py dosyasının bulunduğu dizin içinde oluşturuluyordu. Ancak bu durum [...]]]></description>
			<content:encoded><![CDATA[<p>Python&#8217;da herhangi bir modülü içe aktardığımızda, .py uzantılı modül dosyasının bulunduğu dizinde .pyc uzantılı bir önbellek dosyası oluşur. Bu önbellekleme mekanizması sayesinde, bu modül tekrar içe aktarılacağı zaman Python içe aktarma işlemini daha hızlı gerçekleştirebilir.</p>
<p>Python 3.2&#8242;ye kadar olan Python sürümlerinde bu .pyc uzantılı dosyalar, ana .py dosyasının bulunduğu dizin içinde oluşturuluyordu. Ancak bu durum Python&#8217;ın 3.2 sürümü ile birlikte değişti. Artık .pyc dosyaları doğrudan ana .py dosyasının bulunduğu dizin içinde değil, __pycache__ adlı özel bir alt dizin içinde oluşuyor.</p>
<p>Yeni sistemin nasıl çalıştığını görmek isterseniz, mesela masaüstünde bulunan test.py adlı bir dosyayı <em>import test</em> komutuyla içe aktarın. Eğer kullandığınız sürüm Python 3.2 veya üzeri ise masaüstünde yeni bir __pycache__ dizininin oluştuğunu göreceksiniz.</p>
<p>.pyc dosyaları ile ilgili olarak Python 3.2&#8242;nin getirdiği tek yenilik farklı bir dizin daha oluşturulması değildir. Bu yeni __pycache__ dizinini açtığınızda karşınıza test.cpython-32.pyc adında bir dosya çıktığını göreceksiniz. Gördüğünüz gibi, artık .pyc dosyalarının adı da farklı. Python&#8217;ın 3.2 öncesi sürümlerinde test.py adlı dosyanın önbelleklenmiş hali test.pyc adını taşıyordu. Ama 3.2 sonrası sürümlerde önbelleklenmiş dosya test.cpython32.pyc adını taşıyor.</p>
<p>Peki bütün bu değişikliklerin gerekçesi nedir?</p>
<p>Özellikle sistemde birden fazla Python sürümü kurulu olduğunda eski önbellekleme mekanizması bazı sorunlara yol açabiliyordu. Örneğin Python 2.7 yorumlayıcısı tarafından oluşturulmuş bir .pyc dosyasıyla karşılaşan Python 3.1 yorumlayıcısı bu .pyc dosyasının üzerine yazıp, Python 2.7 yorumlayıcısının o dosyayı kullanmasını engelleyebiliyordu.</p>
<p>Aslında bu sorunun temelinde, bütün Python sürümlerinin test.py gibi bir dosya için test.pyc adlı bir bellek dosyası araması yatıyor. İşte Python geliştiricileri bu sorunu çözmek için her Python derleyicisinin farklı bir bellek dosyası adı oluşturmasına karar verdi. Böylelikle artık Python 3.2 derleyicisi .pyc dosyalarını &#8220;modül_adı.cpython32.pyc&#8221; adıyla, Python 3.3 derleyicisi ise &#8220;modül_adı.cpython33.pyc&#8221; adıyla oluşturacak. Ayrıca bütün .pyc dosyaları tek bir __pycache__ dizini altında derli toplu bir şekilde bulunacağı için dosya kirliliğinin de önüne geçilmiş olacak.</p>
<p>Bütün bu değişikliklerin sonucu olarak artık bütün modüllerin bir de __cached__ adlı bir metodu var. Bu metot, önbelleklenmiş dosyanın adını tutuyor. Örneğin:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">test</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #dc143c;">test</span>.__cached__
<span style="color: #483d8b;">'__pycache__/test.cpython-32.pyc'</span></pre></div></div>

<p>Eğer bu yeni yapı içindeki &#8220;cpython-32&#8243; kısmını almanız gerekirse şu kodları kullanabilirsiniz:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">imp</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #dc143c;">imp</span>.<span style="color: black;">get_tag</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> 
<span style="color: #483d8b;">'cpython-32'</span></pre></div></div>

<p>Ayrıca artık imp modülü de, bu yeni değişiklikler nedeniyle iki yeni metot daha kazandı:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">imp</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #dc143c;">imp</span>.<span style="color: black;">cache_from_source</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;test.py&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #483d8b;">'__pycache__/test.cpython-32.pyc'</span>
<span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #dc143c;">imp</span>.<span style="color: black;">source_from_cache</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;__pycache__/test.cpython-32.pyc&quot;</span><span style="color: black;">&#41;</span>
<span style="color: #483d8b;">'test.py'</span></pre></div></div>

<p>Gördüğünüz gibi, cache_from_source() metodu, parametre olarak modül adını alıyor ve size bu modüle ait önbelleklenmiş dosyanın adını veriyor. Benzer şekilde source_from_cache() metodu ise parametre olarak önbelleklenmiş dosya adını alıyor ve size ana modülün adını veriyor.</p>
<p>Konuyla ilgili PEP:<br />
    <a href="http://www.python.org/dev/peps/pep-3147/">http://www.python.org/dev/peps/pep-3147/</a></p>
<p>Resmi belge:<br />
   <a href="http://www.python.org/dev/peps/pep-3147/"> http://docs.python.org/dev/whatsnew/3.2.html#pep-3147-pyc-repository-directories</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.istihza.com/blog/pyc-dosyalari-icin-ozel-dizin.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Natty Narwhal ve Dropbox Simgesi</title>
		<link>http://www.istihza.com/blog/natty-narwhal-ve-dropbox-simgesi.html/</link>
		<comments>http://www.istihza.com/blog/natty-narwhal-ve-dropbox-simgesi.html/#comments</comments>
		<pubDate>Mon, 02 May 2011 20:39:03 +0000</pubDate>
		<dc:creator>istihza</dc:creator>
				<category><![CDATA[Yazılım]]></category>
		<category><![CDATA[11.04]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Natty Narwhat]]></category>
		<category><![CDATA[simge]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.istihza.com/blog/?p=1526</guid>
		<description><![CDATA[istihza.com&#8217;daki belgeleri yazarken, gün içinde farklı bilgisayarlar üzerinde çalışmak zorunda kalıyorum. Eskiden belgelerimi parmak bellek aracılığıyla bir bilgisayardan öbürüne taşıyordum. Ama bunun gayet verimsiz ve veri kaybına açık bir yöntem olduğu ortada&#8230; İşlerimi kolaylaştırmak için uzun süredir Dropbox yazılımını kullanıyorum. Böylece oradan oraya belge taşımak zorunda kalmıyorum. Geçenlerde &#8220;Natty Narwhal&#8221; kod adlı Ubuntu 11.04 sürümünün [...]]]></description>
			<content:encoded><![CDATA[<p>istihza.com&#8217;daki belgeleri yazarken, gün içinde farklı bilgisayarlar üzerinde çalışmak zorunda kalıyorum. Eskiden belgelerimi parmak bellek aracılığıyla bir bilgisayardan öbürüne taşıyordum. Ama bunun gayet verimsiz ve veri kaybına açık bir yöntem olduğu ortada&#8230; İşlerimi kolaylaştırmak için uzun süredir Dropbox yazılımını kullanıyorum. Böylece oradan oraya belge taşımak zorunda kalmıyorum.</p>
<p>Geçenlerde &#8220;Natty Narwhal&#8221; kod adlı Ubuntu 11.04 sürümünün yayınlanmasıyla ben de kullandığım Ubuntu sürümünü yükselttim. Ancak bu sürümde Dropbox simgesi sağ üst köşedeki bildirim alanında görünmüyor. Aslında Dropbox alttan alta çalışmaya devam ediyor, ama simge görünmediği için bazı işlevleri yerine getirmek mümkün olmuyor&#8230;</p>
<p>Böyle bir sorunla karşı karşıya kalınca internet üzerinde konuyu araştırdım ve çözümü <a href="http://www.omgubuntu.co.uk/2011/03/how-to-hide-or-show-app-tray-applets-in-ubuntu-11-04/">http://www.omgubuntu.co.uk/2011/03/how-to-hide-or-show-app-tray-applets-in-ubuntu-11-04/</a> adresinde buldum.</p>
<p>Bu sorunu şöyle çözüyoruz:</p>
<p>1. Öncelikle Ubuntu&#8217;nun bildirim alanında görünmesine izin verdiği uygulamaların bir listesini görmek için şu komutu veriyoruz:</p>
<blockquote><p>gsettings get com.canonical.Unity.Panel systray-whitelist</p></blockquote>
<p>Bendeki çıktı şöyle:</p>
<blockquote><address>['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'hp-systray']</address>
</blockquote>
<p>2. Şimdi şu komutu kullanarak bu listeye Dropbox&#8217;ı da ekliyoruz:</p>
<blockquote><p>gsettings set com.canonical.Unity.Panel systray-whitelist<code> </code>['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'hp-systray', 'Dropbox']</p></blockquote>
<p>Bu işlemleri yapıp bilgisayarı yeniden başlattığınızda Dropbox simgesinin sağ üst köşeye yerleştiğini göreceksiniz.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.istihza.com/blog/natty-narwhal-ve-dropbox-simgesi.html/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Herkes için Python &#8211; 2. Baskı</title>
		<link>http://www.istihza.com/blog/herkes-icin-python-2-baski.html/</link>
		<comments>http://www.istihza.com/blog/herkes-icin-python-2-baski.html/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 11:31:29 +0000</pubDate>
		<dc:creator>istihza</dc:creator>
				<category><![CDATA[istihza.com]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[2. baskı]]></category>
		<category><![CDATA[kitap]]></category>

		<guid isPermaLink="false">http://www.istihza.com/blog/?p=1501</guid>
		<description><![CDATA[Artık istihza.com&#8217;u takip eden herkesin çok iyi bildiği gibi, sitemizde bulunan belgelerin tamamı özgür bir lisans altında yayımlanıyor. Bu lisans gereğince, burada bulunan bütün belgeleri istediğiniz gibi okuyabilir, indirebilir ve gönül rahatlığıyla arkadaşlarınızla paylaşabilirsiniz. İsteyen herkesin, istihza.com&#8217;daki belgelere rahatça ulaşabilmesini sağlamak amacıyla ben buradaki belgeleri hem HTML, hem de PDF biçimlerinde yayımlıyorum (ihtiyaç duyulması halinde [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Artık istihza.com&#8217;u takip eden herkesin çok iyi bildiği gibi, sitemizde bulunan belgelerin tamamı özgür bir lisans altında yayımlanıyor. Bu lisans gereğince, burada bulunan bütün belgeleri istediğiniz gibi okuyabilir, indirebilir ve gönül rahatlığıyla arkadaşlarınızla paylaşabilirsiniz.</p>
<p style="text-align: left;">İsteyen herkesin, istihza.com&#8217;daki belgelere rahatça ulaşabilmesini sağlamak amacıyla ben buradaki belgeleri hem HTML, hem de PDF biçimlerinde yayımlıyorum (ihtiyaç duyulması halinde bu belgeleri ePUB biçiminde de yayımlama olanağına sahibiz).</p>
<p style="text-align: left;">Ancak herkes belgeleri bilgisayar ekranından okumaktan hoşlanmıyor olabilir. Biz onları da unutmadık! Bütün bu indirme biçimlerinin üzerine, belgeleri kağıt üzerinde basılı olarak okumak isteyenleri de düşünerek, buradaki belgelerin bir kısmını kitap olarak da yayımladık. Bildiğiniz gibi, &#8220;<strong>Herkes için Python</strong>&#8221; adlı kitabımız Şubat 2010 tarihinde KODLAB Yayınları&#8217;ndan çıktı.</p>
<p style="text-align: left;">&#8220;<strong>Herkes için Python</strong>&#8221; adlı kitabın ilk basım tarihi olan Şubat 2010&#8242;dan bu yana geçen bir yıllık süre içinde kitabımızın ilk baskısı tükendi ve bugün kitabımızın 2. baskısı raflardaki yerini aldı.</p>
<p style="text-align: center;"><a href="http://www.istihza.com/images/python3d.jpg"><img class="aligncenter" title="Herkes için Python" src="http://www.istihza.com/images/python3d.jpg" alt="" width="480" height="480" /></a></p>
<p style="text-align: left;">Her kitapta olduğu gibi, bizim kitabımızda da gerek basımdan gerekse doğrudan benden kaynaklanan bazı yazım hataları oldu. İşte 1. baskının tükenip 2. baskının yapılması sayesinde bu hataları düzeltme imkanına kavuştuk. Ben dikkatimi çeken ve 2. baskı öncesi bana e.posta yoluyla okurlar tarafından bildirilen hataları düzelttim. Elbette yine de gözümüzden kaçan hatalar olmuş olabilir. Eğer kitapta bir hata olduğunu düşünüyorsanız, öncelikle istihza.com&#8217;daki ilgili belgeleri kontrol edin. Gördüğünüz hata, kitapta olmasa bile sitedeki belgelerde düzeltilmiş olabilir. Eğer sitedeki belgelerde de hata olduğunu düşünüyorsanız kistihza [at] yahoo [nokta] com adresinden benimle yazışmaktan asla çekinmeyin. Benim istihza.com projesindeki amacım, hatalardan arınmış, kalitesi yüksek ve okunaklı bir Python kılavuzu oluşturmaktır.</p>
<p style="text-align: left;">Çevirmenlerin ve yazarların çok iyi bildiği gibi, insan kendi yazdığı şeylerdeki hataları göremez. istihza.com&#8217;daki belgeleri de kendim yazdığım için, bu belgeleri ne kadar okusam da buradaki hataların tamamını benim görmem mümkün değil. Bu hataların düzeltilmesi konusunda iş istihza.com takipçilerine düşüyor. Sitedeki hataları şimdiye kadar bulup bana ileten ve şimdiden sonra da iletecek olan herkese teşekkür ederim.</p>
<p style="text-align: left;">Elbette 2. baskı sadece hata düzeltmelerinden ibaret değil. Biliyorsunuz, artık Python 3 yavaş yavaş gündemimizdeki yerini alıyor. Bu sebeple bu 2. baskıya Python 2 ile Python 3 arasındaki temel farklılıkları özet bir şekilde anlatan 7 sayfalık bir bölüm ekledim. Bu yeni bölümün, Python3&#8242;e geçiş ve bu iki seri arasındaki farklılıklar konusunda Python severlere iyi bir fikir vereceğini düşünüyorum.</p>
<p style="text-align: left;">&#8220;<strong>Herkes için Python</strong>&#8220;, programlama konusunda hiçbir bilgisi olmayanlar düşünülerek hazırlanmış bir kitaptır. Eğer daha önce Python ve programlamayla ilgili herhangi bir tecrübeniz olmadıysa bu kitabın tam size göre olduğunu söyleyebilirim.</p>
<p style="text-align: left;">En başta da söylediğim gibi, kitaptaki bilgilere (ve hatta daha fazlasına) istihza.com üzerinden ücretsiz olarak erişebilirsiniz. Eğer bu bilgilere kağıt üzerine basılı olarak da ulaşmak veya istihza.com projesine destek olmak isterseniz <a href="http://www.kodlab.com">KODLAB Yayınları</a>&#8216;ndan çıkan bu kitabı satın almayı tercih edebilirsiniz. Ama elbette eğer maddi gücünüz kitabı almaya yetmiyorsa veya kitabı satın almak istemiyorsanız, ki gayet makul ve meşru bir gerekçedir bu, sitedeki HTML ve/veya PDF dosyalarını okumaya devam edebilirsiniz.</p>
<p style="text-align: left;">Dediğim gibi, kitabımızın 1. baskısı geçen yılın Şubat ayında çıkmıştı. Kitap çıktıktan 3 ay sonra, yani geçen yılın Mayıs ayında ikiz oğullarımız Deniz ve Ege dünyaya geldi. Bu kitabı eşime ve onlara ithaf ediyorum. Kitaba ilgi gösteren herkese de çok teşekkür ediyorum.</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.istihza.com/blog/herkes-icin-python-2-baski.html/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Mod ve Medyan</title>
		<link>http://www.istihza.com/blog/mod-ve-medyan.html/</link>
		<comments>http://www.istihza.com/blog/mod-ve-medyan.html/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 09:35:22 +0000</pubDate>
		<dc:creator>istihza</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Teknik]]></category>
		<category><![CDATA[istatistik]]></category>
		<category><![CDATA[medyan]]></category>
		<category><![CDATA[mod]]></category>

		<guid isPermaLink="false">http://www.istihza.com/blog/?p=1472</guid>
		<description><![CDATA[Malum, bu aralar YGS&#8217;deki hadise nedeniyle ülkenin gündemine iki kavram girdi: mod ve medyan. Ancak &#8220;seçenekleri kaydırarak doğru eşleşmeyi bulmaya yarayan yöntem mod-medyan&#8221; şeklinde lanse edilen mod ve medyanın seçenek kaydırmayla pek ilgisi yok. Mod ve medyan, istatistik biliminde sıklıkla kullanılan kavramlardan ikisidir&#8230; Peki nedir bu mod ve medyan denen şeyler? Bir veri dizisi içinde [...]]]></description>
			<content:encoded><![CDATA[<p>Malum, bu aralar YGS&#8217;deki hadise nedeniyle ülkenin gündemine iki kavram girdi: mod ve medyan. Ancak &#8220;<em>seçenekleri kaydırarak doğru eşleşmeyi bulmaya yarayan yöntem mod-medyan</em>&#8221; şeklinde lanse edilen mod ve medyanın seçenek kaydırmayla pek ilgisi yok. Mod ve medyan, istatistik biliminde sıklıkla kullanılan kavramlardan ikisidir&#8230;</p>
<p>Peki nedir bu mod ve medyan denen şeyler?</p>
<p>Bir veri dizisi içinde en sık tekrar eden değere &#8220;mod&#8221; adı verilir.  &#8221;Medyan&#8221; ise bir veri dizisinin en ortasında yer alan veridir&#8230;</p>
<p>Örneğin elimizde şöyle bir veri dizisi olduğunu düşünün:</p>
<blockquote><p>7,  13,  18,  24,  9,  3,  18</p></blockquote>
<p>Bu veri dizisinin modu 18&#8242;dir. Peki bu değeri nasıl buluyoruz?</p>
<p>Öncelikle yukarıdaki sayıları küçükten büyüğe doğru sıralıyoruz:</p>
<blockquote><p>3, 7, 9, 13, 18, 18, 24</p></blockquote>
<p>Gördüğünüz gibi, bu dizide en sık tekrar eden değer 18. Dolayısıyla bu dizinin modu 18&#8242;dir diyoruz.</p>
<p>Bir de şu diziye bakalım:</p>
<blockquote><p>24,  15,  18,  20,  18,  22,  24,  26,  18,  26,  24</p></blockquote>
<p>Bu dizinin modunu bulmak için öncelikle dizideki sayıları küçükten büyüğe doğru sıralıyoruz:</p>
<blockquote><p>15,  18,  18,  18,  20,  22,  24,  24,  24,  26,  26</p></blockquote>
<p>Gördüğünüz gibi, bu dizide en sık tekrar eden iki sayı var. Bunlar 18 ve 24. Bu iki sayı da, dizi içinde 3&#8242;er kez geçiyor. Dolayısıyla yukarıdaki dizinin modu 18 ve 24&#8242;tür diyoruz. İstatistikte bu duruma <strong>çift modlu dağılım</strong> adı verilir.</p>
<p>Bir de şu veri dizisine bir göz atalım:</p>
<blockquote><p>2.7,  8.3,  3.5,  5.1,  4.9</p></blockquote>
<p>Bunları küçükten büyüğe doğru sıralayalım:</p>
<blockquote><p>2.7,  3.5,  4.9,  5.1,  8.3</p></blockquote>
<p>Burada tekrar eden herhangi bir sayı yok. Dolayısıyla bu dizinin bir modu yoktur&#8230;</p>
<p>Gelelim medyana&#8230;</p>
<p>En başta dediğimiz gibi,  medyan bir veri dizisinin en ortasında yer alan veridir&#8230;</p>
<p>Örneğin:</p>
<blockquote><p>12, 3, 5</p></blockquote>
<p>Bu veri dizisinin medyanı 5&#8242;tir. Peki bu değeri nasıl buluyoruz?</p>
<p>Tıpkı mod hesaplamasında olduğu gibi önce sayıları küçükten büyüğe doğru sıralıyoruz:</p>
<blockquote><p>3, 5, 12</p></blockquote>
<p>Gördüğünüz gibi, en ortada yer alan sayı 5. Dolayısıyla bu dizinin medyanı 5&#8242;tir diyoruz.</p>
<p>Yukarıdaki örnekte 3 adet sayı var. Yani veri dizisinin uzunluğu bir tek sayı. Veri tipinin uzunluğunun tek sayı olduğu durumlarda medyanı bulmak kolaydır. Mesela:</p>
<blockquote><p>3, 13, 7, 5, 21, 23, 39, 23, 40, 23, 14, 12, 56, 23, 29</p></blockquote>
<p>Burada toplam 15 sayı var. Bu dizinin en ortasındaki sayıyı bulmak kolay: 23. Demek ki bu veri dizisinin medyanı 23&#8242;müş&#8230;</p>
<p>Peki ya veri uzunluğunun çift sayı olduğu durumlar?</p>
<p>Bakalım:</p>
<blockquote><p>3, 13, 7, 5, 21, 23, 23, 40, 23, 14, 12, 56, 23, 29</p></blockquote>
<p>Burada toplam 14 sayı var. Yani veri tipimizin uzunluğu bir çift sayı. Bu yüzden bu dizinin medyanını bulmak tek sayıdaki kadar kolay değil. Ama aslında tabii zor da değil.</p>
<p>Uzunluğu bir çift sayı olan veri tiplerinde medyanı bulmak için yine öncelikle sayıları küçükten büyüğe doğru sıralıyoruz:</p>
<blockquote><p>3, 5, 7, 12, 13, 14, <strong>21</strong>,<strong> 23</strong>, 23, 23, 23, 29, 40, 56</p></blockquote>
<p>Daha sonra, dizinin en ortasında yer alan iki sayıya bakıyoruz. Bu sayılar 21 ve 23.</p>
<p>Ardından, bu iki sayıyı birbiriyle toplayıp, çıkan sayıyı 2&#8242;ye bölüyoruz:</p>
<blockquote><p>(21 + 23) / 2 = 22</p></blockquote>
<p>Elde ettiğimiz sayı bize dizinin medyanını veriyor.  Yani yukarıdaki dizinin medyanı 22&#8242;dir diyoruz&#8230;</p>
<p>Mod ve medyanı öğrendiğimize göre size şöyle bir soru sormama izin verin:</p>
<p>Bir Python programcısı olarak, mod ve medyanı kol kuvvetiyle bulmaya çalışmak size oldukça verimsiz ve anlamsız bir yol olarak görünmüş olmalı. Peki Python programlama dilini kullanarak mod ve medyanı nasıl hesaplayabiliriz?</p>
<p>Ben kendi yöntemimi yazayım. Siz daha verimli algoritmalar uygulayabilirsiniz. (Bu arada aşağıdaki kodları <strong>Python 3 </strong>kullanarak yazdım. Yani bu kodlar <strong>Python 2 </strong>ile çalışmaz):</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">collections</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> mode<span style="color: black;">&#40;</span>lst<span style="color: black;">&#41;</span>:
    sayaç   = <span style="color: #dc143c;">collections</span>.<span style="color: black;">Counter</span><span style="color: black;">&#40;</span>lst<span style="color: black;">&#41;</span>
    değer   = sayaç.<span style="color: black;">values</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    sıklık  = sayaç.<span style="color: black;">most_common</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
    mod     = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">max</span><span style="color: black;">&#40;</span>değer<span style="color: black;">&#41;</span> == <span style="color: #ff4500;">1</span>:
        <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #008000;">list</span><span style="color: black;">&#40;</span>değer<span style="color: black;">&#41;</span>.<span style="color: black;">count</span><span style="color: black;">&#40;</span><span style="color: #008000;">max</span><span style="color: black;">&#40;</span>değer<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>:
            mod.<span style="color: black;">append</span><span style="color: black;">&#40;</span>sıklık<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span><span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
        mod = <span style="color: #483d8b;">&quot;, &quot;</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: #008000;">map</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span>, mod<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">return</span> mod <span style="color: #ff7700;font-weight:bold;">if</span> mod <span style="color: #ff7700;font-weight:bold;">else</span> <span style="color: #483d8b;">&quot;mod yok!&quot;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> median<span style="color: black;">&#40;</span>lst<span style="color: black;">&#41;</span>:
    uzunluk = <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>lst<span style="color: black;">&#41;</span>
    sıralı  = <span style="color: #008000;">sorted</span><span style="color: black;">&#40;</span>lst<span style="color: black;">&#41;</span>
    orta    = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>uzunluk/<span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">if</span> uzunluk <span style="color: #66cc66;">%</span> <span style="color: #ff4500;">2</span> == <span style="color: #ff4500;">1</span>:
        med = sıralı<span style="color: black;">&#91;</span>orta<span style="color: black;">&#93;</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        med = <span style="color: black;">&#40;</span>sıralı<span style="color: black;">&#91;</span>orta<span style="color: black;">&#93;</span> + sıralı<span style="color: black;">&#91;</span>orta-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span> / <span style="color: #ff4500;">2</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">return</span> med
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">&quot;__main__&quot;</span>:
    test1 = <span style="color: black;">&#91;</span><span style="color: #ff4500;">48</span>, <span style="color: #ff4500;">44</span>, <span style="color: #ff4500;">48</span>, <span style="color: #ff4500;">45</span>, <span style="color: #ff4500;">42</span>, <span style="color: #ff4500;">49</span>, <span style="color: #ff4500;">48</span><span style="color: black;">&#93;</span>
    test2 = <span style="color: black;">&#91;</span><span style="color: #ff4500;">9</span>, <span style="color: #ff4500;">3</span>, <span style="color: #ff4500;">3</span>, <span style="color: #ff4500;">44</span>, <span style="color: #ff4500;">17</span> , <span style="color: #ff4500;">17</span>, <span style="color: #ff4500;">44</span>, <span style="color: #ff4500;">15</span>, <span style="color: #ff4500;">15</span>, <span style="color: #ff4500;">15</span>, <span style="color: #ff4500;">27</span>, <span style="color: #ff4500;">40</span>, <span style="color: #ff4500;">8</span><span style="color: black;">&#93;</span>
    test3 = <span style="color: black;">&#91;</span><span style="color: #ff4500;">34</span>, <span style="color: #ff4500;">43</span>, <span style="color: #ff4500;">81</span>, <span style="color: #ff4500;">106</span>, <span style="color: #ff4500;">106</span>, <span style="color: #ff4500;">115</span><span style="color: black;">&#93;</span>
    test4 = <span style="color: black;">&#91;</span><span style="color: #ff4500;">13</span>, <span style="color: #ff4500;">18</span>, <span style="color: #ff4500;">13</span>, <span style="color: #ff4500;">14</span>, <span style="color: #ff4500;">13</span>, <span style="color: #ff4500;">16</span>, <span style="color: #ff4500;">14</span>, <span style="color: #ff4500;">21</span>, <span style="color: #ff4500;">13</span><span style="color: black;">&#93;</span>
    test5 = <span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span>, <span style="color: #ff4500;">2</span>, <span style="color: #ff4500;">4</span>, <span style="color: #ff4500;">7</span><span style="color: black;">&#93;</span>
    test6 = <span style="color: black;">&#91;</span><span style="color: #ff4500;">8</span>, <span style="color: #ff4500;">9</span>, <span style="color: #ff4500;">10</span>, <span style="color: #ff4500;">10</span>, <span style="color: #ff4500;">10</span>, <span style="color: #ff4500;">11</span>, <span style="color: #ff4500;">11</span>, <span style="color: #ff4500;">11</span>, <span style="color: #ff4500;">12</span>, <span style="color: #ff4500;">13</span><span style="color: black;">&#93;</span>
&nbsp;
    t = <span style="color: black;">&#91;</span>test1, test2, test3, test4, test5, test6<span style="color: black;">&#93;</span>
    a = <span style="color: #ff4500;">0</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">while</span> a <span style="color: #66cc66;">&lt;</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>t<span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> t:
            a += <span style="color: #ff4500;">1</span>
            <span style="color: #ff7700;font-weight:bold;">print</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>TEST%s&quot;</span><span style="color: #66cc66;">%</span>a<span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">print</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;dizi  : &quot;</span>, i<span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">print</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;mod   : &quot;</span>, mode<span style="color: black;">&#40;</span>i<span style="color: black;">&#41;</span>, <span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>
                  <span style="color: #483d8b;">&quot;medyan: &quot;</span>, median<span style="color: black;">&#40;</span>i<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Bilginizi ve yukarıdaki betiği sınamak için bunlarla ilgili biraz alıştırma yapmak isteyebilirsiniz. Bunun için şu iki adresi ziyaret edebilirsiniz:</p>
<p>1) <a href="http://www.mathgoodies.com/lessons/vol8/mode.html">http://www.mathgoodies.com/lessons/vol8/mode.html</a></p>
<p>2) <a href="http://www.mathopolis.com/questions/quiz.php">http://www.mathopolis.com/questions/quiz.php</a></p>
<p>Benim verdiğim ya da kendi yazdığınız mod-medyan hesaplama betiğini yukarıdaki adreslerde yer alan alıştırmalara uygulayın. Bakın bakalım betiğiniz mod-medyanı düzgün hesaplayabiliyor mu?</p>
<p><strong>[NOT]: Yukarıdaki örneklerde yer alan veri dizileri aşağıdaki adreslerden alınmıştır</strong></p>
<p><strong><a href="http://www.mathgoodies.com/lessons/vol8/mode.html">http://www.mathgoodies.com/lessons/vol8/mode.html</a></strong></p>
<p><strong><a href="http://www.mathsisfun.com/median.html">http://www.mathsisfun.com/median.html</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.istihza.com/blog/mod-ve-medyan.html/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

