这段代码有什么错误?

时间:2010-09-17 05:45:44

标签: python error-handling

假设您已经编写了一个新功能,可以检查您的游戏角色是否还有生命。如果角色没有剩下任何生命,则该函数应该打印“死”,如果它具有小于或等于5个生命点,则该函数应该打印“几乎死”,否则它应该打印“活着”。

am_i_alive(): 
    hit_points = 20
    if hit_points = 0: 
        print 'dead'
    else hit_points <= 5: 
        print 'almost dead'
    else: 
        print 'alive'

am_i_alive()

1 个答案:

答案 0 :(得分:8)

def am_i_alive(): 
    hit_points = 20
    if hit_points == 0: 
        print 'dead'
    elif hit_points <= 5: 
        print 'almost dead'
    else: 
        print 'alive'

am_i_alive()
  1. 您需要def关键字来定义功能。
  2. 您需要使用==而不是=进行比较。
  3. 使用elif链接if语句。
  4. 除此之外,它看起来不错。正如在正确和将编译。它总会产生相同的值。

    更好的方法是:

    def am_i_alive(hit_points): 
        if hit_points == 0:
            print 'dead'
        elif hit_points <= 5: 
            print 'almost dead'
        else: 
            print 'alive'
    
    am_i_alive(20)
    am_i_alive(3)
    am_i_alive(0)
    

    在这里,我们将'参数'传递给函数。我们将其称为am_i_alive(x),其中x可以是任意数字。在函数am_i_alive的代码中,我们代替x的任何内容都将成为hit_points引用的值。

    一个函数也可以带两个参数。 (事实上​​,最多255个参数)

    def am_i_alive(hit_points, threshold): 
        if hit_points == 0:
            print 'dead'
        elif hit_points <= threshold: 
            print 'almost dead'
        else: 
            print 'alive'
    
    am_i_alive(20, 5)
    am_i_alive(3, 2)
    am_i_alive(0, 10)
    

    你能理解上一个版本的作用吗?

    我没有看过它,因为python不是我的第一语言,但我被告知这是一个非常好的introduction to python and programming