这段代码有什么错误?

0 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()
Run Code Online (Sandbox Code Playgroud)

aar*_*ing 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()
Run Code Online (Sandbox Code Playgroud)
  1. 您需要def关键字来定义函数.
  2. 您需要使用==而不是=用于比较.
  3. 你链接if语句使用elif.

除此之外,它看起来不错.正如在正确和将编译.它总会产生相同的值.

更好的方法是:

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)
Run Code Online (Sandbox Code Playgroud)

在这里,我们将一个'参数'传递给函数.我们有叫它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)
Run Code Online (Sandbox Code Playgroud)

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

我没有读它,因为python不是我的第一语言,但我被告知这是对python和编程的一个非常好的介绍.