Calculating the average and weighted average with For
Why am I having the error File"", line 50 print ("this is the value of the sum of the products between the samples and their respective weights", PiXi)" ^ to calculate the weighted average with the data set entered by the user.
Because I am recycling the indices n and i, I may have problems creating other statistical calculations such as median and mean quadratic?
SyntaxError: EOL while scanning string literal # Average
#Índice referente ao número da amostra.
n=int(input("Insira o número total de amostras"))
#Índice i que vai percorrer todas as amostras
i=0
#Lista vazia para conter as amostras
Amostras=[]
#For para percorrer todo o contador das médias
for i in range(i,n):
#Adiciona o valor da amostra dentro da lista de amostras
Amostras.append(int(input("Insira o valor das amostras")))
#Escreve a lista de amostras na tela para o usuário
print(Amostras)
#Soma das amostras
Xi = 0
#Total
N = len(Amostras)
for amostrai in Amostras:
Xi +=amostrai
print ("Esse é o valor da soma das amostras", Xi)
print ("Este é a quantidade de amostras que você possui", N)
print ("Esta é a média", Xi/N)
# Média Ponderada
#Lista com os pesos de cada variável
pi = []
#Lista com os valores de cada variável
xi = []
#Lista com os produtos do peso e da variável associada ao índice i
amostraponderadai = []
for i in range (i,n):
pi.append(int(input("Insira o peso associado a variável: ",i)))
xi.append(int(input("Insira a variável associado ao índice:", i)))
amostraponderadai.append(pi(i)*xi(i))
#Soma das amostras
PiXi = 0
Nponderadai = len(amostraponderadai)
#Total do produto da amostra pelo peso
for pixi in amostraponderadai:
PiXi += pixi
print ("Este é o valor da soma dos produtos entre as amostras e seus respectivos pesos", PiXi)"
print ("Este é a quantidade de amostras para a análise da média ponderada", Nponderadai)
print ("Esta é a média ponderada do conjunto de dados": PiXi/Nponderadai)
1 answers
Kioolz,
You have some errors, let's see one by one.
Your first error is in the print line:
print ("Este é o valor da soma dos produtos entre as amostras e seus respectivos pesos", PiXi)"
You left a double quotation mark at the end, just remove:
print ("Este é o valor da soma dos produtos entre as amostras e seus respectivos pesos", PiXi)
Correcting this print, another print will generate error:
print ("Esta é a média ponderada do conjunto de dados": PiXi/Nponderadai)
You concatenated the return of a division with a string, except that the colon is outside the string, we can leave the division as the second parameter of the print and put the colon inside the string:
print ("Esta é a média ponderada do conjunto de dados:", PiXi/Nponderadai)
Cool, with this your code will execute and we will have some errors during execution, the first of them is in the input:
pi.append(int(input("Insira o peso associado a variável: ",i)))
xi.append(int(input("Insira a variável associado ao índice:", i)))
You have passed the variable i as the second parameter of the input function, but it receives only one parameter, we can only remove the i:
pi.append(int(input("Insira o peso associado a variável: ")))
xi.append(int(input("Insira a variável associado ao índice:")))
After correcting the input, you will have the list access error:
amostraponderadai.append(pi(i)*xi(i))
You tried to access the pi and xi lists with parentheses, but for this we used brackets, let's replace:
amostraponderadai.append(pi[i]*xi[i])
Finally, after fixing the list access, your range will generate exception, because you used the variable i in the range:
for i in range (i,n):
We can remove the i from the range, as you are just doing a simple for:
for i in range(n):
After all these fixes, your code will run correctly, it will look more or less like this:
#Índice referente ao número da amostra.
n=int(input("Insira o número total de amostras: "))
#Lista vazia para conter as amostras
Amostras=[]
#For para percorrer todo o contador das médias
for i in range(n):
#Adiciona o valor da amostra dentro da lista de amostras
Amostras.append(int(input("Insira o valor das amostras: ")))
#Escreve a lista de amostras na tela para o usuário
print(Amostras)
#Soma das amostras
Xi = 0
#Total
N = len(Amostras)
for amostrai in Amostras:
Xi +=amostrai
print ("Esse é o valor da soma das amostras: ", Xi)
print ("Este é a quantidade de amostras que você possui: ", N)
print ("Esta é a média: ", Xi/N)
# Média Ponderada
#Lista com os pesos de cada variável
pi = []
#Lista com os valores de cada variável
xi = []
#Lista com os produtos do peso e da variável associada ao índice i
amostraponderadai = []
for i in range(n):
pi.append(int(input("Insira o peso associado a variável: ")))
xi.append(int(input("Insira a variável associado ao índice: ")))
amostraponderadai.append(pi[i]*xi[i])
#Soma das amostras
PiXi = 0
Nponderadai = len(amostraponderadai)
#Total do produto da amostra pelo peso
for pixi in amostraponderadai:
PiXi += pixi
print ("Este é o valor da soma dos produtos entre as amostras e seus respectivos pesos: ", PiXi)
print ("Este é a quantidade de amostras para a análise da média ponderada: ", Nponderadai)
print ("Esta é a média ponderada do conjunto de dados: ", PiXi/Nponderadai)
See online: https://repl.it/repls/DelectableSatisfiedSpreadsheets