[英]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.