[PY3]——内置数据结构(4)——字符串格式化(format)
生活随笔
收集整理的這篇文章主要介紹了
[PY3]——内置数据结构(4)——字符串格式化(format)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
字符串格式化是拼接字符串的一種手段
join和+拼接字符串的方法,難以控制格式
printf style 字符串格式化
這種方法是從c語言繼承過來的
# 待格式化的字符串:一個字符串存在占位符 In [1]: s='i love %s'# 傳入的參數順序地替換占位符,并返回替換之后的字符串,但原串不變 In [2]: s % ('python',) Out[2]: 'i love python' In [3]: s Out[3]: 'i love %s'# 傳入的參數和占位符個數不匹配、或傳入的參數和類型不匹配,則拋出TypeError In [4]: 'i love %s,i am %d' % ('python',22) Out[4]: 'i love python,i am 22'In [5]: 'i love %s,i am %d' % ('python',) TypeError: not enough arguments for format stringIn [6]: 'i love %s,i am %d' % ('python','sfc') TypeError: %d format: a number is required, not strIn [11]: print('%s %%d' % 'python') python %d?
format
# 使用大括號作為占位符,調用format時其傳入的參數會替換大括號 In [3]: s='i love {},i am {}';s.format('python',18) Out[3]: 'i love python,i am 18'# 可以在占位符中加數字來指定傳入哪個參數,并且該位置參數可以多次使用 In [4]: s='i love {1},i am {0}';s.format(18,'python') Out[4]: 'i love python,i am 18'In [5]: s='i love {1},i am {1}';s.format(18,'python') Out[5]: 'i love python,i am python'In [19]: '{0},{1},{2}'.format(*'abc') Out[19]: 'a,b,c'# 可以在占位符中加標識符來指定關鍵字參數,并且關鍵字參數和位置參數可以同時使用 In [7]: s='my name is {0},i love {lang},i am {age}';s.format('jelly',lang='python',age=18) Out[7]: 'my name is jelly,i love python,i am 18'# 什么時候會拋出異常? # {} 是按照順序來使用位置參數,那么當占位符和參數個數不匹配則拋出異常 # {數字i} 會把傳入的參數當成一個列表args,使用位置參數i索引(args[i])。當i不是args的索引時拋出IndexError。 # {關鍵字k} 會把關鍵字參數當成一個字典kwargs,使用kwargs[k]。當k不是kwargs的key時,會拋出KeyError異常。 In [10]: '{} {}'.format(88) ------------------------------------------------------ IndexError Traceback (most recent call last) <ipython-input-10-569fb0faf265> in <module>() ----> 1 '{} {}'.format(88)IndexError: tuple index out of rangeIn [11]: '{} {lang}'.format(88) ------------------------------------------------------ KeyError Traceback (most recent call last) <ipython-input-11-8286ca2a6881> in <module>() ----> 1 '{} {lang}'.format(88)KeyError: 'lang'In [12]: '{1},{2},{3}'.format('a','b','c') #分析:args=[a,b,c],args[i=1]='b',args[i=2]='c',args[i=3]=?故拋出IndexError --------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-5-bedd884b41e7> in <module>() ----> 1 '{1},{2},{3}'.format('a','b','c')IndexError: tuple index out of range?
?
?
?
轉載于:https://www.cnblogs.com/snsdzjlz320/p/6572515.html
總結
以上是生活随笔為你收集整理的[PY3]——内置数据结构(4)——字符串格式化(format)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: maven 指定jdk版本和编译版本.
- 下一篇: selenide小白教程