Python NameError

import random
kartlar = [1,1,2,3,4,5,6,7,8,9]
print("Blackjack Oyununa Hoşgeldiniz")
def kart_iste():
    puan=int(0)
    a1 = random.choice(kartlar)
    if int(a1) == int(1):
        a2 = input("As kartı aldınız 11 olarak mı oynayacaksınız 1 olarak mı ?\n")
        if int(a2) == int(11):
            puan+=11
        elif int(a2) == int(1):
            puan+=1
    else:
        puan+=int(a1)
        devam()
    return puan
def devam():
    if puan == int(21):
        print("Kazandın !!!")
        analog_interface()
    elif puan > int(21):
        print("Kaybettin")
        analog_interface()
    else:
        a3 = input("Yeni Puanınız {} Kart İstiyormusunuz ? (Y/N)\n".format(puan))
        if str(a3) == "Y" or "y":
            kart_iste()
        if str(a3) == "N" or "n":
            print("Puanınız {}".format(puan))
            analog_interface()
    return puan
def analog_interface():
    a4 = input("""
            [1] Tek Kişilik Oyna




\n""")
    if int(a4) == int(1):
        kart_iste()
analog_interface()

Basit 40-50 satırlık bir Blackjack oyunu kodluyorum python’da ve şu hatayı alıyorum bir türlü çözemedim yardımcı olursanız sevinirim.
NameError: name ‘puan’ is not defined

Puani kart iste fonksiyonunda tanimlamissin, ama baska bir fonksiyondan cagiriyorsun. Yazbel belgelerinden fonksiyonlar bolumunu oku.

1 Beğeni

Link atabilirmisiniz, teşekkürler.

Puan adlı bir değişken yok. Bir fonksiyonun içinde tanımlanan değişkene dışarıdan erişilemez.

1 Beğeni