Python - Tengo problemas con codigo

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido su posición en 11 puestos en Python (en relación al último mes)
Gráfica de Python

Tengo problemas con codigo

Publicado por Jesus (3 intervenciones) el 24/05/2021 05:36:03
Buenas noches
Estoy intentando pasar un codigo de pseint a python, llevo algo avanzado y queria hacer una prueba para ver como iba pero despues de rato me salta un error :(

Este es el codigo que llevo en python:
1
2
3
4
5
6
7
8
9
10
11
datosx = []
datosy = []
 
datosx.append([200])
datosy.append([200])
n = int(input("Ingresar la cantidad de datos: = 9 (de 2 a 200)"))
 
for i in range(1, n):
 
    datosx[i] = int(input("Ingrese el valor de x[i]"))
    datosy[i] = int(input("Ingrese el valor de y[i]"))

Y este es el codigo de pseint:

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
Algoritmo Regreesion_lineal_multiple
    Dimension datosx[200],datosy[200]
    Escribir "Ingresar la cantidad de datos n: =9 (de 2 a 200):"
    leer n
 
    para i <- 1 hasta n Hacer
        Escribir "Ingrese el valor de x[",i,"]"
        leer datosx[i]
        Escribir "Ingrese el valor de y[",i,"]"
        leer datosy[i]
        sumax=sumax+datosx[i]
        sumay=sumay+datosy[i]
        sumaxx=sumaxx+datosx[i]*datosx[i]
        sumaxy=sumaxy+datosx[i]*datosy[i]
 
 
 
    FinPara
    a0=(sumaxx*sumay-sumax*sumaxy)/(n*sumaxx-sumax*sumax)
    a1=(n*sumaxy-sumax*sumay)/(n*sumaxx-sumax*sumax)
    Escribir "Ingrese el valor de x"
    leer x
    fdex=a0+a1*x
    Escribir "El valor de a0:=", a0
    Escribir "El valor de a1:=", a1
    Escribir "regresion f(",x,"):=", fdex
 
 
 
 
FinAlgoritmo

Ya intente modificar de muchas maneras el codigo pero cuando quiero ingresar el valor de x[i] me salta error.
En caso de pseint al ingresar un valor en x me sale x[1] y en python x[i]

Espero me puedan orientar en donde estoy equivocado :(
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
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Tengo problemas con codigo

Publicado por tincopasan (1082 intervenciones) el 24/05/2021 06:19:59
bueno, el principal problema es que la listas deben contener 200 valores y solo le estás agregando 1

1
datosx = []

eso es una lista vacía

con:

1
datosx.append([200])

solo estás agregando una elemento que es una lista que contiene un valor, el 200
eso lo podés ver si haces un :

1
print(datosx)

y dará : [[200]] como ves es solo una lista de un elemento dentro de otra lista

para declarar 200 índices o valores se hace de otras formas.
la más simple cuando estás aprendiendo:

1
2
for x in range(200):
    datosx.append(0) #para que sea una lista de 200 índices de solo 0

si reemplazas 0 por x serán los valores desde 0 a 199

con un poco más de conocimientos reemplazas esas líneas por:

1
datosx = [0 for x in range(200)]

en donde hacés lo mismo pero solo con una línea, esto claro está sin usar bibliotcas de terceros como numpy por ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 11 puestos en Python (en relación al último mes)
Gráfica de Python

Tengo problemas con codigo

Publicado por Jesus (3 intervenciones) el 24/05/2021 07:42:40
Muchas gracias :D

Me sirvio bastante ahi bastantes cosas que desconozco de python pero poco a poco voy entendiendole, solamente tengo 2 dudas
Una es que cuando quiero poner los datos de X en pseint me sale como X[1] hasta X[9] al igual que con Y pero aqui en python solamente me sale X[i] si modifico el codigo tratando de ponerlo igual al de pseint me salta un error D:

1
datosx[i] = int(input("Ingrese el valor de x(i):"))

De igual manera es algo inofesivo que no afecta en nada es por pura estetica xD

Y me ultima duda es aqui en pseint no se como entienda la asignacion de los valores pero si quiero poner esto en python
1
2
3
4
sumax=sumax+datosx[i]
sumay=sumay+datosy[i]
sumaxx=sumaxx+datosx[i]*datosx[i]
sumaxy=sumaxy+datosx[i]*datosy[i]

me salta error por que tengo el sumax = sumax en la misma linea pero, si lo quito en pseint afecta al resultado del problema :(
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
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Tengo problemas con codigo

Publicado por tincopasan (1082 intervenciones) el 24/05/2021 11:37:43
como primer medida no pretendas que la sintaxis sea la misma

en ese caso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
datosx,datosy = ([0 for x in range(200)],[0 for x in range(200)])
 
n = int(input("Ingresar la cantidad de datos: = 9 (de 2 a 200)"))
 
#es obligatorio crear la variable si la querés llamar
sumax = 0
sumay = 0
sumaxx = 0
sumaxy = 0
 
for i in range(1, n+1):  # range no incluye el punto de parada, por eso es + 1
    datosx[i] = int(input(f"Ingrese el valor de x{i}: "))
    datosy[i] = int(input(f"Ingrese el valor de y{i}: "))
    #sumax= sumax+datosx[i] ya teniendo la variable es fea esta declaración
    #si bien se puede, deja de ser python y es pasar a python no mantener pseint
    sumax += datosx[i]
    sumay += datosy[i]
    sumaxx += datosx[i] * datosy[i]
    sumaxy += datosx[i] * datosy[i]
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