【问题标题】:Python program using class programs to simulate the roll of two dicePython程序使用类程序模拟掷两个骰子
【发布时间】:2017-01-26 08:30:39
【问题描述】:

我的程序应该模拟单个骰子的角色和两个骰子的角色,但我遇到了问题。这是我的代码的样子:

import random

#Dice class simulates both a single and two dice being rolled
#sideup data attribute with 'one'

class Dice:
    #sideup data attribute with 'one'

    def __init__(self):
        self.sideup='one'
    def __init__(self):
        self.twosides='one and two'

 #the toss method generates a random number
 #in the range of 1 through 6.


    def toss(self):
        if random.randint(1,6)==1:
            self.sideup='one'
        elif random.randint(1,6)==2:
            self.sideup='two'
        elif random.randint(1,6)==3:
            self.sideup='three'
        elif random.randint(1,6)==4:
            self.sideup='four'
        elif random.randint(1,6)==5:
            self.sideup='five'
        else:
            self.sideup='six'
    def get_sideup(self):
        return self.sideup
    def doubletoss(self):
        if random.randint(1,6)==1 and random.randint(1,6)==2:
            self.twosides='one and two'
        elif random.randint(1,6)==1 and random.randint(1,6)==3:
            self.twosides='one and three'
        elif random.randint(1,6)==1 and random.randint(1,6)==4:
            self.twosides='one and four'
        elif random.randint(1,6)==1 and random.randint(1,6)==5:
            self.twosides='one and five'
        elif random.randint(1,6)==1 and random.randint(1,6)==6:
            self.twosides='one and six'
        elif random.randint(1,6)==1 and random.randint(1,6)==1:
            self.twosides='one and one'
    def get_twosides(self):
        return self.twosides






#main function
def main():
    #create an object from the Dice class
    my_dice=Dice()


    #Display the siide of the dice is factory
   print('This side is up',my_dice.get_sideup())

    #toss the dice
    print('I am tossing the dice')
    my_dice.toss()

    #toss two dice
    print('I am tossing two die')
    my_dice.doubletoss()

   #Display the side of the dice that is facing up
    print('this side is up:',my_dice.get_sideup())

    #display both dices with the sides of the dice up
    print('the sides of the two dice face up are:',my_dice.get_twosides())



main()

这是我运行程序时的输出:

"Traceback(最近一次调用最后一次): 文件“C:/Users/Pentazoid/Desktop/PythonPrograms/DiceClass.py”,第 79 行,在 主要的() 文件“C:/Users/Pentazoid/Desktop/PythonPrograms/DiceClass.py”,第 61 行,在 main print('这面朝上',my_dice.get_sideup()) 文件“C:/Users/Pentazoid/Desktop/PythonPrograms/DiceClass.py”,第 32 行,在 get_sideup 返回self.sideup

AttributeError: 'Dice' 对象没有属性 'sideup'

我做错了什么?

【问题讨论】:

  • 只是提醒一下。接受正确答案在 SO 上被认为是礼貌的。尽管有声誉,但每个提问者都可以在他的问题下接受一个答案(这与投票不同)。您在答案的投票按钮下方有一个复选框。

标签: python class dice


【解决方案1】:

您有两个 init 方法。第二个取代了第一个,否定了你对 sideup 的定义。

改为:

def __init__(self):
    self.sideup='one'
    self.twosides='one and two'

【讨论】:

    猜你喜欢
    • 2013-11-28
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 2013-01-15
    • 1970-01-01
    相关资源
    最近更新 更多