1. 程式人生 > >Python格式化中使用%與C prinf格式輸出的區別

Python格式化中使用%與C prinf格式輸出的區別

一.格式

1.1 C printf()的一般格式
   printf(格式控制,輸出列表);

   例:int i = 3;
       double f = 4.56;
       printf("%d,%f", i,f);

1.2  PYTHON 格式化輸出

   格式標記字串 % 要輸出的值組

   其中,左邊部分的”格式標記字串“可以完全和c中的一致。右邊的'值組'如果有兩個及以上的值則需要用小括號括起來,中 間 用短號隔開。

   例如:'%s %s %s' % (1, 2.3, ['one', 'two', 'three']) 

   它的輸出為           '1 2.3 ['one', 'two', 'three']' 

二.格式字元

 1、d格式符:按十進位制格式輸出。
   %d 輸出數字長度為變數數值的實際長度
   %md m指定輸出資料的寬度。當資料的實際寬度小於m時,則資料左端補空格;若大於m,則按資料的實際位數輸出。
   %ld,%mld l(小寫字母L)表示輸出“長整型”資料
   %0md,%0mld 0(數字0)表示位數不足m時補0

2、o(字母)格式符:按八進位制格式輸出整數。(不會出現負數格式)
3、x格式符:按十六進位制格式輸出整數。(不會出現負數格式)
4、u格式符:以十進位制數形式輸出unsigned的整數。

6、s格式符:用來輸出一個字串。%s 用來輸出一個字串,不含雙引號. 例:printf("%s","CHINA");
      %ms m指定寬度(字串長度小於m時左補空格,大於時按實際寬度輸出)
      %-ms 左對齊,不足m時右補空格
      %m.ns 輸出佔m列,只取字串中左端n個字元.這n各字元輸出在m列的右側,左補空格.
      %-m.ns 同上,右補空格

 7、f格式符:按實數格式輸出。%f 整數部分全部顯示出來,小數部分顯示6位.但並不是顯示的所有數字都是有效數字
        %m.nf 指定資料的寬度共為m列,其中有n位小數.如果數值長度小於m,則左側補空格。
        %-m.nf 與%m.f類似,只是應在右側補空格

8、e格式符:以指數形式輸出實數。%e 按規範化指數形式輸出實數,系統自動給出6位小數,指數部分佔5位
       %m.ne 與前面的敘述相同
       %-m.ne 與前面的敘述相同

9、g格式符:它將根據數值的大小,自動選用f格式或e格式輸出資料,並且它不輸出無意義的0.

10、 有時候在%6.2f這種形式中,6和2也不能事先指定,會在程式執行過程中再產生,那怎麼輸入呢,當然不能用%%d.%df或%d.%d%f。可以 用%*.*f的形式,當然在後面的”要輸出的值組“中包含那兩個*的值。比如:'%*.*f' % (6, 2, 2.345)就相當於'%6.2f' % 2.345。