2013-08-21 3 views
-3

По какой-то причине, мой скрипт печатает каждое значение равным нулю, даже если списки содержат ненулевые цифры:Сценарий печати все нули

#this is the specific part of my script, A, T, G % C are 4 lists that consists from 10 indexes, each of which is a different number 

for i in range(min(len(A), len(G), len(C), len(T))): 
    A1=A[i]*3/100 
    C1=C[i]*3/100 
    G1=G[i]*3/100 
    T1=T[i]*3/100 

    tA.append(A1) 
    tC.append(C1) 
    tG.append(G1) 
    tT.append(T1) 

    i=i+1 

print "  A  C  T  G" 
print "143 %d  %d  %d  %d" %(tA[0],tC[0],tT[0],tG[0]) 
print "144 %d  %d  %d  %d" %(tA[1],tC[1],tT[1],tG[1]) 
print "145 %d  %d  %d  %d" %(tA[2],tC[2],tT[2],tG[2]) 
print "146 %d  %d  %d  %d" %(tA[3],tC[3],tT[3],tG[3]) 
print "147 %d  %d  %d  %d" %(tA[4],tC[4],tT[4],tG[4]) 
print "148 %d  %d  %d  %d" %(tA[5],tC[5],tT[5],tG[5]) 
print "149 %d  %d  %d  %d" %(tA[6],tC[6],tT[6],tG[6]) 
print "150 %d  %d  %d  %d" %(tA[7],tC[7],tT[7],tG[7]) 
print "151 %d  %d  %d  %d" %(tA[8],tC[8],tT[8],tG[8]) 
print "152 %d  %d  %d  %d" %(tA[9],tC[9],tT[9],tG[9]) 
print "153 %d  %d  %d  %d" %(tA[10],tC[10],tT[10],tG[10]) 

Мой выход является ниже:

 A  C  T  G 
143 0  0  0  0 
144 0  0  0  0 
145 0  0  0  0 
146 0  0  0  0 
147 0  0  0  0 
148 0  0  0  0 
149 0  0  0  0 
150 0  0  0  0 
151 0  0  0  0 
152 0  0  0  0 
153 0  0  0  0 

Почему все из них 0?

+0

Что вы ожидаете получить? Каковы ваши входы? – interjay

+2

Пожалуйста, выберите более описательные заголовки для вашего вопроса. Я знаю, что некоторые из хороших, простых принимаются, но «python error» ничего нам не говорит. – thegrinner

+0

Вы используете целочисленное деление и получили «0». Используйте float-деление следующим образом: A1 = A [i] * 3/100.0 – akozin

ответ

5

3/1000 в python (целые числа округлены вниз), вместо этого попробуйте 3.0/100, который будет использовать числа с плавающей запятой.

+1

Просто, чтобы быть явным, это справедливо только в Python 2.x. В Python 3.0 '3/100' создается float. – SethMMorton

2

Вы можете конвертировать ваши integers в floats или сделать следующее в качестве самого первого импорта,

from __future__ import division 
Смежные вопросы