Найти - Пользователи
Полная версия: с чего начать? хочу написать код
Начало » Python для новичков » с чего начать? хочу написать код
1 2 3
Olyaleo
там где мы присваиваем row = “abcd” из table.csv данные вообще не изменяются, это константа. А вот в таблице input1.csv буквенные коды менятся, там могут быть:
1    dfsaas    cccc    242
2 dfsaas bbbb 242
3 dfsaas aaaa 242
4 dfsaas dddd 242
5 dfsaas caac 242
6 dfsaas bdab 242
7 dfsaas acdb 242
8 dfsaas dddc 242
т.е. всевозможные комбинации “a” “b” “c” “d” букв.
Верно, если это будет комбинация “сссс”, то сумма = сумме всех значений столбца “с”, т.е. = 88.
Griffon, судя по результатом вашего кода, расчет производится верно. Но, к сожалению, у меня не получается запустить этот скрипт у себя на компьютере.
Griffon
Подредактировали где я сказал?
Какая ошибка теперь?
Griffon
Ага. Cтолбца значит. То есть “abcd” уникальные имена столбцов. А мы даём в файле инпут имя столбца для каждой строки.
то есть:
a b c d
0 0 1 0 c
0 0 1 0 c
0 0 1 0 c
0 1 0 0 b

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv
import math

cols = "abcd"
result = []

table = open('table.csv')
data = []
for string in table.readlines():
data.append(map(int, string.rstrip().split(',')))

inputs = open('input1.csv')
for string in inputs.readlines():
rows = string.split(',')[2].strip()
summa = 0
for i, char in enumerate(rows):
summa += data[i][cols.index(char)]
result += [summa]

print(result)
Разделитель в input.csv запятая я надеюсь.

Или всётаки сумма элементов строки? Как это обьяснялось вами же ранее.

с с с с (из файла)
0 0 0 0 а
0 0 0 0 b
1 1 1 1 c
0 0 0 0 d
?
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv
import math

rows = "abcd"
result = []

table = open('table.csv')
data = []
for string in table.readlines():
data.append(map(int, string.rstrip().split(',')))

inputs = open('input1.csv')
for string in inputs.readlines():
cols = string.split(',')[2].strip()
summa = 0
for i, char in enumerate(cols):
summa += data[rows.index(char)][i]
result += [summa]

print(result)
UPD: Стоит определится :)
Olyaleo
урааа!!! все заработала…
Griffon, спасибо Вам огромное
теперь разберусь как следует с кодом, и буду дальше вопросы задавать )))
Griffon
Только import'ы тут вообще не надо. :)
Olyaleo
я себе чуть усложнила задачу, поэтому у меня уже возникли вопросики:
1) в таблице где находится уникальный код, я изменила переменные с плаващей (.), следовательно мне пришлось поменять int на float . Но почему то считывание происходит не совсем корректно, не пойму почему он так их записывает, у меня в таблице 1 столбце значения ,а считывает как
2) как мне записать в таблицу Output.csv, полученные значения в 2 столбика (x,y).
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import csv
import math

cols = "abcd"
result = []

table = open('TableSeven.csv', 'r')
data = []
for string in table.readlines():
data.append(map(float, string.rstrip().split(',')))
print data

inputs = open('Input.csv', 'r')

for string in inputs.readlines():
rows = string.split(',')[1].strip()
summa = 0
for i, char in enumerate(rows):
summa += data[i][cols.index(char)]
result += [summa/100]
for x in result:
x.writeopen('Output.csv', 'w')

cols = "abcd"
result = []

table = open('TableNine.csv', 'r')
data = []
for string in table.readlines():
data.append(map(float, string.rstrip().split(',')))

inputs = open('Input.csv', 'r')
for string in inputs.readlines():
rows = string.split(',')[3].strip()
summa = 0
for i, char in enumerate(rows):
summa += data[i][cols.index(char)]
result += [summa/100]
for y in result:
y.writeopen('Output.csv', 'w')
Griffon
Уверена что прочитала хоть одну книгу по питону?
http://python.su/forum/viewtopic.php?id=4648
Для записи формируем массив строк и записываем в файл. Это точно в литературе есть с примерами.
Olyaleo
да, уверена, я уже просто потом вспомнила этот нюанс с float.
Потому что теории много, а практики никакой, отсюда и вылетают глупые вопросы. Но мне простительно, я же в разделе чайников :), а даже не новичков. Зато теперь этот нюанс точно в голове отложился. Кстати, спасибо за ссылку, там много полезной инфы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB