參數(shù)格式化
- 字符串的參數(shù)使用{NUM}進(jìn)行表示,0, 表示第一個參數(shù),1, 表示第二個參數(shù), 以后順次遞加;使用":", 指定代表元素需要的操作, 如":.3"小數(shù)點三位, ":8"占8個字符空間等;還可以添加特定的字母, 如:
- 'b' - 二進(jìn)制. 將數(shù)字以2為基數(shù)進(jìn)行輸出.
- 'c' - 字符. 在打印之前將整數(shù)轉(zhuǎn)換成對應(yīng)的Unicode字符串.
- 'd' - 十進(jìn)制整數(shù). 將數(shù)字以10為基數(shù)進(jìn)行輸出.
- 'o' - 八進(jìn)制. 將數(shù)字以8為基數(shù)進(jìn)行輸出.
- 'x' - 十六進(jìn)制. 將數(shù)字以16為基數(shù)進(jìn)行輸出, 9以上的位數(shù)用小寫字母.
- 'e' - 冪符號. 用科學(xué)計數(shù)法打印數(shù)字, 用'e'表示冪.
- 'g' - 一般格式. 將數(shù)值以fixed-point格式輸出. 當(dāng)數(shù)值特別大的時候, 用冪形式打印.
- 'n' - 數(shù)字. 當(dāng)值為整數(shù)時和'd'相同, 值為浮點數(shù)時和'g'相同. 不同的是它會根據(jù)區(qū)域設(shè)置插入數(shù)字分隔符.
- '%' - 百分?jǐn)?shù). 將數(shù)值乘以100然后以fixed-point('f')格式打印, 值后面會有一個百分號.
- 數(shù)字(0, 1, ...)即代表format()里面的元素, 所以可以使用"."調(diào)用元素的方法;
age = 25
name = 'Caroline'
print('{0} is {1} years old. '.format(name, age)) #輸出參數(shù)
print('{0} is a girl. '.format(name))
print('{0:.3} is a decimal. '.format(1/3)) #小數(shù)點后三位
print('{0:_^11} is a 11 length. '.format(name)) #使用_補(bǔ)齊空位
print('{first} is as {second}. '.format(first=name, second='Wendy')) #別名替換
print('My name is {0.name}'.format(open('out.txt', 'w'))) #調(diào)用方法
print('My name is {0:8}.'.format('Fred')) #指定寬度
小數(shù)格式處理
- round()
- 一定要注意它不是簡單的四舍五入,而是ROUND_HALF_EVEN的策略。一般不介意使用
-
round()如果只有一個數(shù)作為參數(shù),不指定位數(shù)的時候,返回的是一個整數(shù),而且是最靠近的整數(shù)(這點上類似四舍五入)。但是當(dāng)出現(xiàn).5的時候,兩邊的距離都一樣,round()取靠近的偶數(shù),這就是為什么round(2.5) = 2。當(dāng)指定取舍的小數(shù)點位數(shù)的時候,一般情況也是使用四舍五入的規(guī)則,但是碰到.5的這樣情況,如果要取舍的位數(shù)前的小樹是奇數(shù),則直接舍棄,如果偶數(shù)這向上取舍??聪旅娴氖纠?/p>
-
- 一定要注意它不是簡單的四舍五入,而是ROUND_HALF_EVEN的策略。一般不介意使用
round(2.635, 2)
2.63
round(2.645, 2)
2.65
round(2.655, 2)
2.65
round(2.665, 2)
2.67
round(2.675, 2)
2.6
```
math模塊的ceil(x) 取大于或者等于x的最小整數(shù)。
math模塊的floor(x) 去小于或者等于x的最大整數(shù)。
>>> from math import ceil, floor
>>> round(2.5)
2
>>> ceil(2.5)
3
>>> floor(2.5)
2
>>> round(2.3)
2
>>> ceil(2.3)
3
>>> floor(2.3)
2
>>>
-
使用格式化
- 效果和round()是一樣的。
a = ("%.2f" % 2.635)
a
'2.63'
a = ("%.2f" % 2.645)
a
'2.65'
a = int(2.5)
a
2