Python 如何从输入中生成范围内的随机数?

Python 如何从输入中生成范围内的随机数?,python,random,Python,Random,这是一个与我发现的其他一些问题相近的问题,但它们对我没有帮助,所以我这次是专门为我和我的目的而问的 我正在为一个机器人编码,它应该要求用户在某个范围内输入最大值和最小值,然后在该范围内生成十个随机数。验证时,我被告知random和I都是未使用的变量。我真的不明白为什么。我相信random.randint应该是一个内置函数,就I而言,我真的不知道该相信什么。这就是我到目前为止得到的 def RandomNumbers(): """ Asking the

这是一个与我发现的其他一些问题相近的问题,但它们对我没有帮助,所以我这次是专门为我和我的目的而问的

我正在为一个机器人编码,它应该要求用户在某个范围内输入最大值和最小值,然后在该范围内生成十个随机数。验证时,我被告知
random
I
都是未使用的变量。我真的不明白为什么。我相信
random.randint
应该是一个内置函数,就
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="")

我会很高兴能得到每一条建议来完成我的任务。提前谢谢你

否。
random.randint
不是内置函数。您必须导入
随机
模块才能使用该函数

另一方面,
i
显然没有在循环中使用,因此您通常会使用下划线
\u
来代替
i

import random


numbers = []
for _ in range(10):
    numbers.append(random.randint(a, b))
您还会注意到,我使用了一个列表来存储每个迭代中的所有值。这样,您就不会丢弃以前迭代中的值

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

清单:

列表中的项目是任意Python对象。列表由 将逗号分隔的表达式列表置于方括号中


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

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

对于原始函数,有两点值得一提:

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
  • random
    模块不是内置的,您必须显式导入它
  • input
    总是返回字符串,因此在将字符串传递给
    random.randint
  • i
    确实不在for循环中使用。您也可以将其替换为
    (这强化了一个事实,即您循环是因为副作用,例如打印而不是变量本身)
  • 更多关于函数名的文体旁注:PEP8(Python风格指南)鼓励使用小写和下划线来分隔单词,而不是驼峰大小写(
    random_number
    vs
    random number
下面是一个工作示例:

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()
(简单)

随机导入
从随机输入范围
打印(“给我两个数字,一个最小值和一个最大值”)
a=int(输入(“选择最小值”)
b=int(输入(“选择最大值”)
c=0
c<10时:
打印(随机范围(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
def RandomNumbers():
随机输入
从随机输入范围
打印(“给我两个数字,一个最小值和一个最大值”)
a=int(输入(“选择最小值”)
b=int(输入(“选择最大值”)
c=0
c<10时:
打印(随机范围(a、b))
c+=1

你是说
数字。附加(…)
?@Cajuu'谢谢你的提醒,最后一行可能有一个缩进错误,这意味着他扔掉了数字,因为他只想打印一次。我想我不完全理解为什么循环中不使用“I”。我以为“I”是数字的范围,在最后两个括号内定义?对于(10)范围内的:(因此,在本例中为“1”到“10”)。谢谢你解释下划线的用法,以前从未听说过:)。我想我忘了我必须导入random,现在你提到了:)。你说的“验证”是什么意思?
I
没有被使用,但没关系。当您使用for循环只是为了重复,并且不需要循环变量时,约定是将其设置为
\uuuu
。我在代码中看到的唯一问题是最后一个
print
语句应该在for循环中如果您运行的是Python3使用
a=int(输入(“选择最小”)
,如果您使用的是Python2使用
a=int(原始输入(“选择最小”)
。非常感谢您的完整示例。最后一个“随机数()是做什么的?”?它看起来像是一个elif,应该在我的main中,使我的函数工作。另外,“import random”是否必须位于“def random_numbers():”之前?我在一行中有多个函数,因此在def之前有import random意味着它是我函数的最后一行。最后一行仅仅是对
随机数的有效调用(您可以安全地删除它)。最佳实践建议将导入语句放在文件的顶部。但您也可以将它们放在函数中(当然,使用相同的缩进)。