Переменная не заменяет один из параметров в функции - PullRequest
0 голосов
/ 02 июля 2019

У меня есть функция, и я пытаюсь передать через нее глобальную переменную. Остальная функция работает, но когда ярды1 <= 0, пользователи по-прежнему == 0. </p>

Я предполагал, что 7 добавляется в whoScore, но я подумал, что поскольку whoScore является параметром, таким как x, он будет заменен на usercore. Я ищу способ сделать так, чтобы в функцию «приземления» могли быть включены пользовательские баллы или противоположности.

Я попытался переименовать параметр в одну букву, z. Не работал

Я напечатал whoScore и увидел, что на самом деле в whoScore добавляется 7, а не userscore.

userscore = 0
oppscore = 0

def runSuccess(text, x, y, whoScore):

    global yards1

    global distance

    global down

    global userscore

    global oppscore

    yardschange1 = random.randint(x, y)
    print(text, "Gain of ", yardschange1, "yards!")
    yards1 -= yardschange1
    down += 1
    distance -= yardschange1
    if yards1 <= 0:
        print("TOUCHDOWN!")
        whoScore += 7
        print("")
        print(whoScore)
        print(userteam, ":", userscore, oppteam, ":", oppscore)

runSuccess("blah", 1, 5, userscore)

Я ожидал, что userscore заменит whoScore в функции, потому что они находятся в том же месте в скобках, а userscore == 7. Однако whoScore запускается через функцию, а whoScore == 7.

Ответы [ 2 ]

1 голос
/ 02 июля 2019

добавьте userscore = whoScore в строке whoScore + = 1 в операторе if, если вы хотите изменить глобальное значение userscore. «usercore», который вы пропустили в runSuccess (), рассматривался как whoScore внутри функции, что означает, что он отличается от usercore.

0 голосов
/ 02 июля 2019

Вам нужно инициализировать переменную и затем использовать ее. как это:

import numpy as np
userscore = 0
oppscore = 0
yards1=0
distance=0
down=0
def runSuccess(text, x, y, whoScore):

  global yards1

  global distance

  global down

  global userscore

  global oppscore

  yardschange1 = np.random.randint(x, y)
  print(text, "Gain of ", yardschange1, "yards!")
  yards1 -= yardschange1
  down += 1
  distance -= yardschange1
  if yards1 <= 0:
      print("TOUCHDOWN!")
      whoScore += 7
      print("")
      print(whoScore)
      print('userteam', ":", userscore, 'oppteam', ":", oppscore)

    runSuccess("blah", 1, 5, userscore)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...