![](/img/trans.png)
[英]Python to return multiple different strings that all begin with the same character
[英]Is there a way when i have multiple strings with different lengths to place a character at the same index for all strings
我正在 python 中制作 discord 機器人。 今天我抓取了一個網站,我想用我抓取的所有信息制作一個字符串。 我遇到的問題是我想在不同部分之間創建一條垂直線,但是有些字符串比其他字符串長,例如我想創建這個:
蘋果\s |
梨(\s) |
但是因為 2 個字符串的長度不同,所以 '|' 不會是一條直線。 我現在的代碼是這樣的:
def print_tracked_xp(self, XpDict):
trackedStuff = """Skill | Today's XP | Yesterday's XP | Weekly XP \n"""
for key in XpDict:
trackedStuff += key + ' | ' + XpDict[key]['Daily XP'] + ' | ' + XpDict[key]['Yesterdays XP'] + ' | ' + XpDict[key]['Weekly XP'] + '\n'
return trackedStuff
作為 output 我得到這個: https://imgur.com/FbZlTZd
但我想得到這樣的東西: https://imgur.com/VXxIP75
我會在您的打印語句中使用字符串格式化程序。 冒號后指定的任何內容都是為 print 語句中的變量保留的字符數。 我為技能分配了 13 個,為dailyXP 分配了7 個,為每周XP 分配了10 個,但是您可以輕松地修改這些值以添加緩沖區。
print('{0:13} | {1:7} | {2:7} | {3:10}'.format(skill, todayXP, yesterdayXP, weeklyXP))
有兩點需要注意:
1.) 您需要用一定數量的空格填充字符串,並對齊字符串(左、中或右)。 使用 Python F-String 可能如下所示:
strings = [
"Strength",
"Intelligence"
]
for string in strings:
print(f"{string:<20}|")
2.)從您發布的圖片中,我可以看到終端(其中顯示了您獲得的 output)似乎沒有使用等寬字體。 如果您打印 output 的終端沒有等寬字體,那么用空格填充字符串的正確程度並不重要 - 一切都會錯位。 這是因為非等寬字符 fonts 中的字符具有不同的像素寬度。 顧名思義,等寬字體對所有字符都有固定的寬度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.