迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中的右对齐字符串

作者:迹忆客 最近更新:2023/03/01 浏览次数:

有时,在 python 中打印表格时,我们需要证明值看起来不错。在本文中,我们将讨论在 python 中右对齐字符串的不同方法。

顾名思义,格式说明符用于格式化字符串中的值。以下是在 python 中使用格式说明符的语法。

myStr= "%s"% (string_variable)

执行上述语句时,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

因此,输出字符串的指定长度小于或等于输入字符串的长度。因此,不会发生格式化。

使用格式说明符需要我们知道变量的数据类型才能打印它们。如果我们没有传递格式说明符中指定的正确数据类型的变量,程序会遇到 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}"

执行后,输出字符串被分配给 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 字符串后,输出被分配给变量 myStr1myStr2myStr3。为了使上述代码中的输出字符串右对齐,我们在占位符中使用输出字符串的长度,如下例所示。

示例代码:

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,小于或等于所有输入字符串的长度。因此,不会发生格式化。

除了 f-strings,我们还可以使用 format() 方法在 python 中右对齐字符串。

使用 format() 方法的语法:

myStr="{}".format(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() 方法后,输出将分配给变量 myStr1myStr2myStr3

让我们举个例子,你可以有任意数量的占位符,变量数量与 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() 方法的语法:

myStr= string_variable.rjust(output_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() 方法的方法,因为它更方便。

此外,在这种情况下,如果输入变量包含其他数据类型的值,程序也不会出错。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

Django 返回 JSON

发布时间:2023/05/04 浏览次数:106 分类:Python

在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。

在 Django 中创建对象

发布时间:2023/05/04 浏览次数:59 分类:Python

本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。

在 Django 中为多项选择创建字段

发布时间:2023/05/04 浏览次数:75 分类:Python

在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便