Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python While循环用于列表?_Python_Loops_For Loop_While Loop - Fatal编程技术网

Python While循环用于列表?

Python While循环用于列表?,python,loops,for-loop,while-loop,Python,Loops,For Loop,While Loop,我对编程相当陌生,我有一个简短的问题。我试图为一系列恒星建立一个高斯函数。然而,我希望所有星星的底曲线尺寸都是100。我在考虑做一个while循环,说底曲线的总长度是100。然而,我得到了一个错误,我猜这与它是一个列表有关。我给你们看我的代码,看看你们能不能帮我。谢谢 我得到一个语法错误:无法分配给调用函数 import numpy import random import math import matplotlib.pyplot as plt import matplotlib.mlab a

我对编程相当陌生,我有一个简短的问题。我试图为一系列恒星建立一个高斯函数。然而,我希望所有星星的底曲线尺寸都是100。我在考虑做一个while循环,说底曲线的总长度是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()
导入numpy
随机输入
输入数学
将matplotlib.pyplot作为plt导入
将matplotlib.mlab导入为mlab
进口西皮
从scipy导入统计信息
从数学导入sqrt
从numpy导入零
从numpy进口Numaray
方差=输入(“星的输入方差:”)
平均值=输入(“星的输入平均值:”)
空间=numpy.linspace(-4,11000)
西格玛=sqrt(方差)
Max=Max(mlab.normpdf(空间、平均值、西格玛))
归一化=(mlab.normpdf(空间、平均值、西格玛))/Max
def random_y_pt():
返回随机均匀(0,1)
def random_x_pt():
返回随机均匀(-4,1)
随机输入
def欠曲线(尺寸):
结果=[]
对于范围内的i(0,大小):
y=随机_y_pt()
x=随机x_pt()
如果y
如果您的错误类似于
语法错误:无法分配给函数调用
,那么这是因为您的线路

undercurve(size) = undercurve(1)+undercurve(size)
它试图将右侧的输出设置为
下凹(尺寸)
的值,但您不能这样做

听起来您实际上只想看到
undercurve(size)
返回的列表中的第一个
100
项。为此,请使用

undercurve(size)[:100]

如果您的错误类似于
SyntaxError:cannotassigntofunctioncall
,那么这是因为您的行

undercurve(size) = undercurve(1)+undercurve(size)
它试图将右侧的输出设置为
下凹(尺寸)
的值,但您不能这样做

听起来您实际上只想看到
undercurve(size)
返回的列表中的第一个
100
项。为此,请使用

undercurve(size)[:100]


您需要显示您收到的确切错误消息。您收到的错误是什么?您试图如何处理
undercurve(size)=undercurve(1)+undercurve(size)
?分配给函数调用没有意义。您的程序中有一个错误:@Robert:尝试编辑您的问题并将错误消息粘贴到那里。人们会更容易找到,正如你所看到的,你不能进行多行评论。你需要显示你得到的确切错误消息。你得到的错误是什么?你想用
undercurve(size)=undercurve(1)+undercurve(size)
做什么?分配给函数调用没有意义。您的程序中有一个错误:@Robert:尝试编辑您的问题并将错误消息粘贴到那里。这将使人们更容易找到,正如您所看到的,您不能进行多行注释。这就是我的python新手的用武之地。我需要你说的,我得到了类型错误:range()应该是整数结束参数,得到了列表。这是有道理的,因为下凹(大小)将是一个列表。做一个while循环是我的主意。不管我怎么做,只要最终结果是正确的。我知道这会给我实际值,但我想得到100个。也许这太明显了,我就是看不见。我是说Len(下弯(尺寸))=100@Robert哪一百个?前100个值是:
undercurve(size)[:100]
Oh完全不记得我可以这么做。谢谢大家!@Robert一些一般性建议是不要多次调用undercurve函数,而是使用
uc=undercurve(size)
调用一次,稍后再参考
uc
,例如:
uc[:100]
将给出前100个元素。这就是我的python新手的用武之地。我需要你说的,我得到了类型错误:range()应该是整数结束参数,得到了列表。这是有道理的,因为下凹(大小)将是一个列表。做一个while循环是我的主意。不管我怎么做,只要最终结果是正确的。我知道这会给我实际值,但我想得到100个。也许这太明显了,我就是看不见。我是说Len(下弯(尺寸))=100@Robert哪一百个?前100个值是:
undercurve(size)[:100]
Oh完全不记得我可以这么做。谢谢大家!@Robert一些一般建议是不要多次调用undercurve函数,而是使用
uc=undercurve(size)
调用一次,稍后再参考
uc
,例如:
uc[:100]
将给出前100个元素。