Ошибка имени: имя «player_score» не определено — я не совсем новичок, но мне нужна помощь

#python-3.x

Вопрос:

 import tkinter as sg
from random import randint
import time
t = ["rock", "paper", "scissors"]
comput = t[randint(0, 2)]
def comput_score():
    if comput == '1':
        comput = 'rock'
    if comput == '2':
        comput = 'paper'
    if comput == '3':
        comput = 'scissors'
print(comput)
def score():
    comput_score = 0
    player_score = 0
def end():
    pass
#rock = 0, paper = 1, scissors = 2
###### player = rock
def play():
    global player_score
    global comput_score
    player = input("Choose rock-paper-scissors(or end to end the game): ").lower()
    if player == "rock":
        if comput == "rock":
            print("Computer choose rock")
            print("TIE!")
            print("you score: "   str(player_score))
            print("copmuter score: "   str(comput_score))
        if comput == "paper":
            print("Computer choose paper")
            print("HA! Paper beats rock")
            comput_score =  1
            print("you score: "   str(player_score))
            print("copmuter score: "   str(comput_score))
        if comput == "scissors":
            print("Computer choose scissors")
            print("Awesome, You Won! rock beats scissors")
            player_score =  1
            print("you score: "   str(player_score))
            print("copmuter score: "   str(comput_score))
    ##### player = paper
    if player == "paper":
        if comput == "rock":
            print("Computer choose rock")
            print("Awesome, You Won! paper beats rock")
            player_score =  1
            print("you score: "   str(player_score))
            print("copmuter score: "   str(comput_score))
        if comput == "paper":
            print("Computer choose paper")
            print("TIE!")
        if comput == "scissors":
            print("Computer choose scissors")
            print("HA! Scissors beats paper")
            comput_score =  1
            print("you score: "   str(player_score))
            print("copmuter score: "   str(comput_score))
    ##### player = paper
    if player == "scissors":
        if comput == "rock":
            print("Computer choose rock")
            print("HA! Rock beats scissors")
            comput_score =  1
            print("you score: "   str(player_score))
            print("copmuter score: "   str(comput_score))
        if comput == "paper":
            print("Computer choose paper")
            print("Awesome, You Won! scissors beats paper")
            player_score =  1
            print("you score: "   str(player_score))
            print("copmuter score: "   str(comput_score))
        if comput == "scissors":
            print("Computer choose scissors")
            print("TIE!")
            print("you score: "   str(player_score))
            print("copmuter score: "   str(comput_score))
    if player == "end":
        end()
play()
end()
print("hiiii")
 

это игра в rps, мне нужна помощь в этом, я только кодирую на python около недели или 2, так что я еще не все знаю. Я ничего не пробовал и открыт для всех предложений. пожалуйста, также добавьте несколько предложений о том, что я могу сделать, чтобы сделать код более аккуратным или эффективным, спасибо……………………………………………………………

Комментарии:

1. извините, я забыл добавить, что моя проблема в том, что после того, как я его создам, я могу перейти к выбору каменной бумаги или ножниц, и это показывает, кто выиграл, проиграл или сыграл вничью, но после этого я получаю сообщение —Ошибка имени: имя «player_score» не определено —

2. Ошибка связана с именем переменной player_score , которое вы определили как глобальную переменную в своей функции.

Ответ №1:

Вы определили «player_score» в функции «оценка», но не вызывайте эту функцию. И в функции «оценка» вам нужно определить «рекорд игрока» как глобальный

 def score():
    global player_score
    player_score = 0
 

Комментарии:

1. БОЛЬШОЕ ВАМ СПАСИБО!