天天看點

格式化輸出的幾種方法 主要介紹format函數的用法

1 str自帶函數格式化輸出 rjust() ljust() center() zfill()

zfill是補齊零

介紹:

rjust(...)

    S.rjust(width[, fillchar]) -> string

給字元串格式化輸出,對字元串本身不做處理,隻是傳回一個格式化過的字元串,可以指定字元串寬度,并且指定填充的字元,預設填充空格!

作用: 對齊輸出

舉例:

<code>In [</code><code>26</code><code>]: s1</code><code>=</code><code>"1"</code>        

<code>In [</code><code>27</code><code>]: s2</code><code>=</code><code>"1234"</code>     

<code>In [</code><code>28</code><code>]: s1</code>

<code>Out[</code><code>28</code><code>]: </code><code>'1'</code>

<code>In [</code><code>29</code><code>]: s2</code>

<code>Out[</code><code>29</code><code>]: </code><code>'1234'</code>

<code>In [</code><code>30</code><code>]: </code><code>for</code> <code>i </code><code>in</code> <code>s1,s2:</code>

<code>   </code><code>....:     </code><code>print</code> <code>i</code>

<code>   </code><code>....:     </code>

<code>1</code>

<code>1234</code>

<code>#左對齊輸出,不滿長度為4的,預設填充空格</code>

<code>In [</code><code>34</code><code>]: </code><code>for</code> <code>i </code><code>in</code> <code>s1,s2:</code>

<code>   </code><code>....:     </code><code>print</code> <code>i.rjust(</code><code>4</code><code>)</code>

<code>   </code><code>1</code>

#填充其他字元

<code>In [</code><code>35</code><code>]: s1.rjust(</code><code>4</code><code>,</code><code>"*"</code><code>)</code>

<code>Out[</code><code>35</code><code>]: </code><code>'***1'</code>

#補齊0

<code>In [</code><code>38</code><code>]: s1.zfill(</code><code>4</code><code>)</code>

<code>Out[</code><code>38</code><code>]: </code><code>'0001'</code>

等于

<code>In [</code><code>40</code><code>]: s1.rjust(</code><code>4</code><code>,</code><code>'0'</code><code>)</code>

<code>Out[</code><code>40</code><code>]: </code><code>'0001'</code>

2 浮點型指定寬度輸出

<code>In [</code><code>36</code><code>]: </code><code>1.0</code><code>/</code><code>3</code>

<code>Out[</code><code>36</code><code>]: </code><code>0.33333333333333331</code>

<code>In [</code><code>37</code><code>]: </code><code>"%.3f"</code> <code>%</code> <code>(</code><code>1.0</code><code>/</code><code>3</code><code>)</code>

<code>Out[</code><code>37</code><code>]: </code><code>'0.333'</code>

3 format函數格式化化輸出,格式有點像C語言,替換變量

也是str自帶函數,可以多用多用

它通過{}和:來代替%。

通過位置

<code>In [</code><code>48</code><code>]: </code><code>print</code> <code>'{0} is a {1}'</code><code>.</code><code>format</code><code>(</code><code>'cat'</code><code>,</code><code>'animal'</code><code>)</code>

<code>cat </code><code>is</code> <code>a animal</code>

<code>In [</code><code>49</code><code>]: </code><code>print</code> <code>'{1} is a {0}'</code><code>.</code><code>format</code><code>(</code><code>'cat'</code><code>,</code><code>'animal'</code><code>) </code>

<code>animal </code><code>is</code> <code>a cat</code>

解釋:{}的内容,會被format()中的參數代替,可以在'{}'裡填寫上數字來指定format()中的位置,但如果'{}'裡面是key參數其中的内容會被format()中的value值代替

通過關鍵字參數

<code>In [</code><code>50</code><code>]: </code><code>print</code> <code>'{name} is a {age}'</code><code>.</code><code>format</code><code>(name</code><code>=</code><code>'andy'</code><code>, age</code><code>=</code><code>20</code><code>)  </code>

<code>andy </code><code>is</code> <code>a </code><code>20</code>

通過下标

<code>In [</code><code>56</code><code>]: l </code><code>=</code> <code>[</code><code>'andy'</code><code>, </code><code>'good'</code><code>]</code>

<code>In [</code><code>60</code><code>]: </code><code>'{0[0]} {0[1]} {0[0]}'</code><code>.</code><code>format</code><code>(l) </code>

<code>Out[</code><code>60</code><code>]: </code><code>'andy good andy'</code>

格式限定符

它有着豐富的的“格式限定符”(文法是{}中帶:号),比如:

填充與對齊

填充常跟對齊一起使用

^、&lt;、&gt;分别是居中、左對齊、右對齊,後面帶寬度

:号後面帶填充的字元,隻能是一個字元,不指定的話預設是用空格填充

比如

<code>In [</code><code>15</code><code>]: </code><code>'{:&gt;8}'</code><code>.</code><code>format</code><code>(</code><code>'189'</code><code>)</code>

<code>Out[</code><code>15</code><code>]: </code><code>'   189'</code>

<code>In [</code><code>16</code><code>]: </code><code>'{:0&gt;8}'</code><code>.</code><code>format</code><code>(</code><code>'189'</code><code>)</code>

<code>Out[</code><code>16</code><code>]: </code><code>'00000189'</code>

<code>In [</code><code>17</code><code>]: </code><code>'{:a&gt;8}'</code><code>.</code><code>format</code><code>(</code><code>'189'</code><code>)</code>

<code>Out[</code><code>17</code><code>]: </code><code>'aaaaa189'</code>

精度與類型f

精度常跟類型f一起使用

<code>In [</code><code>44</code><code>]: </code><code>'{:.2f}'</code><code>.</code><code>format</code><code>(</code><code>321.33345</code><code>)</code>

<code>Out[</code><code>44</code><code>]: </code><code>'321.33'</code>

其中.2表示長度為2的精度,f表示float類型。

其他類型

主要就是進制了,b、d、o、x分别是二進制、十進制、八進制、十六進制。

<code>In [</code><code>54</code><code>]: </code><code>'{:b}'</code><code>.</code><code>format</code><code>(</code><code>17</code><code>)</code>

<code>Out[</code><code>54</code><code>]: </code><code>'10001'</code>

<code>In [</code><code>55</code><code>]: </code><code>'{:d}'</code><code>.</code><code>format</code><code>(</code><code>17</code><code>)</code>

<code>Out[</code><code>55</code><code>]: </code><code>'17'</code>

<code>In [</code><code>56</code><code>]: </code><code>'{:o}'</code><code>.</code><code>format</code><code>(</code><code>17</code><code>)</code>

<code>Out[</code><code>56</code><code>]: </code><code>'21'</code>

<code>In [</code><code>57</code><code>]: </code><code>'{:x}'</code><code>.</code><code>format</code><code>(</code><code>17</code><code>)</code>

<code>Out[</code><code>57</code><code>]: </code><code>'11'</code>

用,号還能用來做金額的千位分隔符。

<code>In [</code><code>47</code><code>]: </code><code>'{:,}'</code><code>.</code><code>format</code><code>(</code><code>1234567890</code><code>)</code>

<code>Out[</code><code>47</code><code>]: </code><code>'1,234,567,890'</code>

<code></code>

本文轉自殘劍部落格51CTO部落格,原文連結http://blog.51cto.com/cuidehua/1770594如需轉載請自行聯系原作者

cuizhiliang

繼續閱讀