python中“可以未定义名称 'point'”是什么意思?怎么解决?

运行结果及报错内容
import random

times = 1


def roll_dice():
    m = random.randint(1, 6)
    n = random.randint(1, 6)
    print("Player rolled %d+%d = %d" % (a, b, a + b))
    return m, n


def display_dice():
    print("Player rolled %d+%d=%d" % (a, b, a + b))


craps = {2, 3, 12}
while 1:
    a, b = roll_dice()
    if times == 1:
        point = a + b
        if a + b == 7 or a + b == 11:
            print("Player wins")
            times += 1
            break
        elif a + b in craps:
            print("Player loses")
            times += 1
            break
        else:
            print("Point is", point)
            times += 1
            continue
    else:
        if a + b == 7:
            print("Player loses")
            break
        elif a + b == point:
            print("Player wins")
            break
        else:
            continue

img

在else中point 这个变量没有定义

这里的中文翻译比较拗口,换成英文的就很好理解了。
Name 'point' can be undefined
意思就很明显了,是说point这个变量为被定义。


import random
 
times = 1
point=0
 
def roll_dice():
    m = random.randint(1, 6)
    n = random.randint(1, 6)
    print("Player rolled %d+%d = %d" % (a, b, a + b))
    return m, n
 
 
def display_dice():
    print("Player rolled %d+%d=%d" % (a, b, a + b))
 
 
craps = {2, 3, 12}
while 1:
    a, b = roll_dice()
    if times == 1:
        point = a + b
        if a + b == 7 or a + b == 11:
            print("Player wins")
            times += 1
            break
        elif a + b in craps:
            print("Player loses")
            times += 1
            break
        else:
            print("Point is", point)
            times += 1
            continue
    else:
        if a + b == 7:
            print("Player loses")
            break
        elif a + b == point:
            print("Player wins")
            break
        else:
            continue

point在开始定义一下哦