我创建了一个名为Player1_Cards的数组。 每张卡都需要有一个数字和颜色。 Player1应该有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
答案 0 :(得分:1)
一种更简单的方法是使用列表推导:
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
...
答案 1 :(得分:0)
尝试一下:
Player1_Cards = []
开头。然后在循环结束时:
Player1_Cards.append((i, i_colour))
在循环之后:
print(Player1_Cards)
您的代码中也有一个错误:
for i in range(1,16):
i = random.randint(1,30)
两者都将变量i
设置为一个值。这样没有道理。如果您只想进行15次循环,则最好改用_
:
for _ in range(1,16):