Python - print()不输出包含ASCII字符的列表



我正在制作一款剪刀石头布游戏,看起来很简单,但我在打印剪刀、石头和纸的ASCII图像时遇到了一个问题,我将其合并到列表中。代码看起来像这样:

import random
rock = '''
_______
---'   ____)
(_____)
(_____)
(____)
---.__(___)
'''
paper = '''
_______
---'   ____)____
______)
_______)
_______)
---.__________)
'''
scissors = '''
_______
---'   ____)____
______)
__________)
(____)
---.__(___)
'''
rps_list = rock+paper+scissors
player = int(input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors.: "))
computer = random.randint(0,2)
print(rps_list[player])
print(rps_list[copmuter])

之后,我有一些if函数来确定游戏的结果,但困扰我的是,当我使用打印函数和列表内的ASCII艺术列表时,我无法获得输出工作,我不明白为什么。如果我只使用例如

print(rock)
print(scissors)
print(paper)

我把精美的艺术品印出来,但不是用我自己的方式。我做错了什么?

rock+paper+scissors是字符串拼接。

使用rps_list = [rock, paper, scissors]

您需要将rps_list设置为如下列表

rps_list = [rock, paper, scissors]

这是因为rock,paperscissors是字符串,您尝试将它们全部添加。

在python中'Hello'+'hi' = 'hellohi'。这叫做字符串拼接。

import random
rock = '''
_______
---'   ____)
(_____)
(_____)
(____)
---.__(___)
'''
paper = '''
_______
---'   ____)____
______)
_______)
_______)
---.__________)
'''
scissors = '''
_______
---'   ____)____
______)
__________)
(____)
---.__(___)
'''
rps_list = [rock,paper,scissors]
player = int(input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors.: "))
computer = random.randint(0,2)
print(rps_list[player])
print(rps_list[computer])

还有一种方法可以将rock,paperscissors更改为列表,然后添加它们。

import random
rock = ['''
_______
---'   ____)
(_____)
(_____)
(____)
---.__(___)
''']
paper = ['''
_______
---'   ____)____
______)
_______)
_______)
---.__________)
''']
scissors = ['''
_______
---'   ____)____
______)
__________)
(____)
---.__(___)
''']
rps_list = rock+paper+scissors
player = int(input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors.: "))
computer = random.randint(0,2)
print(rps_list[player])
print(rps_list[computer])

相关内容

最新更新