我在写一个程序,希望骰子能并排打印。但是,实际输出仅将第二个模具的上基座放置在第一个模具的下基座旁边。有人能帮我理解为什么会这样吗?你知道吗
die1 = ('+-------+\n| |\n| * |\n| |\n+-------+')
die2 = ('+-------+\n| * |\n| |\n| * |\n+-------+')
die3 = ('+-------+\n| * |\n| * |\n| * |\n+-------+')
die4 = ('+-------+\n| * * |\n| |\n| * * |\n+-------+')
die5 = ('+-------+\n| * * |\n| * |\n| * * |\n+-------+')
die6 = ('+-------+\n| * * * |\n| |\n| * * * |\n+-------+')
list_die = ['0', die1, die2, die3, die4, die5, die6]
x = list_die[1]+' ' + list_die[2]
print(x)
my output
+-------+
| |
| * |
| |
+-------+ +-------+
| * |
| |
| * |
+-------+
尝试使用zip和列表
要让它们并排打印,你需要用拉链把它们包起来
分解得到单独的行,连接这些行,然后重新连接。请注意,最终结果的
\n
少于原始字符串的简单串联:例如
在编辑时;反复拆分相同的字符串是低效的。保留原始定义,可以使用以下行:
现在
list_die
包含拆分。你知道吗您现在只需使用:
其功能与上述相同。你知道吗
冒着太可爱的风险,你可以制作一个更灵活的版本,可以在一行上打印任意数量的骰子(对于编写冒险游戏或Yahtzee非常有用,通常需要三个或更多的骰子):
例如:
在进一步编辑时:您可以在不使用
zip
的情况下执行此操作,但代价是使代码更长。zip
是为并行迭代而设计的。例如,您将一对并排的骰子组合在一起,但将两个骰子面平行地向下迭代。如果不使用zip
,则需要使用列表索引来保持迭代的并行性。例如,pair()
的第二个版本(其中list_die
包含已经分割成线的骰子面)看起来像:这是可行的,但它的长度超过了200%(5行而不是2行)。你知道吗
要回答为什么会发生这种行为的问题,请注意对
print
和显式\n
的调用会在文本中插入一个换行符,这会强制输出向下一行。你知道吗除非您使用操纵控制台的代码,否则一旦您下线,就无法返回。从左到右,从上到下打印,就像打印机一样。你不能取消打印。你知道吗
如果您想要此功能,请查看图形库 . 诅咒是C++的简单GOTO库,并且可以有一个Python等价物。你知道吗
当然,正如其他答案所提到的,您可以将文本并排格式化,这对于您当前的目的可能是更好的选择。你知道吗
相关问题 更多 >
编程相关推荐