出了什么问题?没有什么是用Python打印的

时间:2013-10-31 20:30:46

标签: python dice

我的任务是在Python 3.3.2中,它在这里:

为骰子对象创建一个类,可以随机生成1到6之间的数字并保存文件。

您将需要随机模块和

创建2个骰子对象a和b并将它们的值相加。

以下是规则

Win =总数等于7或11

失去=总数等于2,3或12

再次滚动=总数等于5,6,8,9,10直到7滚动或再次抛出相同的数字。


现在我写的代码:

import random

class Dice:
    '''A class that makes Dice'''

    number = random.randint(1,6)

a = Dice
b = Dice

result = a.number + b.number

def resultgiver():
    if result == '7':
        result == '11'
        print('You won! You got ' ,result,'.')

    elif result == '2':
        result == '3'
        result == '12'
        print('You lost! You got ' ,result,'.')

    elif result == '5':
        result == '6'
        result == '8'
        result == '9'
        result == '10'
        print('Roll again! You got ' ,result,'.')

    elif result == '5':
        result == '6'
        result == '8'
        result == '9'
        result == '10'

    elif result == '7':
        result == '11'

resultgiver()

5 个答案:

答案 0 :(得分:1)

一些问题:

  1. 你的班级实例周围需要括号:
  2. a = Dice()b = Dice()

    1. result是一个整数,但所有if语句都会检查它是否等于char。删除数字周围的所有引号

      如果结果== 5:

    2. 你需要在你的班级中使用一个init,这样你在实例化这个班时总会得到一个不同的数字。

      类骰子:         '''制作骰子的课程'''

          def __init__(self):
              self.number = random.randint(1,6)
      
    3. 尝试在结尾处放置一个else以捕获任何非7或5的结果:

      elif result == '7':
              result == '11'
      else:
          print "we got here"
      

      我认为您正在尝试使用if语句模拟switch语句。你做的方式不会工作,但试试这个:

      def resultgiver():
          if result in [7,11]:
              print('You won! You got ' ,result,'.')
      
          elif result in [2, 3, 12]:
              print('You lost! You got ' ,result,'.')
      
          elif result in [5, 6, 8, 9, 10]:
              print('Roll again! You got ' ,result,'.')
      
          else:
              print "default case for result =", result
      

答案 1 :(得分:1)

  

出了什么问题?没有什么东西在Python中打印

如果结果为7,2或5,则只打印任何内容,并且出于某种原因,如果它是字符串(并且它永远不是字符串,因为您不将其转换为字符串)。您只在全局范围内设置一次结果,因此重新运行该函数不会改变任何内容。

了解功能参数。您希望将数字结果作为参数传递给函数。

答案 2 :(得分:1)

你应该写

if result == 2 or result == 3 or result == 4:

等检查两个或更多条件。 另外a.number总是等于b.number,因为你只为Dice.number分配一次值。 试试这个:

class Dice(random.Random):
    def number(self):
        return self.randint(1, 6)
a = Dice()
b = Dice()
result = a.number() + b.number()

答案 3 :(得分:1)

由于这个作业,我建议阅读:

您在代码中的每个区域都出错了。

答案 4 :(得分:0)

您将字符串与整数进行比较!!

if result == '7':

我想在这段代码中

if result == '7':
    result == '11'
    print('You won! You got ' ,result,'.')

你想要这样做

if result == 7 or result == 11 :
    print('You won! You got ' ,result,'.')