Я довольно новичок в программировании, и у меня есть быстрый вопрос. Я пытаюсь сделать гауссову функцию для диапазона звезд. Однако я хочу, чтобы размер undercurve был равен 100 для всех звезд. Я думал о том, чтобы сделать цикл while, говорящий, что, хотя общая длина undercurve равна 100. Тем не менее, я получаю сообщение об ошибке, и я предполагаю, что это имеет какое-то отношение к тому, что это список. Я показываю вам, ребята, мой код, чтобы узнать, можете ли вы помочь мне здесь. Благодаря!Пока петли для списков?
Я получаю синтаксическую ошибку: не может назначить вызов функции
import numpy
import random
import math
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import scipy
from scipy import stats
from math import sqrt
from numpy import zeros
from numpy import numarray
variance = input("Input variance of the star:")
mean = input("Input mean of the star:")
space=numpy.linspace(-4,1,1000)
sigma = sqrt(variance)
Max = max(mlab.normpdf(space,mean,sigma))
normalized = (mlab.normpdf(space,mean,sigma))/Max
def random_y_pt():
return random.uniform(0,1)
def random_x_pt():
return random.uniform(-4,1)
import random
def undercurve(size):
result = []
for i in range(0,size):
y = random_y_pt()
x = random_x_pt()
if y < scipy.stats.norm(scale=variance,loc=mean).pdf(x):
result.append((x))
return result
size = 1
while len(undercurve(size)) < 100:
undercurve(size) = undercurve(1)+undercurve(size)
print undercurve(size)
plt.hist(undercurve(size),bins=20)
plt.show()
Необходимо указать точное сообщение об ошибке, которое вы получаете. – BrenBarn
Какая ошибка вы получаете? – Hoopdady
Что вы пытаетесь сделать с 'undercurve (size) = undercurve (1) + undercurve (size)'? Присвоение вызова функции не имеет смысла. –