PayPal'a üye olun ve kredi kartı ödemelerini kabul etmeye anında başlayın.
 

Python dili ile algoritma örnekleri

Python Python dili ile algoritma örnekleri Programlama Dilleri hakkında bilgi paylaş; python algoritmaya başlamak için iyi bir dildir. kendim pythona başlarken yazdığı...
Cevapla
 
Seçenekler
  #1  
Arama 24-11-2007, 03:50
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of

Python dili ile algoritma örnekleri

python algoritmaya başlamak için iyi bir dildir.
kendim pythona başlarken yazdığım birkaç öğneği paylaşmak istiyorum.
alıp özgür bir şekilde paylaşabilir değiştirebilirsiniz!
TEK ŞART kodun içindeki #kodlama: banias yazınısı silmeyiniz

zipli arşivi içindekileri ekrana düzün bir şekilde yazdırır
formatı şu şekildedir

dosya adi boyutu son boyutu sıkıştırılma yuzdesi
dosya1 100 50 %50
dosya2 100 50 %50

HTML-Kodu:
#!/usr/bin/python
#kodlama: banias
import zipfile
zipli = zipfile.ZipFile("/home/banias/zipli.zip")
#print zipli.namelist()
for i in range (0,30):
	print ""
print "-"*47
print "   dosya adi "," "*5,"boyut   ", "son    ", "yuzde"
print "-"*47
for i in zipli.infolist():
	yuzde = (i.file_size*1.0 - i.compress_size*1.0)/i.file_size*10000.0
	yuzde = int(yuzde)/ 100.0
	g=len(str(yuzde))
	h=5-g
	a=len(i.filename)
	b=16-a
	c=len(str(i.file_size))
	d=6-c
	e=len(str(i.compress_size))
	f=6-e
	print "| ",i.filename,"-"*b, i.file_size,"-"*d, i.compress_size,"-"*f, yuzde,"%"," "*h,"|"
print "-"*47
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
  #2  
Arama 24-11-2007, 03:54
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of

python ile linux komutu çalıştırmak

bu örnek pyhton ile linux komutlarına nasıl ulaşabileceğiniz gösterebilir
bu örnekte wget i kullandır mesela


Kod:
#!/usr/bin/python
#kodlama: banias
import os
adresgif = "http://members.comu.edu.tr/nyucel/bm110/comu.gif"
adreshash = "http://members.comu.edu.tr/nyucel/bm110/MD5SUM"
print "LUFEN BEKLEYIN: \n dosyalar indiriliyor"
os.system ("wget "+ adresgif)
os.system ("wget "+ adreshash)
print "dosyalar indirildi"
hash1 = os.system("md5sum comu.gif")
#hash1 = open('MD5SUM2',"r")
hash2 = open('MD5SUM' ,"r")
#hash1 = hash1.readlines()
hash2 = hash2.readlines()
hash1 = str(hash1)
hash2 = str(hash2)
hash1 = hash1[:34]
hash2 = hash2[:34]
print hash1 ,": resim dosyasinin imzasi"
print hash2 ,": indirilen imza"
if hash1 == hash2:
	print "dosya duzgun indirilmis"
else:
	print "dosya hatali indirilmis olabilir"
yaptığı şey:
"http://members.comu.edu.tr/nyucel/bm110/comu.gif" gif dosyasını indiriyor
"http://members.comu.edu.tr/nyucel/bm110/MD5SUM" dosyanın MD5 imzanısını indiriyor
imzayı okuyor, gif dosyasının imzasını alıyor ikisi aynı ise dosya başarıyla indirildi yazıyor.
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
  #3  
Arama 24-11-2007, 04:00
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of

pyhton ile sayısal lotoya para vermek istemeyenler için : )

birgün otururken 3 arkadaş iddaya girdik
hepimiz matematiği iyi derecede biliriz ama ben mantık olarak sayısal lotoda
1,2,3,4,5,6 gibi ardaşık gelmesinin 1,5,12,32,37,40 gibi bir sayı gelmesinden daha düşük olduğunu söyledim ve denedik : )

Kod:
#!/usr/bin/python
#kodlama: banias

import random
kackolon = int(raw_input("kac kolon oynamak istiyorsun?: "))
kolonlar = []
guvenc=[6,12,16,21,43,48]
emre=[1,2,3,4,5,6]
orcun=[11,12,13,14,15,16]
for a in range (0,kackolon):
	kutu = range(1,50)
	kolon = []
	for i in range (0,6):
		temp = random.choice(kutu)
		kolon.append(temp)
		kutu.remove(temp)
	kolon.sort()
	if kolon == guvenc:
		print "guvenc kazandi"
		break
	if kolon == emre:
		print "emre kazandi"
		break
	if kolon == orcun:
		print "orcun kazandi"
		break
	if kolonlar.count(kolon) < 0:
		a=a-1
	else:
		kolonlar.append(kolon)
guvenc=[6,12,16,21,43,48]
emre=[1,2,3,4,5,6]
=[11,12,13,14,15,16]
oynadığımız kolonlar bunlardı : ) güvenç benim

bu arada orcunun yazdığı başka bir örnek için:

biz 15 dakika falan bekledik kimse kazanmadı : ) sıkıldık kapattık hatta bu anların youtube da videosu da var.
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
  #4  
Arama 24-11-2007, 04:03
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of

yılana sayısal loto oynatın

python a sayısal loto oynatın

Kod:
#!/usr/bin/python
#kodlama: banias
import random
kackolon = int(raw_input("kac kolon oynamak istiyorsun?: "))
kolonlar = []
for a in range (0,kackolon):
	kutu = range(1,50)
	kolon = []
	for i in range (0,6):
		temp = random.choice(kutu)
		kolon.append(temp)
		kutu.remove(temp)
	kolon.sort()
	if kolonlar.count(kolon) < 0:
		a=a-1
	else:
		kolonlar.append(kolon)
kac = 1
for i in kolonlar:
	print kac, ": " ,	
	print i
	kac = kac+1
bir oynadığı 6 lı diziyi bir daha oynamaz merak etmeyin
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
  #5  
Arama 24-11-2007, 04:06
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of

python ile menü örneği

Kod:
#!/usr/bin/python
#kodlama: banias
def fonk1():
	print "menude fonk1 calisti"
def fonk2():
	print "menude fonk2 calisti"
def fonk3():
	print "program kapaniyor : ) kisacasi"
def fonk4():
	print "menude fonk4 calisti"
secenek = ""
menu= {
	'a':fonk1,
	'b':fonk2,
	'c':fonk3,
	'd':fonk4
	}
while secenek <> 'c':
	secenek = raw_input("bisey gir: ")
	menu[secenek]()
while secenek <> 'c': yani c girdiğinizde c ye karşılık gelen fonk3() çalışır ve while sonlanır
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
  #6  
Arama 24-11-2007, 04:10
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of

python ile matris işlemleri, matris çarpma toplama, transpoze (menü ile yapılmıştır)

Kod:
#!/usr/bin/python
#kodlama: banias
import random
for i in range(0,40):
	print ""
g = int(raw_input('kare matrislerin sutun sayisi?: '))
def matrisolustur1():
	global matris1
	matris1=[]
	for a in range (0,g):
		temp = []
		for i in range (0,g):
			a = random.randrange(3,10)
			temp.append(a)
		matris1.append(temp)
def matrisolustur2():
	global matris2
	matris2=[]
	for a in range (0,g):
		temp = []
		for i in range (0,g):
			a = random.randrange(1,20)
			temp.append(a)
		matris2.append(temp)
matrisolustur1()
matrisolustur2()
def bas(matris):
	for i in matris:
		print i
print "birinci matris"
bas(matris1)
print ""
print "ikinci matris"
bas(matris2)
def matristopla():
	global matris3
	matris3=[]
	for i in range(0,g):
		temp=[]
		for a in range(0,g):
			temp.append(matris1[i][a]+matris2[i][a])
		matris3.append(temp)
	bas(matris3)
def matristranspoze():
	global matris3
	matris3=[]
	for i in range(0,g):
		temp=[]
		for a in range(0,g):
			temp.append(matris1[a][i])
		matris3.append(temp)
	bas(matris3)
def matriscarp():
	global matris3
	matris3=[]
	temp2=[]
	for x in range(0,g):
		for i in range(0,g):
			temp=[]

			for a in range(0,g):
				temp.append(matris1[x][a]*matris2[a][i])
			sayi = 0
			for t in temp:
				sayi = sayi + t
			temp2.append(sayi)
	for a in range (0,g):
		temp=[]
		for i in range (0,g):
			kac = a*g + i
			temp.append(temp2[kac])
		matris3.append(temp)
	bas(matris3)
menu = {
	"1" : matriscarp,
	"2": matristopla,
	"3": matristranspoze,
	}
print """
1 - carp
2 - topla
3 - transpoze alma"""
menune = raw_input("ne islemi yapacaksin ?: ")
print ""
menu[menune]()
programı çalıştırdığınızda
3*3 boyutlarında rastgele sayılardan bir matris oluşturur ve bunları ekrana yazar

ne yapmak istediğinizi sorar
1 - carp
2 - topla
3 - transpoze al

2 girdiğinizde iki matrisi çarpar

genelde matris çarpma işlemi ilk etapta karmaşık gelir. python ile matris çarpma için iyi bir örnek
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
  #7  
Arama 24-11-2007, 04:16
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of

python vize, final , sınav soruları : )

bu en sevdiğim örneklerden biri
bu soruyu bize vize sorusu olarak sormuştu hocamız. Sıvandaki tek soru buydu ve 100 puan değerindeydi.
SORU ÖZET: eski zamanda yaşayan bir kral var ve 1000 tane askeri var.
askerleri halka oluşturacak şekilde (yağ satarım bal satarım oynar gibi) diziyor.
birinci askere kılıcı veriyor, kılıç kimdeyse sağındakini öldürüp kılıcı diğerine veriyor.

yani ilk etapta
1 2 3 4 5 6 7 8 .........

varken
1 * 3 * 5 * 7 *.....

şeklinde ölüp devam ediyor. kaçıncı sıradaki asker hayatta kalır?

bunu biraz daha dinamik yazdım ben

kaç asker olduğunu ve ilk başta kılıcı kime vereceğinizi size soruyor program : )
vede çok pratik yani kısa bir çözüm oldu.

Kod:
#!/usr/bin/python
#kodlama: banias
dizi=[]
a=int(raw_input("kac kisi?: "))
basla=int(raw_input("kacinci kisiden baslasin?: "))
for i in range(1,a+1):
	dizi.append(i)
while len(dizi) > 1:
	dizi.remove(dizi[basla])
	basla = basla + 1
	if basla >= len(dizi):
		basla = basla%len(dizi)
print dizi
python ile dizi işlemleri için örnek olabilir
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
banias için teşekkür eden üyeler:
  #8  
Arama 24-11-2007, 04:21
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of

python ve zarlar

10000 tane zar atıyor bunların içinden
kaç tanesi 6 - 6 kaç tanesi 5 - 3 geldi bunları ekrana yazıyor : )

Kod:
#!/usr/bin/python
#kodlama: banias
import random
for i in range (0,40):
	print ""
for i in range (0,7):
	print """            """,
	for t in range (0,7):
		ali = i*7+t+1
		if ali < 10:
			print "",ali,
		else:
			print ali,
	print ""

print ""
print ""
def fak(a):
	sayi = 1
	for i in range (0,a):
		sayi = sayi*(i+1)
	return sayi
#print 1.0/(fak(49)/(fak(6)*fak(43))*1.0)
c=0
d=0
for i in range(0,10000):
	a=random.randrange(1,7)
	b=random.randrange(1,7)
	if a==5 and b==3:
		c=c+1
	if a==6 and b==6:
		d=d+1
print "5,3 sayisi: ",c
print ""
print "6,6 sayisi: ",d
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
banias için teşekkür eden üyeler:
  #9  
Arama 24-11-2007, 04:28
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of

bloklu yapıyı anlamak

bu güzel bir örnek değil ama siz yinede inceleyin

magic matris diye birşey vardır, tüm satırlarının ve tüm sutunlarının toplamı birbirine eşit olur. matris kare olmak zorundadır. 3*3 bir magic matrisin tüm elemanları 0 1 2 3 4 5 6 7 8 dir.

programın yaptığı:
4*4 lük magic matris oluşturana kadar debeleniyor. eğer oluşturabildiyse ekrana yazıyor.

bu da ayrı bir sınav sorusu idi 100 puan değerinde. ama en doğru çözümü bu olmayabilir.

Kod:
#!/usr/bin/python
#kodlama: banias
import random
def matrisyap():
	global matris
	elemanlar=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
	matris = [0]
	for i in range(0,15):
		b = len(elemanlar)
		a=random.randrange(0,b)
		matris.append(elemanlar[a])
		elemanlar.remove(elemanlar[a])
while 1:
 matrisyap()
 if(matris[0]+matris[1]+matris[4]+matris[5] == 30):
  if(matris[1]+matris[2]+matris[5]+matris[6] == 30):
   if(matris[2]+matris[3]+matris[6]+matris[7] == 30):
    if(matris[3]+matris[4]+matris[7]+matris[8] == 30):
     if(matris[4]+matris[5]+matris[8]+matris[9] == 30):
      if(matris[5]+matris[6]+matris[9]+matris[10] == 30):
       if(matris[6]+matris[7]+matris[10]+matris[11] == 30):
        if(matris[7]+matris[8]+matris[11]+matris[12] == 30):
         if(matris[8]+matris[9]+matris[12]+matris[13] == 30):
          if(matris[9]+matris[10]+matris[13]+matris[14] == 30):
           if(matris[10]+matris[11]+matris[14]+matris[15] == 30):
            print matris
anahtarlar: algoritma sınav sorusu, python sınav sorusu, magic matris nedir?, programlama
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
  #10  
Arama 24-11-2007, 04:34
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of

?ipv6 adresimi değil mi?

ipv4 şu anda kullandığımız iplerdir.
gelencekte hatta şu anda yeni yeni kullanılmaya başlanan teknoloji ipv6 dır.
ve şimdikinden kat kat daha fazla ip adreslemeye izin verir.

programın yaptığı:
girilen bir ip yi kontrol ediyor ipv6 adresi mi? değil mi?
sonra ipv6 ise kısaltabilecekmi diye bakıyor.
kısaltabilecekse kısaltıyor.
kısa halini ekrana yazıyor.

Kod:
#!/usr/bin/python
#kodlama: banias
ip=raw_input('ipv6 adresini giriniz : ')
if ip.count(":") != 7:
	print "kisa veya uzun ip adresi"
	exit
y = ip
ip = ip.split(":")
sayilar=["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"]
for i in ip:
	if len(i) == 0:
		print "zaten kisa bir ip"
		break
	if len(i) > 4 :
		print "bloklarin birisi gereginden fazla uzun"
		break
	for a in i:
		a = str(a)
		if sayilar.count(a) != 1:
			print "gecersiz ip adresi"
			exit
y = y.replace ("0000:0000:0000:0000:0000:0000:0000:0000","::")
y = y.replace ("0000:0000:0000:0000:0000:0000:0000",":")
y = y.replace ("0000:0000:0000:0000:0000:0000","")
y = y.replace ("0000:0000:0000:0000:0000","")
y = y.replace ("0000:0000:0000:0000","")
if (y.count("0000:0000:0000") >= 2) or (y.count("0000:0000") >= 2) or (y.count("0000") >= 2):
	print "ip kisaltilamaz"
else:
	y = y.replace ("0000:0000:0000","")
	y = y.replace ("0000:0000","")
	y = y.replace ("0000","")
print y
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
  #11  
Arama 24-11-2007, 04:36
banias - ait Kullanıcı Resmi (Avatar)
Pseudo Coder
Üyelik Tarihi: 23/08/07
Mesajlar: 1.177
 
     WS-Ticareti: (2)
Blog Yazıları: 2
Teşekkürleri: 9
99 Msg. 177 Tşkr.
Rep Gücü: 100 banias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud ofbanias has much to be proud of
Bu kodlar internette sadece webmastersitesi.com da mevcuttur ve hepsi banias tarafından yazılıştır.
Python ile ilgili sorularınız için özel mesaj gönderebilirsiniz.

Lütfen kaynak belirtmeden kopyalamayınız ve #kodlama: banias yazılarını silmeyiniz
__________________
| | |
| |
|
|
|
Alıntı ile Cevapla
  #12  
Arama 11-03-2008, 10:53
darkfeeL - ait Kullanıcı Resmi (Avatar)

Üyelik Tarihi: 29/08/07
Mesajlar: 21
 
     WS-Ticareti: (0)
Teşekkürleri: 0
1 kez tşk. almış
Rep Gücü: 0 darkfeeL rep gücü yükselmeye başladı
Çok iyi. Başarılar dilerim
__________________
[|] 4ever Frantic! [|]
Alıntı ile Cevapla
  #13  
Arama 08-06-2008, 09:36

Üyelik Tarihi: 08/06/08
Mesajlar: 2
 
     WS-Ticareti: (0)
Teşekkürleri: 1
0 Msg. 0 Tşkr.
Rep Gücü: 0 zakhar deneyimleri belirsiz.
valla çok güzel bilgiler çok yardımcı oldu teşekkürler...
Alıntı ile Cevapla
Cevapla


Seçenekler