如何在类中的函数中生成不重复的随机数?

2024-10-01 17:26:29 发布

您现在位置:Python中文网/ 问答频道 /正文

函数中的随机数保持原样,例如,当数字为1时,它保持为1。但当它在函数外取时,它会生成其他数字。在

如何在函数中生成非重复随机数?在

from random import *
randomEnemyNames = ["Gandalf", "Batman", "Magikarp", "Ed Sheeran", "Justin Bieber"]
class Character(object):
    def __init__(self, name):
        self.name = name
        self.attackPhysical = getrandbits(4)
        self.attackMagical = getrandbits(5)
        self.enemyAttack = getrandbits(6)
        self.critChance = random()
        self.randomHeal = getrandbits(3)
    def attack(self, enemy):
        #inside the class and functions
        print self.critChance #testing with two trials to see if all of it goes random in different ways
        print self.critChance
        print self.attackPhysical
        print self.attackPhysical
        print self.attackMagical
        print self.attackMagical
        print enemy.enemyAttack
        print enemy.enemyAttack
        print self.critChance
        print self.critChance
        print self.randomHeal
        print self.randomHeal
        print self.name
        print enemy.name
the_player = Character("Roy")
the_enemy = Character(choice(randomEnemyNames))
the_player.attack(the_enemy)
#outside the class and functions
print random()
print getrandbits(3)
print getrandbits(4)
print getrandbits(5)
print getrandbits(6)
raw_input("Enter to exit")

Tags: the函数nameselfrandomclassprintcharacter
1条回答
网友
1楼 · 发布于 2024-10-01 17:26:29

您将值赋给类的这些属性,而不是代码,它可能看起来像这样:

def getrandbits(n):
    return 9  # I rolled 3d6

class Character:
    def __init__(self):
        self.attackPhysical = getrandbits(4)
    def attack(self, enemy):
        print(self.attackPhysical)
        print(self.attackPhysical)

每次都需要生成一个新的数字。可能是这样的:

^{pr2}$

相关问题 更多 >

    热门问题