我有一个家庭作业问题,我必须使用for循环制作一个随机数生成器,它给我一个随机数字' n'次数。这是我到目前为止所做的。
import random
def randNum(n):
myList = []
randomNumber = int random.random() * 10)
myList.append(randomNumber)
for in range (1,10):
return myList
任何指针?我对编码非常陌生,并且很想知道如何改进/使事情更简单。感谢
答案 0 :(得分:0)
由于这是家庭作业,我不打算发布一个完整的解决方案,你可以复制和粘贴。我认为编程就像是在演奏乐器,你只能通过观看别人的方式来学习它。相反,让我指出你需要修理的地方。
你的前三行很好,尽管你最终没有使用参数n
。
你的问题描述并没有说你需要生成整数,也不是说它们应该是[0,9]范围内的值(如果你将0到1之间的数字乘以10就可以获得这些值)应用int()
,向下舍入)。你也有不平衡的括号。可以追溯到穿孔卡的日子的技巧是从零开始并为每个左括号添加一个,每个右减一个。如果你没有在线的末尾回到零,或者你在中间消极,那么你就会遇到平衡的问题。
您实际上并不需要变量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,上限值是 exclusive 。迭代10次的常用方法是for i in range(10):
,如果省略则下限为零。这将迭代10次,产生0到9的值,可以通过循环中的i
访问。