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!'
Sonuçları alt alta çıkarma ve yazdırma (Yardım)
20
●12.333
- 07-10-2017, 15:18:15https://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Üyeliği durdurulduÖncelikle ilginiz için teşekkür ederim.zembla adlı üyeden alıntı: mesajı görüntüle
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:57return 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Ü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 - 07-10-2017, 16:33:13Hocam 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Üyeliği durdurulduTamamdı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 - 07-10-2017, 16:56:09Üyeliği durdurulduAynen ö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 ?zembla adlı üyeden alıntı: mesajı görüntüle