【问题标题】:Creating a random number generator using a for-loop in Python在 Python 中使用 for 循环创建随机数生成器
【发布时间】:2015-09-05 07:13:03
【问题描述】:
我有一个作业问题,我必须使用 for 循环制作一个随机数生成器,该循环给我一个随机数“n”次。这就是我目前所拥有的。
import random
def randNum(n):
myList = []
randomNumber = int random.random() * 10)
myList.append(randomNumber)
for in range (1,10):
return myList
任何指针?我对编码很陌生,很想知道如何改进/使事情变得更简单。谢谢
【问题讨论】:
标签:
python-3.x
for-loop
random
numbers
generator
【解决方案1】:
由于这是家庭作业,我不会发布完整的解决方案,您只需复制和粘贴即可。我认为编程就像演奏乐器,你不能仅仅看别人做就学会它。相反,让我指出您需要修复的地方。
你的前三行很好,尽管你最终没有使用参数n。
您的问题描述并没有说您需要生成整数,也没有说它们应该是 [0,9] 范围内的值(如果您将 0 和 1 之间的数字乘以 10 和应用int(),向下取整)。你也有不平衡的括号。可以追溯到打孔卡时代的一个技巧是从零开始,每个左括号加一个,每个右括号减一个。如果你在行尾没有回到零,或者你曾经在中间下降负数,你就有一个平衡的paren问题。
您实际上并不需要变量randomNumber,您只需将创建值的表达式放入myList.append() 的括号中即可。但是,有些人喜欢创建额外的变量以保持清晰,或者将语句分开以进行调试以帮助隔离任何问题的位置,因此保留或放弃变量是品味/偏好的问题。
您最大的问题是您只生成和存储randomNumber 一次。您想将该逻辑置于for 循环中,由参数n 控制。
您的最后两行尝试return myList,其中包含一个元素,9 次。您只能从函数中return 一次,因此您的第一次尝试将结束。不要将简单的return 语句放在循环中,除非return 是有条件的,否则它是没有意义的。
最后,for 循环需要一个索引变量,即关键字 for 和 in 之间的某个变量。如果您计划在循环中使用当前迭代的索引值,它应该是一个变量,例如i 或j 或loop_index。如果您实际上不需要使用索引,请使用下划线:for _ in range(1,10):。最后但并非最不重要的一点是,range(1,10) 迭代值 1 到 9,上限值是独占。迭代 10 次的常用方法是for i in range(10):,如果省略,下限为零。这将迭代 10 次,产生 0 到 9 的值,可以通过循环内的i 访问。