Python为什么不这样随机?

时间:2020-08-06 11:20:45

标签: python python-3.x

所以我从Python开始,以为制作一个骰子滚子很有趣。 我创建了这个:

import random
import keyboard
print("Which dice would you like? 6 side or 20 side?")
dice = input()
print("Press the space key to initiate a roll")
while True:
    if keyboard.is_pressed(' '):
        print(random.randint(0, dice))

现在,我假设在0范围内随机进行一个预先设置的变量(其中有一个数字,而不是null)应该可以工作。我的意思是,它可以在Java和C#中运行,所以为什么不正确呢?

由于某种原因,Python讨厌这个,我调试了它,它死在打印行,并给我这个错误:

Traceback (most recent call last):
  File "C:/Users/kiril/PycharmProjects/Practice/main.py", line 8, in <module>
    print(random.randint(0, dice))
  File "C:\Python\lib\random.py", line 248, in randint
    return self.randrange(a, b+1)
TypeError: can only concatenate str (not "int") to str

这是什么问题?它不接受预制变量(我的意思是随机类)吗?难道Python的输入使所有东西都变成了字符串(我不知道这是不是真的,但是嘿,也许只有第二天才使用该语言)? 我该如何解决?

4 个答案:

答案 0 :(得分:2)

input返回的输入类型为str 只是做:

dice = int(input())

答案 1 :(得分:0)

您的输入函数返回一个string类型的值。您需要将其转换为int类型的值。 为此:

dice = int(input())

答案 2 :(得分:0)

dice = int(input())将输入转换为int

答案 3 :(得分:0)

您必须dice=int(input())

这是代码

import random
import keyboard
print("Which dice would you like? 6 side or 20 side?")
dice =int(input())
print("Press the space key to initiate a roll")
while True:
    if keyboard.is_pressed(' '):
        print(random.randint(0, dice))

尝试一下,它将起作用

相关问题