这是一个与我找到的其他人相近的问题,但他们并没有帮助我,所以我这次专门询问我和我的目的。
我正在为机器人编码,该机器人应该向用户询问范围内的最大值和最小值,然后在该范围内生成10个随机数。在验证时,我告诉random
和i
都是未使用的变量。我不明白为什么。我认为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="")
我会非常高兴能够完成任务的每一条建议。提前谢谢!
答案 0 :(得分:6)
没有。 random.randint
不是内置函数。您必须导入 random
模块才能使用该功能。
另一方面,i
显然未在循环中使用,因此您通常会使用下划线_
代替i
import random
numbers = []
for _ in range(10):
numbers.append(random.randint(a, b))
您还会注意到我使用了一个列表来存储每次迭代的所有值。这样,您就不会丢弃先前迭代中的值。
如果您还不熟悉列表,可以查看文档:
解释
列表中的项是任意Python对象。列表由。形成 将逗号分隔的表达式列表放在方括号中
最后一点,要打印列表中的项目,您可以使用str.join
方法,但不能在列表中的项目从整数转换为字符串后使用:
output = ', '.join([str(num) for num in numbers])
print(output)
答案 1 :(得分:2)
您的原始功能值得一提的几点:
random
模块不是内置的,您必须明确导入它。input
始终返回字符串,因此您必须先将它们转换为整数,然后再将它们传递给random.randint
i
确实没有在你的for循环中使用。您也可以用_
替换它(强化事实,因为副作用而循环,例如打印而不是变量本身)。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