Почему моя функция players_list() продолжает цикл, когда она вызывается только один раз?

#python-3.x #function

#python-3.x #функция

Вопрос:

Я пишу код для игры, и во время моего тестирования функция players_list() продолжает цикл, даже если она вызывается только один раз. Код функции sixteen_is_dead(players) предназначен только для тестирования. Кто-нибудь может сказать мне, как решить эту проблему? Я хочу получить список из players_list() и запустить с ним sixteen_is_dead(игроки).

 import random


def sixteen_is_dead(players):
    if players[0][1] is True:
        print("Player 1 is not a Human!")


def players_list():
    players = []
    player_count2 = 0
    player_count = int(input("How many players are there?: "))
    for x in range(0, player_count):
        player_count2  = 1
        player_name = input("What's the {}. players name?: ".format(player_count2))
        player_is_bot = input("Is the {}. ? player a bot? J/N: ".format(player_count2))
        if player_is_bot == "J":
            is_bot = False
        elif player_is_bot == "N":
            is_bot = True
        players.append((player_name, is_bot))
    return players
    
        

players_list()
players = players_list()
print(players)
 

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

1. Вы показали два вызова players_list() . В чем проблема?

2. Возможно, я слеп, но где второй вызов? Одна находится ниже функций, а другая?

3. players = players_list() сразу после первого вызова

4. Хм, проблема исчезла после того, как я удалил эту часть кода, но я подумал, что мне это нужно, чтобы получить игроков из функции и использовать ее в sixteen_is_dead(игроки). Я делаю это неправильно, и решение для этого другое?

5. Сама по себе players_list() вызывает функцию, но возвращает результат в ничто. Последнее верно, но вы также можете использовать sixteen_is_dead(players_list())

Ответ №1:

Вы вызываете функцию 2 раза, вам просто нужно поместить:

 players= players_list()
print(players)