生成INPUT(python)

时间:2016-10-12 10:54:42

标签: python

这是一个与我找到的其他人相近的问题,但他们并没有帮助我,所以我这次专门询问我和我的目的。

我正在为机器人编码,该机器人应该向用户询问范围内的最大值和最小值,然后在该范围内生成10个随机数。在验证时,我告诉randomi都是未使用的变量。我不明白为什么。我认为random.radint应该是一个内置功能,就i而言,我真的不知道该相信什么。这是我到目前为止所得到的。

def RandomNumbers():
    """
    Asking the user for a min and max, then printing ten random numbers between min and max.
    """
    print("Give me two numbers, a min and a max")
    a = input("Select min. ")
    b = input("Select max. ")


    for i in range(10):
        number = random.randint(a, b)
    print(str(number)+ str(","), end="")

我会非常高兴能够完成任务的每一条建议。提前谢谢!

3 个答案:

答案 0 :(得分:6)

没有。 random.randint不是内置函数。您必须导入 random模块才能使用该功能。

另一方面,i显然未在循环中使用,因此您通常会使用下划线_代替i

import random


numbers = []
for _ in range(10):
    numbers.append(random.randint(a, b))

您还会注意到我使用了一个列表来存储每次迭代的所有值。这样,您就不会丢弃先前迭代中的值。

如果您还不熟悉列表,可以查看文档:

Data structures

解释

  

列表中的项是任意Python对象。列表由。形成   将逗号分隔的表达式列表放在方括号中

最后一点,要打印列表中的项目,您可以使用str.join方法,但不能在列表中的项目从整数转换为字符串后使用:

output = ', '.join([str(num) for num in numbers])
print(output)

答案 1 :(得分:2)

您的原始功能值得一提的几点:

  • random模块不是内置的,您必须明确导入它。
  • input始终返回字符串,因此您必须先将它们转换为整数,然后再将它们传递给random.randint
  • i确实没有在你的for循环中使用。您也可以用_替换它(强化事实,因为副作用而循环,例如打印而不是变量本身)。
  • 更多关于函数名称的风格侧面说明:PEP8(Python样式指南)鼓励将小写与下划线结合使用来分隔单词而不是驼峰(random_number vs RandomNumber)< / LI>

这是一个有效的例子:

import random 

def random_numbers():
    """
    Asking the user for a min and max, then printing ten random numbers between min and max.
    """
    print("Give me two numbers, a min and a max")
    a = int(input("Select min. "))
    b = int(input("Select max. "))

    numbers = [random.randint(a, b) for i in range(10)]
    print(','.join(str(n) for n in numbers))

random_numbers()

答案 2 :(得分:0)

简单)

import random
from random import randrange

print("Give me two numbers, a min and a max")
a = int(input("Select min. "))
b = int(input("Select max. "))
c = 0
while c < 10:
    print(randrange(a, b))
    c += 1

您可以将其放在函数中:

def RandomNumbers():
    import random
    from random import randrange
    
    print("Give me two numbers, a min and a max")
    a = int(input("Select min. "))
    b = int(input("Select max. "))
    c = 0
    while c < 10:
        print(randrange(a, b))
        c += 1