Хранение всех результатов из цикла FOR LOOP в массиве - PullRequest
0 голосов
/ 22 марта 2019

Я создал массив с именем Player1_Cards. Каждая карта должна иметь номер и цвет. У игрока 1 должно быть 15 карт, которые можно пронумеровать от 1 до 30.

Я использовал цикл for для этого:

используя random.randint (1,30), я нашел номер карты.

используя random.randint (1,3), я назначаю число 1,2 или 3 цветам КРАСНЫЙ, ЖЕЛТЫЙ или ЧЕРНЫЙ.

Как мне сохранить все мои результаты из цикла for в виде массива?

Вот мой код:

Player1_Cards = [0]

import random
for i in range(1,16):
    i = random.randint(1,30)
    i_colour = random.randint(1,3)
    i_colour = str(i_colour)

    if i_colour == "1":
        i_colour = "RED"

    if i_colour == "2":
        i_colour = "YELLOW"

    if i_colour == "3":
        i_colour = "BLACK"



    Player1_Cards[i,i_colour]

Если я печатаю (i, i_colour), игнорируя массив, примеры того, что он может выполнить:

6 YELLOW
28 YELLOW
8 RED
3 BLACK
22 RED
2 BLACK
26 RED
25 YELLOW
8 RED
20 RED
16 BLACK
12 YELLOW
4 RED
20 BLACK
1 YELLOW

Ответы [ 2 ]

1 голос
/ 22 марта 2019

Более простой способ реализовать это - использовать списки:

import random

colours = ['RED', 'BLUE', 'YEllOW']
player_hand = [(random.randint(1, 30), random.choice(colours)) for _ in range(15)]

Output:
# 21 BLUE
# 22 BLUE
# 25 YEllOW
# 11 BLUE
# 4 RED
...
0 голосов
/ 22 марта 2019

Попробуйте это:

Player1_Cards = []

в начале.затем в конце цикла:

Player1_Cards.append((i, i_colour))

И после цикла:

print(Player1_Cards)

У вас также есть ошибка в вашем коде:

for i in range(1,16):
    i = random.randint(1,30)

Обаустановит значение переменной i.Это не имеет смысла таким образом.Если вы просто хотите сделать цикл пятнадцать раз, лучше используйте вместо него _:

for _ in range(1,16):
...