[]
python, listedeki degerleri numaralandirma
bi dosya var, dosya icinde sayilar var, o listedeki 1. sayi ile 2.sayiyi, 2. sayi ile 3.sayiyi toplayip, 3. ile 4. toplayip ... cikan degerleri baska bi doyaya yazmak istiyorum. dosyadaki degerleri okuyabilmeyi anladim da bi turlu o loop'u yazmaya basaramadim, kolaydir bence bilene de, bi el atin lutfen.
tesekkur.
f=open("hop.txt","r")
num=f.readlines()
for i in range(lfor i in range(len(num)):
gibi seyler yapiyorum da olmuyor.
dosyanin icerigi de
1
2
3
4
5
olsun.
tesekkur.
f=open("hop.txt","r")
num=f.readlines()
for i in range(lfor i in range(len(num)):
gibi seyler yapiyorum da olmuyor.
dosyanin icerigi de
1
2
3
4
5
olsun.
f=open("numbers.txt","r");
numbers=f.readlines();
resultList=[]
for i in range(1,len(numbers)):
-----resultList.append(int(numbers[i-1])+int(numbers+[i]));
buna benzer birşey olması lazım
numbers=f.readlines();
resultList=[]
for i in range(1,len(numbers)):
-----resultList.append(int(numbers[i-1])+int(numbers+[i]));
buna benzer birşey olması lazım
- milistroke (03.09.12 13:31:36 ~ 13:46:01)
selam.
ne yaptiginizi anladim. python bilmiyorum dediniz diye soyleme geregi hissetim, belki biliyorsunuz da python saymaya sifirdan basliyor. ben de bi seyler degistirdim, ettim de olmadi maalesef, "IndexError: list assignment index out of range" diyor, sanirim sinirlarla/saymayla ilgili sorun da onu da cozemedim maalesef. benim denedigim hali de su sekilde:
f=open("hop.txt","r")
numbers=f.readlines()
resultList=[]
for i in range(0,(len(numbers)-2)):
resultList[i]=float(numbers[i])+float(numbers[i+1])
print resultList()
-o da 5 sayi varya, len deyince 5 sayi oldugunu buluyor. iki cikardik, 3.
bize de 0, 1, 2, 3 kaliyo loop icin. ki zaten 5 deger oldugu icin 4 degerimiz olmasi lazim da olmadi maalesef.
ne yaptiginizi anladim. python bilmiyorum dediniz diye soyleme geregi hissetim, belki biliyorsunuz da python saymaya sifirdan basliyor. ben de bi seyler degistirdim, ettim de olmadi maalesef, "IndexError: list assignment index out of range" diyor, sanirim sinirlarla/saymayla ilgili sorun da onu da cozemedim maalesef. benim denedigim hali de su sekilde:
f=open("hop.txt","r")
numbers=f.readlines()
resultList=[]
for i in range(0,(len(numbers)-2)):
resultList[i]=float(numbers[i])+float(numbers[i+1])
print resultList()
-o da 5 sayi varya, len deyince 5 sayi oldugunu buluyor. iki cikardik, 3.
bize de 0, 1, 2, 3 kaliyo loop icin. ki zaten 5 deger oldugu icin 4 degerimiz olmasi lazim da olmadi maalesef.
- c non (03.09.12 14:24:16 ~ 14:25:08)
selamlar,
ben kodu güncelledim bir de ona bakın.
ben kodu güncelledim bir de ona bakın.
- milistroke (03.09.12 14:26:46)
maalesef olmadi o da: "ValueError: invalid literal for int() with base 10: '1.0\n'"
bi de son satirda yazdiginiz son satirda "int(numbers+[i]"da bi hata var mi?
bi de son satirda yazdiginiz son satirda "int(numbers+[i]"da bi hata var mi?
- c non (03.09.12 15:11:36)
dosyanın içinde sayı dışında birşey varsa onu integer'a cast ederken hata veriyor olabilir. gelen değerler için kontrol yapmak gerekir o zaman da:
for i in range(1,len(numbers)):
-----if math.isnan(numbers[i-1])==0 and math.isnan(numbers[i])==0:
-----------resultList.append(int(numbers[i-1])+int(numbers+[i]));
bu arada sayılar eğer küsüratlıysa int yerine float yazın.
for i in range(1,len(numbers)):
-----if math.isnan(numbers[i-1])==0 and math.isnan(numbers[i])==0:
-----------resultList.append(int(numbers[i-1])+int(numbers+[i]));
bu arada sayılar eğer küsüratlıysa int yerine float yazın.
- milistroke (03.09.12 15:22:59 ~ 15:25:00)
-"name 'math' is not defined"
bi de: "&&" "math" ve "isnan" nedir?
bi de: "&&" "math" ve "isnan" nedir?
- c non (03.09.12 15:30:36)
&& logical AND anlamına gelir. ama python'da "and" yazmak lazımmış. isnan'da math librarysinde bir fonksiyon: "is not a number" anlamına gelir, true ya da false döndürür. dosyanın başını ve sonunu kopyalasanız buraya daha kolay olur.
kodun başına "import math" yazın
kodun başına "import math" yazın
- milistroke (03.09.12 15:33:28)
dosya o kadar. ben burda bunu becerip asil koduma koyucam bunlari, once sunu kotarmam gerek. o yuzden kod bu kadar. sunu anlasam, cok az benzerini mekanik bi seyi modellemede kullanicam.. deniyorum hemen.
- c non (03.09.12 15:41:36)
File "liste.py", line 10, in <module>
if math.isnan(numbers[i-1])==0 and math.isnan(numbers[i])==0:
TypeError: a float is required
dedi simdi de.
denedigim son hal de su:
import math
f=open("hop.txt","r")
numbers=f.readlines()
resultList=[]
for i in range(1,len(numbers)):
if math.isnan(numbers[i-1])==0 and math.isnan(numbers[i])==0:
resultList.append(int(numbers[i-1])+int(numbers+[i]))
print resultList()
if math.isnan(numbers[i-1])==0 and math.isnan(numbers[i])==0:
TypeError: a float is required
dedi simdi de.
denedigim son hal de su:
import math
f=open("hop.txt","r")
numbers=f.readlines()
resultList=[]
for i in range(1,len(numbers)):
if math.isnan(numbers[i-1])==0 and math.isnan(numbers[i])==0:
resultList.append(int(numbers[i-1])+int(numbers+[i]))
print resultList()
- c non (03.09.12 15:45:19 ~ 15:47:00)
dediğim gibi, dosyada sayı dışında karakterler okundugu için hata veriyor convert ederken. şöyle çalışması lazım:
import re;
for i in range(1,(len(numbers))):
----resultList.append(float(re.sub(r'\s','',numbers[i-1])+float(re.sub(r'\s','',numbers[i]));
print resultList()
gelen her string'in içinde eğer \n,\t,\a gibi karakterler varsa onları kaldırıyor ardından float'a çevirip topluyor...
import re;
for i in range(1,(len(numbers))):
----resultList.append(float(re.sub(r'\s','',numbers[i-1])+float(re.sub(r'\s','',numbers[i]));
print resultList()
gelen her string'in içinde eğer \n,\t,\a gibi karakterler varsa onları kaldırıyor ardından float'a çevirip topluyor...
- milistroke (03.09.12 16:18:23)
listede sayidan baska bi sey yok.
yine de calismadi, ve cok ilginc en sonda veriyor hatayi da. ki son satiri siliyim, son satir da print, hata yine oluyor:
hata veren hali de su:
import re
f=open("hop.txt","r")
numbers=f.readlines()
resultList=[]
for i in range(1,(len(numbers))):
resultList.append(float(re.sub(r'\s','',numbers[i-1])+float(re.sub(r'\s','',numbers[i]))
print (resultList)
yine de calismadi, ve cok ilginc en sonda veriyor hatayi da. ki son satiri siliyim, son satir da print, hata yine oluyor:
hata veren hali de su:
import re
f=open("hop.txt","r")
numbers=f.readlines()
resultList=[]
for i in range(1,(len(numbers))):
resultList.append(float(re.sub(r'\s','',numbers[i-1])+float(re.sub(r'\s','',numbers[i]))
print (resultList)
- c non (03.09.12 16:39:44)
eksik parantez koymuşum da o yüzden...
resultList.append(float(re.sub(r'\s','',numbers[i-1]))+float(re.sub(r'\s','',numbers[i])))
resultList.append(float(re.sub(r'\s','',numbers[i-1]))+float(re.sub(r'\s','',numbers[i])))
- milistroke (03.09.12 17:52:22)
selam selam,
sizinkilerden de faydalanip soyle bi sey yazdim, sansin ve sonuna kadar yardiminiz yardimiyla calisti:
f=open("hop.txt","r")
numbers=f.readlines()
liste=[]
for i in range(0,(len(numbers)-1)):
toplam=float(numbers[i])+float(numbers[i+1])
print "toplam lan:", toplam
liste.append(toplam)
print("#######")
print(liste)
cidden cok saol!!
sizinkilerden de faydalanip soyle bi sey yazdim, sansin ve sonuna kadar yardiminiz yardimiyla calisti:
f=open("hop.txt","r")
numbers=f.readlines()
liste=[]
for i in range(0,(len(numbers)-1)):
toplam=float(numbers[i])+float(numbers[i+1])
print "toplam lan:", toplam
liste.append(toplam)
print("#######")
print(liste)
cidden cok saol!!
- c non (03.09.12 18:37:59)
sadece tek sorun kaldi, bu listedekileri bi dosyaya yazmak gerek, bokunu cikarmis gibi olcam ama o nasil olacak?
soyle bi sey denedim, yemedi:
f=open("hop.txt","r")
numbers=f.readlines()
liste=[]
for i in range(0,(len(numbers)-1)):
file=open("data.txt","a")
toplam=float(numbers[i])+float(numbers[i+1])
print "toplam lan:", toplam
liste.append(toplam)
file.write(toplam)
file.close()
print("#######")
print(liste)
soyle bi sey denedim, yemedi:
f=open("hop.txt","r")
numbers=f.readlines()
liste=[]
for i in range(0,(len(numbers)-1)):
file=open("data.txt","a")
toplam=float(numbers[i])+float(numbers[i+1])
print "toplam lan:", toplam
liste.append(toplam)
file.write(toplam)
file.close()
print("#######")
print(liste)
- c non (03.09.12 18:44:34)
tamam işte onun için de ayrı bi file açıp write ile yazdıracaksınız, doğru olmuş. ama write sadece string kabul ediyor o nedenle de str kullanarak string'e typecast edeceksiniz. yazdıgınız değerden sonra satır başı yapmak istiyorsanız da "\n" karakterini ekleyeceksiniz. yani:
sayi=21.1212;
file=open("hede","w"); //"a" derseniz dosya varsa sonuna ekler
file.write(str(sayi)+"\n");
file.close();
resultList'e gerek yok o zaman.
append yapacağınız yerde file.write(str(total)+"\n"); deseniz de olur...
sayenizde python öğreniyorum ben de :}
sayi=21.1212;
file=open("hede","w"); //"a" derseniz dosya varsa sonuna ekler
file.write(str(sayi)+"\n");
file.close();
resultList'e gerek yok o zaman.
append yapacağınız yerde file.write(str(total)+"\n"); deseniz de olur...
sayenizde python öğreniyorum ben de :}
- milistroke (03.09.12 19:04:41 ~ 19:06:23)
oldu. son halini de koyim, biri bakar eder falan:
f=open("hop.txt","r")
numbers=f.readlines()
liste=[]
for i in range(0,(len(numbers)-1)):
file=open("hoppa.txt","a")
toplam=float(numbers[i])+float(numbers[i+1])
print "toplam lan:", toplam
liste.append(toplam)
file.write(str(toplam)+"\n")
file.close()
print("#######")
print(liste)
cok saol tekrar tekrar
f=open("hop.txt","r")
numbers=f.readlines()
liste=[]
for i in range(0,(len(numbers)-1)):
file=open("hoppa.txt","a")
toplam=float(numbers[i])+float(numbers[i+1])
print "toplam lan:", toplam
liste.append(toplam)
file.write(str(toplam)+"\n")
file.close()
print("#######")
print(liste)
cok saol tekrar tekrar
- c non (03.09.12 21:17:26)
1