Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Python / Zope

Cevapla
 
LinkBack Seçenekler
Eski 09/02/2008, 22:59   #1 (permalink)
iNN
Üye
 
Üyelik Tarihi: 05/2007
Yer: Sakarya
Mesaj: 116
Varsayılan python'u anlamaya yönelik sorular

arkadaşlar python ile ilgileniyorum bazı şeyler aklıma takıldı bazılarını anlayamadım..

a = "deneme"
for i in a: print i

bu kodu yazınca sırayla d, e, n,... harflerini yazıyor, burda i yerine başka bir harf kullanınca da aynı şey, ne manaya geliyor bu kod mantığını anlayamadım?

ikincisi şu şekilde birşey yapmak istiyordum: deneme.py dosyasına dışardan komut verilecek, örneğin deneme.py <rakam> yazınca yazdığım rakam kadar işlem yapacak. biraz araştırdım bunun sys kütüphanesiyle yapıldığını öğrendim(yanlışsa düzeltin) sanırım argv ile yapılıyormuş. buraya kadar doğruysa soruma geleyim..

idle ile çalışıyorum, sys kütüphanesini ekledim, daha sonra şu şekilde bir satır kabul ediliyor:

deneme = sys.argv[0]

burda 1. si argv[0] ne manaya geliyor, internetten birkaç örnek inceledim şu şekildeydi, deneme.py <argv1> <argv2> ...

fakat ben sys.argv[1] yaptığımda şu şekilde bir hata alıyorum:
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
asd = sys.argv[1]
IndexError: list index out of range

acaba yanlış şeyle mi uğraşıyorum?

aklımda bir sürü soru vardı ama unuttum aklıma geldikçe ekleme yapacağım

düzenleme: aklıma geldi, türkçe karater problemim var birde, idle da türkçe karakter kullandığımda problem olmuyor fakat kaydettiğimde türkçe karater varsa program açılmıyor, coding 1254 ü denedim yine olmadı, çalıştırma şeklimde şu şekilde: c:\python25\python.exe deneme.py.
iNN hatta değil   Alıntı Yaparak Yanıtla
Eski 10/02/2008, 14:16   #2 (permalink)
Üye
 
Üyelik Tarihi: 05/2004
Yer: İzmir
Mesaj: 28
Varsayılan

#dosya adi = deneme.py

import sys

adi = sys.argv[0]
soyadi = sys.argv[1]

print "Adi : ", adi
print "Soyadi : ", soyadi


################
bu kodları deneme.py adı ile kaydedip komut satırından;

python.exe deneme.py Ahmet Yilmaz

yazarsanız eknara

Adı = Ahmet
Soyadı = Yilmaz

yazar.


Eğer deneme.py den sonra isim ve soyisim olmak üzere iki değer girmezseniz hata mesajı alırsınız. Hata mesajı almak istemiyorsanız try, except kullanmalısınız.
Onderce hatta değil   Alıntı Yaparak Yanıtla
Eski 10/02/2008, 15:40   #3 (permalink)
iNN
Üye
 
Üyelik Tarihi: 05/2007
Yer: Sakarya
Mesaj: 116
Varsayılan

teşekkürler onderce, idle'da hala a= argv[1] yazdığımda hata mesajı veriyor ama programda kullandığımda çalıştı..

ilk soruma cevap verebilecek olan varmi?
iNN hatta değil   Alıntı Yaparak Yanıtla
Eski 10/02/2008, 16:11   #4 (permalink)
iNN
Üye
 
Üyelik Tarihi: 05/2007
Yer: Sakarya
Mesaj: 116
Varsayılan

bir soru daha sorayım, aşağıda yazdığım koddaki amacım, girilen şifrenin önce rakam olup olmadığını kontrol etmek, eğer rakam değilse hata mesajı vermek, rakamsa kontrol etmek ama bir türlü çalıştıramadım..

Kod:
sifre = "152045"

def kontrol(x):
    if x != sifre:
        print "sifre yanlis"
    else:
        print "afferim girdin"

def rakam(y):
    if type(y) != type(1):
        print "rakam gir"
        kontol(y)

a = raw_input("sifre gir:")
try rakam(a):
    return kontol(a)
except:
    print "yanlis girdin"
iNN hatta değil   Alıntı Yaparak Yanıtla
Eski 10/02/2008, 21:56   #5 (permalink)
Üye
 
Üyelik Tarihi: 05/2004
Yer: İzmir
Mesaj: 28
Varsayılan

İlk sorunuzda; a string bir değişkendir. Onu for döngüsüne sokarak döngünün her seferinde a değişkeninin tuttuğu değerin bir harfi ile işlem yapıyorsunuz. Bu döngüyü benim_adim = "Onder" değişkeni ile yaparsanız;

for i in benim_adim:
print i

her seferinde Onder'in bir harfini ekrana yazar. Aynı döngüyü for a in benim_adim seklinde de yazabilirdiniz veya

for siradaki_harf in benim_adim:
print siradaki_harf

String değer tutan bir değişkenle pek anlamlı görünmüyor ama farzedin ki veritabanından bir miktar veri çektiniz ve bunları bir değişkene atadınız.

Çektiğiniz veri 1-A sınıfındaki öğrencilerin isimleri olsun;

ogrenciler = ['Ahmet Yilmaz', 'Veli Kahraman', 'Sema Korkmaz', 'Cemil Kurt']


for siradaki_ogrenci in ogrenciler:
print siradaki_ogrenci, "1-A Sinifi Ogrencisidir"

dediğinizde aşağıdaki gibi bir çıktı alırsınız.

Ahmet Yilmaz 1-A Sinifi Ogrencisidir
Veli Kahraman 1-A Sinifi Ogrencisidir
Sema Korkmaz 1-A Sinifi Ogrencisidir
Cemil Kurt 1-A Sinifi Ogrencisidir



--
Onder Cankurt
Onderce hatta değil   Alıntı Yaparak Yanıtla
Eski 16/02/2008, 17:28   #6 (permalink)
iNN
Üye
 
Üyelik Tarihi: 05/2007
Yer: Sakarya
Mesaj: 116
Varsayılan

sonunda return kullanmadan yaptım, fakat return ün kullanımı istediğim şekilde olsaydı çok daha rahat olacaktı, hala return'un kullanımını anlayamadım, yaptığım şekli:

Kod:
sifre = 1234


def kontrol(gelen):
    if gelen == sifre:
        devam()
    else:
        print "yanlis sifre girdiniz"
        tekrar(giris)


def devam():
    print "guzel giris yaptin aferim"

def tekrar(yanlisgelen):
    print "sifre %d degil" % yanlisgelen


try:
    giris = int(raw_input("sifre gir la: "))
    kontrol(giris)
except:
    print "sifre rakam olcak"
burda yapamadığım şey şu: eğer şifre rakam girilmemişse veya yanlış girilmişse tekrar girise yönlendirilsin istiyorum, işte burda return u kullanmayı deniyorum ama olmuyor, nasıl yapabileceğimi bilen varmi?


onun dışında __init__ ve self i anlabilecek varmı? anladığım kadarıyla class'ların ilk fonksiyonları help __init__ oluyor, self i de hep şu şekilde görüyorum def __init__(self)
iNN hatta değil   Alıntı Yaparak Yanıtla
Eski 16/02/2008, 18:19   #7 (permalink)
iNN
Üye
 
Üyelik Tarihi: 05/2007
Yer: Sakarya
Mesaj: 116
Varsayılan

kodu şu şekilde değiştirdim sanırım daha iyi oldu
Kod:
sifre = 1234


def kontrol(gelen):
    if gelen != sifre:
        tekrar(gelen)

def devam():
    print "guzel giris yaptin aferim"

def tekrar(yanlisgelen):
    print "sifre %d degil" % yanlisgelen


try:
    giris = int(raw_input("sifre gir la: "))
    kontrol(giris)
except:
    print "sifre rakam olcak"
bu arada aklıma şu geldi, def deneme(giris="adasd") dediğimde eger fonksiyonu deneme() şeklinde çağırdığımızda giris'i adasd olarak alıyor- bunla yapabilirmiyim acaba diye düşündüm ama aklıma gelmedi
iNN hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Sertifikaya Yönelik Java Eğitimleri muharrem_tac Duyurular & İlanlar 0 01/11/2007 23:42
PHP ve Nesneye Yönelik Programlama... Sahin PHP 12 04/09/2007 21:09
projem hakkında sorular, sorular... mthT PHP 22 17/06/2004 02:13
Nesneye Yönelik Programlama! sımone Genel Programlama 4 29/04/2004 14:43
NYP: Nesneye Yönelik Programlama LEthaL C / C++ 2 29/05/2003 13:14


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 05:07.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net