• 07-10-2017, 03:36:25
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar. Bir sitede bulduğum script üzerinde editleme yapmaya çalışıyorum, lakin çıkan sonuçları yani print ile gösterileni yan yana yazmaktan kurtaramadım. Birde aynı anda txt dokumana yazdırmaya çalışıyorum orada da hem yan yana hemde tırnak ve virgüller ile birlikte yazdırıyor.
    Amacım çıkan sonuçları (cc = kısmındaki) alt alta ve tırnaksız virgülsüz şekilde hem göstermesi hem txt e kaydetmesi.
    Scriptin son kısmı böyle. Yardımlarınız için şimdiden teşekkürler.
    # Test vectors
    tt = [ '1', '2', '3', '4']
    bb = [ '5', '6', '7', '8' ]
    cc = []

    for s in tt:

    cc.append(genarator(s))
    text_file = open("test.txt", "w")
    text_file.write("%s" % cc)
    text_file.close()

    print 'No ............', tt
    print 'No1 ......', bb
    print 'Sonuc ........', cc
    if cc != bb: print 'FAIL'
    else: print 'SUCCESS!'
  • 07-10-2017, 15:18:15
    #2
    https://repl.it/MP7R/0
    Listeyi string'e çeviren bir fonksiyon işinizi görebilir belki. Örnek kod yazdım ama tam istediğiniz bu mu bilemedim. cc listesinin son halini anlayamadım bu kodlardan. cc listesinin yapısına göre fonksiyonu uyarlamak gerekebilir.
  • 07-10-2017, 15:38:14
    #3
    Üyeliği durduruldu
    zembla adlı üyeden alıntı: mesajı görüntüle
    https://repl.it/MP7R/0
    Listeyi string'e çeviren bir fonksiyon işinizi görebilir belki. Örnek kod yazdım ama tam istediğiniz bu mu bilemedim. cc listesinin son halini anlayamadım bu kodlardan. cc listesinin yapısına göre fonksiyonu uyarlamak gerekebilir.
    Öncelikle ilginiz için teşekkür ederim.
    cc listesi için söyle söyliyim tt ve bb deki sayıları karşılaştırıp hesap yapıyor ve kodlarda da gözüktüğü gibi sonucu cc olarak verip onuda print atıyor ve aynı anda dosyaya yazdırıyor. Amacımda o çıktıları alt alta almak. Normalde çıktı şöyle oluyor {'sayı1', 'sayı2', 'sayı3' ] hem bunu sayı1 sayı2 sayı3 olarak alıp yazdırmak istiyorum hemde sayıları alt alta olsun istiyorum umarım anlatabildim Kbakmayın pek ilgilendiğim konu olmadıgından bu kadar anlatabiliyorum. Bu arada verdiğiniz kodu ekledim şöyle bir hata aldım. unexpected indent tt_metin = cevir(tt)
  • 07-10-2017, 16:11:57
    #4
    return altalta SyntaxError: 'return' outside function'
    Python'da girintler önemli. Bir kademe, iki kademe, üç kademe vs. boşuk olabiliyor kodlarda. Standart olarak dört boşluk kullanılıyor ama "tab" vs de işe yarayabiliyor. Tarayıcıdan kopyalayıp yapıştı deyince hata oluyor bazen.
    def cevir(p):
        altalta = ''                                           #dört boşluk var
        for e in p:                                           #dört boşuk var
            altalta = altalta + e + '\n'               #sekiz boşuk var
        return altalta                                   #dört boşuk var. Satır başından itibaren dört boşluk olacak vs..
    Girinrilerde hata var sanırım kopyala yapıştırdan ötürü. Kodunuzun diğer kısmında girintiler için kaç boşluk kullandıysa o kadar boşuk kullanın. Tek bir hata bile sorun olacak.
    cc şu şekilde anlıyorum ['3', '4', '1', '6'] vs
    şimdi yukarıdaki fonksiyonun düzgün çalıştırdığını varsayarsak
    cc_metin = cevir(cc)
    yazdığımızda
    cc_metin değişkeni "3\n4\n1\6\n' şeklinde olmalı \n işaretleri ekrana yazdırdığınızda gözükmeyecek tabi.
    print cc
    yaparsanız
    ['3', '4', '1', '6']
    çıktısını alırsınız, ki bunu istemiyoruz
    print cc_metin
    ise
    3
    4
    1
    8
    çıktısını vermeli
    text_file.write("%s" % cc)
    satırı yerine
    text_file.write(cc_metin)
    dosyaya da alta alta yazmalı

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:11:57 -->-> Daha önceki mesaj 16:06:12 --
  • 07-10-2017, 16:24:54
    #5
    Üyeliği durduruldu
    İlk hata gitti şuan gelen hata
    IndentationError: unexpected indent
    cc_metin = cevir(cc)
    zembla adlı üyeden alıntı: mesajı görüntüle
    return altalta SyntaxError: 'return' outside function'
    Python'da girintler önemli. Bir kademe, iki kademe, üç kademe vs. boşuk olabiliyor kodlarda. Standart olarak dört boşluk kullanılıyor ama "tab" vs de işe yarayabiliyor. Tarayıcıdan kopyalayıp yapıştı deyince hata oluyor bazen.
    def cevir(p): altalta = '' #dört boşluk var for e in p: #dört boşuk var altalta = altalta + e + '\n' #sekiz boşuk var return altalta #dört boşuk var. Satır başından itibaren dört boşluk olacak vs..
    Girinrilerde hata var sanırım kopyala yapıştırdan ötürü. Kodunuzun diğer kısmında girintiler için kaç boşluk kullandıysa o kadar boşuk kullanın. Tek bir hata bile sorun olacak.
    cc şu şekilde anlıyorum ['3', '4', '1', '6'] vs
    şimdi yukarıdaki fonksiyonun düzgün çalıştırdığını varsayarsak
    cc_metin = cevir(cc)
    yazdığımızda
    cc_metin değişkeni "3\n4\n1\6\n' şeklinde olmalı \n işaretleri ekrana yazdırdığınızda gözükmeyecek tabi.
    print cc
    yaparsanız
    ['3', '4', '1', '6']
    çıktısını alırsınız, ki bunu istemiyoruz
    print cc_metin
    ise
    3
    4
    1
    8
    çıktısını vermeli
    text_file.write("%s" % cc)
    satırı yerine
    text_file.write(cc_metin)
    dosyaya da alta alta yazmalı
  • 07-10-2017, 16:33:13
    #6
    Hocam girintilerde sorun var. Hep aynı şekilde kullan örneğin dört boşuk yerine üç boşluk yazarsan sorun olacak. Fonksiyonun üç satırı satır başından dört boşluk bir satırı satır başındna sekiz boşluk içeride başlamalı. Manuel olarak kontrol et istersen.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:33:13 -->-> Daha önceki mesaj 16:30:00 --

    Tüm kondunu kontrol et. Dikkat edersen bazı satırlar satır başından diğerleri belirli bir kademe içeriden (örneğin dört boşluk) diğerleri iki kademe içeriden (sekiz boşluk), diğerleri üç kademe içeriden (on iki boşuk vs.) başlıyor. Bunlar hep aynı olmalı. cevir() fonksiyonu kodunun geri kalanındaki standarda uygun olmalı. def cevir(p) satır başından başlıyor sonra 3 satır bir kademe içeriden bir satır ise iki kademe içeriden başlamalı.
  • 07-10-2017, 16:44:16
    #7
    Üyeliği durduruldu
    Tamamdır ardı ardına bir çok hata daha cıktı ama çok kurcalamaktan kodları bozmusum hepsinide hallettim.
    Çok teşekkür ederim. Sağol hocam.

    zembla adlı üyeden alıntı: mesajı görüntüle
    Hocam girintilerde sorun var. Hep aynı şekilde kullan örneğin dört boşuk yerine üç boşluk yazarsan sorun olacak. Fonksiyonun üç satırı satır başından dört boşluk bir satırı satır başındna sekiz boşluk içeride başlamalı. Manuel olarak kontrol et istersen.
  • 07-10-2017, 16:49:47
    #8
    Rica. Boza boza yapmayı öğreniyoruz hepimiz.
  • 07-10-2017, 16:56:09
    #9
    Üyeliği durduruldu
    zembla adlı üyeden alıntı: mesajı görüntüle
    Rica. Boza boza yapmayı öğreniyoruz hepimiz.
    Aynen öyle hocam, bu arada birşey daha sormak istiyorum. Bu scriptte tt = [ '1', '2', '3', '4'] kısmındaki sayıları ben tek tek manuel girmek zorunda kalıyorum buda edit vs uğraştırıyor. Bu sayıları bir txt file den çekebilirmiyiz ?