Я не новичок в python. Но недавно я столкнулся с ошибкой из-за какого-то заблуждения. Кто-то, пожалуйста, помогите мне прояснить это. Вся программа здесь: http://www.codeskulptor.org/#user39_cFs3Z8mAtf_0.pyФункция программирования функции программирования Python
Я имею функцию
def mc_trial(board, player):
"""
Plays a game starting with the given player by making random
moves and alternating between players.
"""
while board.check_win() == None:
# Get a random empty square
empty_squares = random.choice(board.get_empty_squares())
# Move the player in a random position
board.move(empty_squares[0], empty_squares[1], player)
# Switch the player
player = provided.switch_player(player)
# Game has ended
return
scores = [[0 for dummy in range(board.get_dim())] \
for dummy in range(board.get_dim())]
board_clone = board.clone()
for dummy in range(trials):
print board_clone ## Empty board
mc_trial(board_clone, player)
print board_clone #### Here value is changing after function call. How ??
мои сомнения "board_clone" переходит к функции mc_trial(). оператор return не предоставляет ничего, относящегося к возврату значения, кроме None. Но после вызова, когда я печатаю «board_clone», значение меняется. Я попытался прояснить это с помощью ipython через образец программы. Но ценность остается неизменной, как в локальной области. Для пояснения я запустил образец программы, там он ведет себя так, как я ожидал.
def func1(var):
x = 0
while x < 1:
var[1:5]
x = x+1
return
var1 = [1,2,3,4,5,6,7,8,9]
print "B F", var1
func1(var1)
print "A F", var1
Исправьте отступ в вашей программе. – thefourtheye
@ thefourtheye - Заявление исправлено. – user3116355
Как насчет 'возвращения'? – thefourtheye