首页 > 解决方案 > 如何使用变量而不是直接输入在 Python 中对齐文本?

问题描述

我正在尝试编写一个函数,它需要 6 个输入、一个名字和姓氏、两个对齐字符和两个对齐长度。该函数应该使用对齐变量显示名称,如下所示:

|First name  | Last name|
|John        |     Smith|

我了解如何通过使用 f 字符串或字符串格式直接输入所需的值来进行文本对齐,例如

{first_name:<12} 

但是如何用变量替换 :<12 ?我不断收到 f 字符串语法错误。她是我正在尝试的:

def display_name(first_name, last_name, align1, length1, align2, length2):

    if align1 == "L":
        align1 = "<"

    elif align1 == "R":
        align1 = ">"

    elif align1 == "C":
        align1 = "^"

    if align2 == "L":
        align2 = "<"

    elif align2 == "R":
        align2 = ">"

    elif align2 == "C":
        align2 = "^"

print(f"{|First name:{align1}.{length1}}|{Last name:{align2}.{length2}}|")
print(f"{|first_name:{align1}.{length1}}|{last_name:{align2}.{length2}}|")

标签: pythonsyntaxstring-formattingf-string

解决方案


你很亲密。您不应该|在 f 字符串说明符中包含 。只需交换您的|and{}并且您的代码运行不会出错。

print(f"|{first_name:{align1}.{length1}}|{last_name:{align2}.{length2}}|")

推荐阅读