Python 中的右对齐字符串
- 在 Python 中使用格式说明符来右对齐字符串
-
在 Python 中使用
f-strings
右对齐字符串 -
使用
format()
方法在 Python 中右对齐字符串 -
使用
rjust()
方法在 Python 中右对齐字符串 - 结论
有时,在 python 中打印表格时,我们需要证明值看起来不错。在本文中,我们将讨论在 python 中右对齐字符串的不同方法。
在 Python 中使用格式说明符来右对齐字符串
顾名思义,格式说明符用于格式化字符串中的值。以下是在 python 中使用格式说明符的语法。
myStr= "%s"% (string_variable)
string_variable
是需要打印为字符串的变量名称。%s
用作字符串变量的格式说明符和占位符。对于整数和浮点数,你可以使用%d
和%f
作为格式说明符。
执行上述语句时,string_variable
中的值将分配到字符串中格式说明符的位置。最后,将输出字符串分配给 myStr
。
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s %s" % (string_variable1, string_variable2, string_variable3)
print(myStr)
输出:
Delftstack Aditya Jinku
在上面的示例中,我们定义了三个字符串变量。之后,我们使用格式说明符将输入转换为单个字符串。
在下一个示例中,假设变量的数量少于字符串中格式说明符的数量。在这种情况下,程序将遇到 TypeError
异常,表示没有足够的参数提供给格式字符串。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s %s" % (string_variable1, string_variable2)
print(myStr)
输出:
Traceback (most recent call last):
File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
myStr = "%s %s %s" % (string_variable1, string_variable2)
TypeError: not enough arguments for format string
上面的代码中有三个格式说明符。但是,我们只给出了两个字符串变量作为%
运算符的输入参数。
因此,程序会遇到 TypeError
异常。同样,当格式字符串中的变量多于格式说明符的数量时,程序会遇到 TypeError
异常,表示格式字符串的所有参数在字符串格式化期间尚未转换。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s" % (string_variable1, string_variable2, string_variable3)
print(myStr)
输出:
Traceback (most recent call last):
File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
myStr = "%s %s" % (string_variable1, string_variable2, string_variable3)
TypeError: not all arguments converted during string formatting
在上面的例子中,只有两个格式说明符,但我们给了三个字符串变量作为%
运算符的输入参数。因此,程序在执行时会遇到 TypeError
异常。
为了使输出字符串右对齐,我们使用输出字符串的长度和格式说明符,如以下代码段所示。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%10s" % (string_variable1)
myStr2 = "%10s" % (string_variable2)
myStr3 = "%10s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)
我们在上面的例子中指定了输出字符串长度为 10
。执行后,输出字符串的长度为 10
。
输出:
Delftstack
Aditya
Jinku
在输出中观察字符串是右对齐的。如果 string_variable
的长度小于格式说明符中指定的输出字符串的长度,则将空格字符填充到字符串以右对齐输入字符串。
如果 string_variable
的长度大于格式说明符中指定的输出字符串的长度,则输入字符串不会发生任何变化,并且会原样打印。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%5s" % (string_variable1)
myStr2 = "%5s" % (string_variable2)
myStr3 = "%5s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)
输出:
Delftstack
Aditya
Jinku
我们将输出字符串长度指定为 5
。但是,我们作为输入传递的所有字符串的长度都大于或等于 5
。
因此,输出字符串的指定长度小于或等于输入字符串的长度。因此,不会发生格式化。
在 Python 中使用 f-strings
右对齐字符串
使用格式说明符需要我们知道变量的数据类型才能打印它们。如果我们没有传递格式说明符中指定的正确数据类型的变量,程序会遇到 TypeError
异常。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%d" % (string_variable1)
myStr2 = "%5s" % (string_variable2)
myStr3 = "%5s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)
输出:
Traceback (most recent call last):
File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
myStr1 = "%d" % (string_variable1)
TypeError: %d format: a number is required, not str
你可以看到我们使用%d
作为格式说明符。但是,我们已将字符串作为输入传递给 %
运算符。
由于这个原因,程序遇到了一个 TypeError
异常,说它需要一个整数输入而不是一个字符串。为了避免这个错误,我们可以使用 f-strings 来右对齐字符串。
使用 f-strings
的语法:
myStr=f"{string_variable}"
string_variable
是必须打印其值的变量。{}
用作string_variable
的占位符。- 字符串前的文字
f
表明该字符串是一个 f 字符串。
执行后,输出字符串被分配给 myStr
。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1}"
myStr2 = f"{string_variable2}"
myStr3 = f"{string_variable3}"
print(myStr1)
print(myStr2)
print(myStr3)
输出:
Delftstack
Aditya
Jinku
我们在上面的示例中创建了三个变量。之后,我们为每个变量创建了三个 f-strings
。
在执行 f 字符串后,输出被分配给变量 myStr1
、myStr2
和 myStr3
。为了使上述代码中的输出字符串右对齐,我们在占位符中使用输出字符串的长度,如下例所示。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1:>10}"
myStr2 = f"{string_variable2:>10}"
myStr3 = f"{string_variable3:>10}"
print(myStr1)
print(myStr2)
print(myStr3)
输出:
Delftstack
Aditya
Jinku
我们在占位符中使用了语法 variable_name:> output_length
来右对齐输出中的字符串。我们已将 output_length
指定为 10
。
如果 string_variable
的长度小于在占位符中指定的输出字符串的长度,则将空格字符填充到字符串以右对齐输入字符串。就像在下面的代码片段中一样,如果 string_variable
的长度大于在占位符中指定的输出字符串的长度,则输入字符串不会发生任何变化,并且会保持不变。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1:>5}"
myStr2 = f"{string_variable2:>5}"
myStr3 = f"{string_variable3:>5}"
print(myStr1)
print(myStr2)
print(myStr3)
输出:
Delftstack
Aditya
Jinku
我们将输出字符串的长度指定为 5
,小于或等于所有输入字符串的长度。因此,不会发生格式化。
使用 format()
方法在 Python 中右对齐字符串
除了 f-strings
,我们还可以使用 format()
方法在 python 中右对齐字符串。
使用 format()
方法的语法:
myStr="{}".format(string_variable)
string_variable
是需要打印为字符串的变量的名称。{}
用作字符串变量的占位符。
当执行 format()
方法时,string_variable
中的值被分配到字符串中占位符的位置。最后,将输出字符串分配给 myStr
。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{}".format(string_variable1)
myStr2 = "{}".format(string_variable2)
myStr3 = "{}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)
输出:
Delftstack
Aditya
Jinku
在上面的示例中,我们创建了三个变量。之后,我们使用了三次 format()
方法,每个变量一次。
在执行 format()
方法后,输出将分配给变量 myStr1
、myStr2
和 myStr3
。
让我们举个例子,你可以有任意数量的占位符,变量数量与 format()
方法的输入参数相同。
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {} {}".format(string_variable1,string_variable2,string_variable3)
print(myStr)
输出:
Delftstack Aditya Jinku
我们将所有三个变量作为输入参数传递给 format()
方法。输出作为单个字符串返回。
如果传递给 format()
方法的变量少于字符串中占位符的数量,程序将遇到 IndexError
异常,如下例所示。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {} {}".format(string_variable1,string_variable2)
print(myStr)
输出:
Traceback (most recent call last):
File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
myStr = "{} {} {}".format(string_variable1,string_variable2)
IndexError: Replacement index 2 out of range for positional args tuple
看到有三个占位符,但我们只将两个字符串作为输入参数传递给 format()
方法。因此,程序会遇到 IndexError
异常。
当传递给 format()
方法的变量数量多于调用 format()
方法的字符串中的占位符时,等于占位符数量的变量将包含在字符串中。其余变量被丢弃。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {}".format(string_variable1,string_variable2,string_variable3)
print(myStr)
输出:
Delftstack Aditya
你可以看到只有两个占位符,我们已经将三个字符串作为输入传递给 format()
方法,但这次程序没有遇到 IndexError
。只有最后一个输入参数已被丢弃。
为了使用 format()
方法右对齐输出字符串,我们在占位符中使用输出字符串的长度,如下例所示。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{:>10}".format(string_variable1)
myStr2 = "{:>10}".format(string_variable2)
myStr3 = "{:>10}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)
输出:
Delftstack
Aditya
Jinku
在这里,如果 string_variable
的长度小于在占位符中指定的输出字符串的长度,则会在字符串中填充空格字符以右对齐输入字符串。
如果 string_variable
的长度大于在占位符中指定的输出字符串的长度,则输入字符串不会发生任何变化,并且会按原样打印。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{:>5}".format(string_variable1)
myStr2 = "{:>5}".format(string_variable2)
myStr3 = "{:>5}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)
输出:
Delftstack
Aditya
Jinku
上面讨论的所有方法都用于格式化每种数据类型的变量。Python 还为我们提供了特定于字符串的方法。
我们可以使用 rjust()
方法在 python 中右对齐字符串。
使用 rjust()
方法在 Python 中右对齐字符串
rjust()
方法的语法:
myStr= string_variable.rjust(output_length)
string_variable
是其值需要右对齐的变量。ouput_length
是输出字符串的长度。
当在 string_variable
上调用 rjust()
方法时,它将 output_length
作为其输入参数并返回分配给 myStr
的右对齐字符串。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = string_variable1.rjust(10)
myStr2 = string_variable2.rjust(10)
myStr3 = string_variable3.rjust(10)
print(myStr1)
print(myStr2)
print(myStr3)
输出:
Delftstack
Aditya
Jinku
如果 string_variable
长度小于 output_length
,则将空格字符填充到字符串以右对齐输入字符串。
在下一个示例中,如果 string_variable
的长度大于 output_length
,则输入字符串不会发生任何变化,并且会原样打印。
示例代码:
string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = string_variable1.rjust(5)
myStr2 = string_variable2.rjust(5)
myStr3 = string_variable3.rjust(5)
print(myStr1)
print(myStr2)
print(myStr3)
输出:
Delftstack
Aditya
Jinku
结论
在本文中,我们讨论了在 python 中右对齐字符串的四种方法。在所有这些中,我建议你使用使用 format()
方法的方法,因为它更方便。
此外,在这种情况下,如果输入变量包含其他数据类型的值,程序也不会出错。