【问题标题】: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 循环需要一个索引变量,即关键字 forin 之间的某个变量。如果您计划在循环中使用当前迭代的索引值,它应该是一个变量,例如ijloop_index。如果您实际上不需要使用索引,请使用下划线:for _ in range(1,10):。最后但并非最不重要的一点是,range(1,10) 迭代值 1 到 9,上限值是独占。迭代 10 次的常用方法是for i in range(10):,如果省略,下限为零。这将迭代 10 次,产生 0 到 9 的值,可以通过循环内的i 访问。

    【讨论】:

      猜你喜欢
      • 2013-10-11
      • 1970-01-01
      • 2019-11-11
      • 2019-01-04
      • 2014-02-14
      • 1970-01-01
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多