国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現字符串格式化的方法小結

2020-02-23 04:23:38
字體:
來源:轉載
供稿:網友

Python2.6+ 增加了str.format函數,用來代替原有的'%'操作符。它使用比'%'更加直觀、靈活。下面詳細介紹一下它的使用方法。

下面是使用'%'的例子:

"""PI is %f..." % 3.14159 # => 'PI is 3.141590...'"%d + %d = %d" % (5, 6, 5+6) # => '5 + 6 = 11'"The usage of %(language)s" % {"language": "python"} # => 'The usage of python'

格式很像C語言的printf是不是?由于'%'是一個操作符,只能在左右兩邊各放一個參數,因此右邊多個值需要用元組或者字典來包括,不能元組字典一起用,缺乏靈活度。

同樣的例子用format方法改寫:

"PI is {0}...".format(3.14159) # => 'PI is 3.14159...'"{0} + {1} = {2}".format(5, 6, 5+6) # => '5 + 6 = 11'"The usage of {language}".format(language = "Python") # => 'The usage of Python'

是不是很直觀?(當然,使用C語言的我也很喜歡前一種格式表達方式 :-) )

格式化字符串

"{named} consist of intermingled character {0} and {1}".format("data", "markup", /  named = "Formats trings")format(10.0, "7.3g") # => '   10'"My name is {0} :-{{}}".format('Fred') # => 'My name is Fred :-{}'

注意第一行的'/',如果一個語句要換行,必須在結尾加上反斜線轉義。

用'%'無法像這樣將元組和字典混用。其實這里是命名參數,Python的一個特性。可以在定義數組的時候用*args, **kwargs語法展開集合和字典。需要注意,命名參數放在后面。

第二個語句表示format內置函數用來格式化單個值。

第三個語句表示了{}的轉義,因為{}在被格式化字符串里是特殊字符,不能直接顯示。轉義方式是多嵌套一層。

使用屬性和索引

"My name is {0.name}".format(open('out.txt', 'w')) # => 'My name is out.txt'

'{0.name}' 相當于調用對象的屬性 open('out.txt', 'w').name

"My name is {0[name]}".format(dict(name='Fred')) # => 'My name is Fred'

使用索引也是可以的。

obj[key] 相當于 obj.____getitem____('key')

標準說明符(Specifiers)

寫過C語言的程序員應該清楚printf的復雜。format也定義了很多標準的說明符,用來解釋一個值的格式,然后插入字符串內。例如:

"My name is {0:8}".format('Fred') # => 'My name is Fred  '

':'之后便是說明符了,上面例子中說明符只有一個'8'(minimumwidth),它表示插入的值寬度至少為8。'Fred'只有4,所以又加了4個空格。

說明符的詳細格式為:

[[fill]align][sign][#][0][minimumwidth][.precision][type](不比C的printf更簡潔啊!)

注意:'[]'表示該元素可選。所以,所有的格式說明符都是可選的!就像之前的例子,幾乎都沒有用這個(只是為了例子更清晰)。實際上,這些是很有用的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 张家界市| 丹阳市| 新邵县| 东兰县| 敖汉旗| 朝阳市| 阳朔县| 常德市| 博野县| 桑植县| 永城市| 郴州市| 北辰区| 乌拉特后旗| 宜丰县| 新野县| 铁岭县| 新和县| 长沙市| 分宜县| 闻喜县| 海兴县| 年辖:市辖区| 兴仁县| 上犹县| 平罗县| 溧水县| 甘洛县| 新巴尔虎左旗| 河北区| 甘孜| 论坛| 谷城县| 綦江县| 张家川| 南开区| 浦江县| 都江堰市| 连城县| 梁平县| 大厂|