[英]how do i print the 2d list as an even table?
#Create a program that allows 2 players to throw a 6 sided dice and record the roll value 10 times.
#The winner is the player with the highest total
#This task must store the results in a 2D array
#Extra:
#Work out the average roll across the 10 throws per player and display the result
#Frequency analysis broken down per player and per game
from random import randint
results = [[],[]]
for i in range (2):
player = []
total = 0
average = 0
#player enters their name
name = input(f"\nEnter your name player {i + 1}: ")
player.append(name)
print(f"Player {i + 1} it is your turn")
for x in range(10):
print("\nTo roll the die press any key")
input()
roll = randint(1,6)
player.append(roll)
print("You rolled a", roll)
total += roll
average = total/10
player.append(total)
player.append(average)
results.append(player)
print("""\nNAME R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 TOTAL AVG""")
for i in results:
for c in i:
print(c,end = " ")
print()
我不确定如何均匀地隔开这些值,以便它们在打印时排成一行。
我尝试在打印时在值之间添加空格,但如果其中一个名称或数字的长度不同,则整行将与列不对齐。
您可以使用以下语法:
print('%5s' % str(c))
基本上:
%
字符通知 python 它必须用某些东西代替令牌s
字符通知 python 令牌将是一个字符串5
(或您想要的任何数字)通知 python 用最多 5 个字符的空格填充字符串。计算两个名字之间的差异
diff = abs(len(results[2][0]) - len(results[3][0])) #abs = absolute value
比较两个名字的长度:
if len(results[2][0] ) > len(results[3][0]):
results[3][0] = results[3][0] + " "*diff # add spaces much as difference between 2 names
else:
results[2][0] = results[2][0] + " "*diff
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.