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()
方法的方法,因為它更方便。
此外,在這種情況下,如果輸入變數包含其他資料型別的值,程式也不會出錯。