我正在尝试仅将random.random
用于库函数来返回随机浮点数列表。每当我尝试关闭块时,我总是收到语法错误。这是我的代码:
def randomFloats(n, lower, upper) :
... for i in range(n) :
... return [random.random()*(upper-lower)]
break
答案 0 :(得分:1)
该代码确实会进入一个循环(假设缩进是一致的),但是,在该循环的第一次迭代中,它将返回一个包含单个随机浮点值的列表。
如果要返回包含更多随机值的列表,则应使用:
import random
def randomFloats(n, lower, upper) :
return [random.random()*(upper-lower) for _ in range(n)]
答案 1 :(得分:0)
您的代码有很多错误。让我们分解这些:
break
Python语句break
用于在运行期间退出循环。例如:
for i in range(10):
if i == 2:
break
else:
print(i)
输出将是:
0
1
也许由此您可以判断出在代码中使用break
是不合适的。
return
return语句是函数的“最终”执行;换句话说,当到达return
语句时,该函数返回并退出。一个展示这个的例子:
def func():
for i in range(10):
return i
print("IN HERE!")
print(func())
输出:
0
如您所见,该函数不会像您想的那样返回0-10。您还应该注意,由于退出功能,未打印了“在这里”。
现在,利用上面的知识来看您的代码,我们可以看到一些明显的错误:
这是我的一个假设:您将break
语句误认为函数的关闭语句。现实情况是,Python没有像其他语言一样具有end
语句,而end语句是缩进。与其在解释器中编写“ break”,不如尝试简单地在没有函数的情况下运行函数,并确保按Enter键退出函数声明(您将不再看到点,而是>>>
)。
也许您正在寻找的代码(没有列表理解)如下:
import random
def randomFloats(n, lower, upper):
l = [] # Creating a list named 'l'
for i in range(n):
l.append(random.random() * (upper - lower)) # Appending n random numbers to list l.
return l # Returning the list l.
print(randomFloats(10, 1, 10))