Python - problema con un contador en python

 
Vista:
sin imagen de perfil

problema con un contador en python

Publicado por cristian (5 intervenciones) el 19/03/2018 15:19:42
tengo el siguiente codigo:
1
2
3
4
5
6
7
8
9
f2 = 2000 * math.sqrt(rt / vol)
p=1
while fi<f2:
    fi = ((c / 2)*math.sqrt((p ** 2)/(largo ** 2)))
    print(fi)
    if fi<f2:
        axialesgill.append(fi)
    print(axialesgill)
    p=p+1
resulta que la idea es que p vaya de 1 en 1 y que calcule la formula (fi) , pero lo que esta pasando en este codigo es que si escribo largo igual a 5 el programa empieza el p desde 5 no se porque , es decir que no me calcula el p=1,2,3,4 por lo que mi arreglo en los primeros 4 indices esta quedando igual a 0 , como si la formula con p = 1 hasta 4 diera igual a 0
AYUDAAAAAA
MUCHAS GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

problema con un contador en python

Publicado por xve (1646 intervenciones) el 19/03/2018 18:22:11
Hola Cristian, intento probarlo, y me faltan un montón de variables!!!

A simple vista parece que esta bien y que debería de contar de uno en uno!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

problema con un contador en python

Publicado por cristian (5 intervenciones) el 19/03/2018 18:26:17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
from numpy import *
from pylab import *
from math import *
import matplotlib.pyplot as plt
materiales = [['ventana',0.06,0.05,0.07,0.015,0.13,0.17,0],['ladrillo',0.01,0.01,0.02,0.02,0.02,0.03,0],['lana de vidrio',0.78,1.01,1.14,1.03,0.94,0.78,0],['puerta',0.15,0.10,0.06,0.08,0.10,0.05,0],['cortinas tejido delgado',0.04,0.05,0.11,0.18,0.30,0.35,0],['revestimiento de madera',0.10,0.11,0.10,0.08,0.08,0.11,0],['marmol',0.01,0.01,0.01,0.02,0.02,0.01,0],['pavimiento',0.02,0.03,0.03,0.04,0.04,0.04,0],['piso de hormigon',0.01,0.01,0.02,0.02,0.02,0.02,0],['alfombra delgada',0.01,0.02,0.03,0.05,0.08,0.1,0],['alfombra pelo largo',0.02,0.05,0.1,0.35,0.45,0.55,0],['parquet sobre contra piso',0.03,0.15,0.21,0.45,0.95,0.85,0],['tablas de madera sobre vigeta',0.3,0.09,0.04,0.05,0.04,0.03,0],['placa de yeso',0.3,0.09,0.04,0.05,0.04,0.03,0],['placa de poliuretano',0.03,0.15,0.21,0.45,0.95,0.85,0]]
coe=[]
m_escogidos=[]
axialesgill=[]
axialesgill1=[]
axialesgill2=[]
xd=input('Digite 1 si desea escoger un material de la siguiente lista \nDigite 2 si desea agregar un numero material: ')
cont=0;
abs125=0;
abs250=0;
abs500=0;
abs1000=0;
abs2000=0;
abs4000=0;
suptotal=0;
c=340
fi=1
fj=1
fk=1
p=1
q=1
r=1
xds=1
 
while xds==1:
    while xd==1:
        for i in range(0, len(materiales)):
             print(repr(i + 1) + '. ' + str(materiales[i][0]) + ' con coeficientes 125Hz: ' + repr(materiales[i][1]) + ', 250Hz: ' + repr(materiales[i][2]) + ', 500Hz: ' + repr(materiales[i][3]) + ', 1kHz: ' + repr(materiales[i][4]) + ', 2kHz: ' + repr(materiales[i][5]) + ', 4kHz: ' + repr(materiales[i][6]))
 
 
        element=input('Digite el material que desea escoger: ')
        while element <1 or element>len(materiales):
            element = input('Digite de nuevo el material que desea escoger: ')
 
 
        area=input('Agregue el area (m^2): ')
        while area<0:
            area = input('Agregue nuevamente el area (m^2): ')
        materiales[element-1][7]=area
        print('usted ha agregado el material '+str (materiales[element - 1][0])+ ' con coeficientes de absorcion: '+ repr(materiales[element - 1][1:7])+ ' y un area de: '+ repr(area)+' m^2')
        m_escogidos.append(materiales[element-1][1:])
        abs125 = abs125 + (m_escogidos[cont][0] * m_escogidos[cont][6])
        abs250 = abs250 + (m_escogidos[cont][1] * m_escogidos[cont][6])
        abs500 = abs500 + (m_escogidos[cont][2] * m_escogidos[cont][6])
        abs1000 = abs1000 + (m_escogidos[cont][3] * m_escogidos[cont][6])
        abs2000 = abs2000 + (m_escogidos[cont][4] * m_escogidos[cont][6])
        abs4000 = abs4000 + (m_escogidos[cont][5] * m_escogidos[cont][6])
        suptotal = suptotal + m_escogidos[cont][6]
        cont = cont + 1
        anadir=input('Digite 1 si desea escoger otro material \n Digite 2 si desea finalizar y realizar calculos: ')
 
        if anadir==1:
 
            xd = input('Digite 1 si desea escoger un material de la siguiente lista \nDigite 2 si desea agregar un numero material: ')
 
        else:
 
            coeprom125 = abs125 / suptotal
            coeprom250 = abs250 / suptotal
            coeprom500 = abs500 / suptotal
            coeprom1000 = abs1000 / suptotal
            coeprom2000 = abs2000 / suptotal
            coeprom4000 = abs4000 / suptotal
            medprom=(coeprom500+coeprom1000)/2
            coe.append([coeprom125,coeprom250,coeprom500,coeprom1000,coeprom2000,coeprom4000,medprom])
            print(coe)
            print (125,250,500,1000,2000,4000,'medio promediado')
            xds=0
            break
 
 
    while xd==2:
        nombrematerial = raw_input('Escriba el nombre del nuevo material que desea agregar: ')
        coe125 = input('Digite el coeficiente de absorcion para la banda de 125Hz: ')
        coe250 = input('Digite el coeficiente de absorcion para la banda de 250Hz: ')
        coe500 = input('Digite el coeficiente de absorcion para la banda de 500Hz: ')
        coe1000 = input('Digite el coeficiente de absorcion para la banda de 1KHz: ')
        coe2000 = input('Digite el coeficiente de absorcion para la banda de 2KHz: ')
        coe4000 = input('Digite el coeficiente de absorcion para la banda de 4KHz: ')
        while area<0:
            area2=input('Digite el area de la superficie en (m^2): ')
        materiales.append([nombrematerial,coe125,coe250,coe500,coe1000,coe2000,coe4000,area2])
        print materiales
        print(materiales[len(materiales)-1])
        print('usted ha creado el material '+str (materiales[len(materiales)-1][0])+ ' con coeficientes de absorcion: '+ repr(materiales[len(materiales)-1][1:7])+ ' y un area de: '+ repr(area2)+' m^2')
        m_escogidos.append(materiales[len(materiales)-1][1:])
        abs125 = abs125 + (m_escogidos[cont][0] * m_escogidos[cont][6])
        abs250 = abs250 + (m_escogidos[cont][1] * m_escogidos[cont][6])
        abs500 = abs500 + (m_escogidos[cont][2] * m_escogidos[cont][6])
        abs1000 = abs1000 + (m_escogidos[cont][3] * m_escogidos[cont][6])
        abs2000 = abs2000 + (m_escogidos[cont][4] * m_escogidos[cont][6])
        abs4000 = abs4000 + (m_escogidos[cont][5] * m_escogidos[cont][6])
        suptotal = suptotal + m_escogidos[cont][6]
        cont = cont + 1
        anadir = input('Digite 1 si desea crear otro material: \nDigite 2 si desea escoger uno de la lista: \nDigite 3 si desea finalizar y realizar calculos: ')
        if anadir==1:
 
            xd=2
 
        if anadir==2:
 
 
            xd=1
        if anadir==3:
 
            coeprom125 = abs125 / suptotal
            coeprom250 = abs250 / suptotal
            coeprom500 = abs500 / suptotal
            coeprom1000 = abs1000 / suptotal
            coeprom2000 = abs2000 / suptotal
            coeprom4000 = abs4000 / suptotal
            medprom=(coeprom500+coeprom1000)/2
            coe.append([coeprom125,coeprom250,coeprom500,coeprom1000,coeprom2000,coeprom4000,medprom])
            print(coe)
            print (125,250,500,1000,2000,4000,'medio promediado')
 
            xds=0
            break
 
met=input('Digite 1 si desea realizar analisis por metodo de gillford: \nDigite 2 si desea realizar analisis por metodo de bonello: ')
while met==1:
    vel=340
    p=1
    fi=0
    largo=input('Digite Largo de la sala')
    ancho=input('Digite ancho de la sala')
    alto = input('Digite alto de la sala')
    v=largo*ancho*alto
    absmid=suptotal*medprom
    rt=(0.161*v)/absmid
    f2=2000*math.sqrt(rt/v)
    while fi<=f2:
        fi=(vel/2)*(p/largo)
        if fi<f2:
            axialesgill.append(fi)
            p=p+1
    print(axialesgill)

MIRA AQUI ESTA COMPLETO SI ME PUEDES AYUDAR
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar