Pythonフォーマット文字列%とformatの違い
概要
Pythonで文字列をフォーマットするには、%とformatの2つの方法があります.
Python2.6 formatという文字列をフォーマットする方法を導入しました
区別する
%
format
3.6の新しい特性f-strings
よく使われるformatの使い方
通過位置
キーワード経由
位置に依存しない
オブジェクトのプロパティを使用
下付き文字
塗りつぶしと位置合わせ
塗りつぶしは常に位置合わせとともに使用されます^、中央揃え、左揃え、右揃え、後ろ幅:番号の後ろに塗りつぶされた文字は1文字のみで、指定しないとデフォルトはスペースで塗りつぶされます.
zfill()メソッドPython zfill()メソッドは、指定した長さの文字列を返し、元の文字列を右揃えにし、前に0を入力します.zfill()メソッド構文:str.zfill(width)パラメータwidth文字列の長さを指定します.元の文字列は右揃えで、前に0を入力します.指定した長さの文字列を返します.
精度とタイプf
ここで.4は長さ4の精度を示し,fはfloatタイプを示す.
その他の進数b,d,o,xはそれぞれバイナリ,10進数,8進数,16進数である
千桁区切り文字
参考記事:https://www.cnblogs.com/liwenzhou/p/8570701.html
Pythonで文字列をフォーマットするには、%とformatの2つの方法があります.
Python2.6 formatという文字列をフォーマットする方法を導入しました
区別する
%
#
c = (250, 250)
# % ...
s1 = " :%s" % (c,)
# c , % c
format
#
c = (250, 250)
# format
s2 = " :{}".format(c)
3.6の新しい特性f-strings
name = "DZM"
age = 18
f"My name is {name}.I'm {age}"
# "My name is DZM.I'm 18"
よく使われるformatの使い方
通過位置
print('{0},{1},{0}'.format('dzm', 18))
# dzm,18,dzm
キーワード経由
位置に依存しない
print('my name is {x},my age is {y}'.format(x='dzm',y=18))
# my name is dzm,my age is 18
#
data = {"name": "DZM", "age": 18}
print("Name:{name}, Age:{age}".format(**data))
# 'Name:DZM, Age:18'
オブジェクトのプロパティを使用
class Person():
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return "{self.name} is {self.age} years old.".format(self=self)
dzm = Person("dzm", 18)
print(dzm)
# dzm is 18 years old.
下付き文字
data = [11, 22]
print("{0[0]} ----- {0[1]}".format(data))
# 11 ----- 22
塗りつぶしと位置合わせ
塗りつぶしは常に位置合わせとともに使用されます^、中央揃え、左揃え、右揃え、後ろ幅:番号の後ろに塗りつぶされた文字は1文字のみで、指定しないとデフォルトはスペースで塗りつぶされます.
# 18 10
print("{:>10}".format('18'))
' 18'
# 18 10 0
"{:0>10}".format('18')
zfill()メソッドPython zfill()メソッドは、指定した長さの文字列を返し、元の文字列を右揃えにし、前に0を入力します.zfill()メソッド構文:str.zfill(width)パラメータwidth文字列の長さを指定します.元の文字列は右揃えで、前に0を入力します.指定した長さの文字列を返します.
"18".zfill(10)
# '0000000018'
精度とタイプf
ここで.4は長さ4の精度を示し,fはfloatタイプを示す.
print("{:.4f}".format(3.1415926))
# 3.1416
その他の進数b,d,o,xはそれぞれバイナリ,10進数,8進数,16進数である
{:b}".format(18)
'10010'
千桁区切り文字
"{:,}".format(1234567890)
'1,234,567,890'
参考記事:https://www.cnblogs.com/liwenzhou/p/8570701.html