非常简单的程序。我尝试取一个正整数n,生成一个100到500之间的n个随机数的列表,并返回列表中出现的最小值
import random
def randomNumber2(n):
mylist2 = []
needMoreNumbers2 = True
while (needMoreNumbers2):
randomNumber2 = int(random.random() * 500)
myList2.append(randomNumber2)
n >= n - 100
if (n <= 500):
needMoreNumbers2 = false
return myList2
有人能帮我指点方向吗?在
如果你想让程序更接近你的程序,你需要先修复程序中的一些问题——它根本就不运行。Python区分大小写,因此}是不同的。通篇使用相同的拼写。类似地,
mylist2
和{false
不是Python内置的-False
是。在解决这些问题,我们得到:
现在不管传递给}始终为true,否则为false。您的}进行比较,并始终返回true,该值被忽略)。在
n
什么,只要n
是<;=500,它返回一个包含单个随机整数的列表,从0到499(包括0)。如果n
大于500,它将永远运行(无限循环)。你知道为什么吗?^如果原始n
为<;=500,则{n >= n - 100
不执行任何可见的操作(它只是将n
与{因此,请采纳建议,将转向更合理的Python习惯用法。以下是一种更容易理解的方法:
^{pr2}$Progress;-)现在我们至少得到一个带有
n
随机整数的列表。它们不在您想要的范围内,但是:int(random.random() * 500)
返回一个0到499范围内的整数(包括0到499)。如果你想让他们在100到500之间,最好的方法是做random.randint(100, 500)
,就像别人已经告诉你的那样。100 + int(random.random() * 400)
是一种更接近原始代码的等效方法,因此让我们尝试一下:为了达到最小值,最好在结尾处做
min(myList2)
。这不仅是正确的,而且比你自己编写的任何代码都要快。如果你想自己动手,有一种方法:F J给出的答案是,最有经验的Python是如何编写代码的。在
然后,您不需要列表,只需要返回
n
“throws”中生成的随机数中最小的一个相关问题 更多 >
编程相关推荐