randint принимает мин и макс, например:
>>> import random
>>> random.randint(0,10)
1
но вы передаете кортеж:
>>> random.randint((0, 10))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: randint() takes exactly 3 arguments (2 given)
Вы можете использовать распаковку аргументов ( оператор *), чтобы превратить ваш кортеж в серию аргументов для randint, если вам нравится:
>>> queendamagenum = 1, 20
>>> random.randint(*queendamagenum)
8
Что касается того факта, что в сообщении об ошибке указано «3 аргумента (2 дано)», то это потому, что randint на самом деле является методом, живущим в экземпляре random.Random, а не функцией. методы автоматически получают переданный им аргумент (традиционно называемый «я»), которым является сам экземпляр. Таким образом, вы должны перевести «3 аргумента (2 дано)» в «2 аргумента, не относящихся к себе (1 дано)», и вы передали ему только 1 кортеж, так что это имеет смысл.