Форум сайта python.su
0
Уважаемые форумчаны,
Подскажите плиз где допускаю ошибку или не понимаю.
Суть: У меня есть следующая таблица в текстовом файл.
ns1 6 -3
ns2 6 -3
ns3 7 -4
ns4 8 -2
ns5 8 -3
ns6 7 -2
ns7 6 -1
Добавляю, к примеру, на второй столбец постоянную 2.
Должно получится следующее
ns1 8 -3
ns2 8 -3
ns3 9 -4
ns4 10 -2
ns5 10 -3
ns6 9 -2
ns7 8 -1
Вот код, который я написал
import os import sys class cc_cat: def __init__(self,line): list=line.split() self.all=line self.fn=str(list[0]) self.dx=float(list[1]) self.dy=float(list[2]) fc=open('f1.txt','r') ddx=2 ddy=5 tocal=[] for li in fc: mycat=cc_cat(li) mycat.dx=ddx+mycat.dx # mycat.dy=ddy+mycat.dy print mycat.all fc.close()
Офлайн
6
Переименуйте list
Офлайн
0
FirikКак?
Переименуйте list
Офлайн
6
Вместо
list=line.split()
string_list=line.split()
Офлайн
0
FirikНе, не помогает!
Вместо
Офлайн
16
Вы изменяете атрибут mycat.dx, а принтом выводите атрибут, который не менялся
Офлайн
6
glsmen
И не поможет, но так надо. В вашем случае, чтобы изменить данные и вывести их, нужно использовать свойства.
На 3 питоне я бы сделал так
import os
import sys
class cc_cat:
def __init__(self,line):
s_list=line.split(' ')
self.fn=str(s_list[0])
self.dx=float(s_list[1])
self.dy=float(s_list[2])
@property
def all(self):
return [self.fn, self.dx, self.dy]
fc= "ns1 8 -3"
ddx=2
ddy=5
mycat=cc_cat(fc)
mycat.dx=ddx+mycat.dx
# mycat.dy=ddy+mycat.dy
print(mycat.all)
Отредактировано Firik (Май 3, 2016 16:16:48)
Офлайн
0
Firik
glsmenИ не поможет, но так надо. В вашем случае, чтобы изменить данные и вывести их, нужно использовать свойства.На 3 питоне я бы сделал так
Офлайн
0
Firik
И не поможет, но так надо. В вашем случае, чтобы изменить данные и вывести их, нужно использовать свойства.На 3 питоне я бы сделал так
for li in fc: mycat=cc_cat(li) mycat.dx=mycat.dx+ddx mycat.dy=mycat.dy+ddy mm=str(mycat.fn)+' '+str(mycat.dx)+' '+str(mycat.dy) print mycat.all tocal.append(mm) #print tocal for li1 in tocal: print li1 fc.close()
Офлайн