Python程序不工作

2024-06-09 13:27:49 发布

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

我是python的新手,很抱歉,如果这太简单了,但是我有点卡住了,我已经查看了关于掷硬币的其他问题,但是这比那些问题更简单:

简单地说,为什么我的程序不能工作?你知道吗

class Coin: 

    showing_heads=True
    value=1

    def show(self):
        if (self.showing_heads==True): 
            return "Heads" 
        else:              
            return "Tails" 

    def turn(self): 
        if (self.showing_heads==True): 
              self.showing_heads=False 
        else:                           
            self.showing_heads=True 

    def run_cointoss(2): 
          coin1=Coin() 
          coin2=Coin() 

          print "This is coin1" 
          print coin1.show() 
          print "This is coin2" 
          print coin2.show() 
          print "Turn them over" 
          coin1.turn() 
          coin2.turn() 
          print "This is coin1" 
          print coin1.show() 
          print "This is coin2" 
          print coin2.show() 

Tags: selftruereturnifisdefshowthis
2条回答

您不应该在coin类中创建硬币:

def run_cointoss(2): 
    coin1=Coin() 
    coin2=Coin() 

相反,在类定义之后创建它们

class Coin:
    showing_heads=True
    value=1
    def show(self):
        if (self.showing_heads==True): 
            return "Heads" 
        else:              
            return "Tails" 

    def turn(self): 
        if (self.showing_heads==True): 
             self.showing_heads=False 
        else:                           
            self.showing_heads=True 
# Class definition is done

def run_cointoss(): 
      coin1=Coin() 
      coin2=Coin() 

      print "This is coin1" 
      print coin1.show() 
      print "This is coin2" 
      print coin2.show() 
      print "Turn them over" 
      coin1.turn() 
      coin2.turn() 
      print "This is coin1" 
      print coin1.show() 
      print "This is coin2" 
      print coin2.show() 

run_cointoss()

一个问题是在函数参数中使用2。函数参数需要有效标识符,2不是有效标识符:

>>> def func(x):
    pass
... 
>>> def func(x = 2):
    pass
... 

您的错误:

>>> def func(2):
    pass
  File "<ipython-input-234-dc2d2489d3d8>", line 1
    def func(2):
             ^
SyntaxError: invalid syntax

第二,如果您的原始代码缩进到问题体中,那么您应该将函数run_cointoss的定义移到类体之外。你知道吗

相关问题 更多 >