你好,我刚开始用Python编程,我只是想制作一个RNG,但有一些错误我不理解。
这是代码
import random
import time
numbersGenerated = 0
print('Hello! How many numbers do you want?')
numbersNeeded = input()
print('What would you like the minimum for the numbers be?')
Min = input()
print('And the maximum?')
Max = input()
numbersNeeded = str(numbersNeeded)
numbersGenerated = str(numbersGenerated)
while numbersGenerated < numbersNeeded:
number = random.randint(Min, Max)
number = int(number)
numbersGenerated = numbersGenerated + 1
print(number)
print()
time.sleep(2)
print('All done. Hope to see you again!')
追溯错误显示
File "C:/Python32/Number_Generator.py", line 20, in <module>
number = random.randint(Min, Max)
File "C:Python32librandom.py", line 215, in randint
return self.randrange(a, b+1)
TypeError: Can't convert 'int' object to str implicitly
我已经把第十三行改成了int,但这并没有改变结果。
-
当
numbersGenerated
和numbersNeeded
是字符串时,您正在执行while numbersGenerated < numbersNeeded
,这可能不是您想要的。 -
您正在调用
random.randint(Min, Max)
,而Min
和Max
是字符串,它们应该是整数。 -
不需要
number = int(number)
,它将已经是一个内部 -
numbersGenerated = numbersGenerated + 1
,变量是字符串
在Python 3中,应该显式地转换input
的输入:
Min = int(input())
和
Max = int(input())