[TOC]
>[success] # 數字的處理
~~~
1.python 中要格外的注意浮點類型的數字進行,相對的 ,因為python底層cpu的浮點運算單元,保存的時候是按照原始表現
形式,例如:
a=2.1
b=4.2
print(a+b) # 6.300000000000001
正是因為這種原因,所引入下面處理方法
~~~
>[danger] ##### 取整操作 --- round
~~~
round(number, ndigits=None)
1.round 中有兩個參數,第一個是要處理的值,第二個參數,為正整數時是要保留的小數位,負數是要舍棄的整數數位,從個
位開始
2.round 不像四舍五入,逢五進一,而是默認最近的偶數,例如:
"2.4 輸出 2 ,2.5輸出的2,3.5輸出的是4,2.6 輸出3,3.6輸出的是4"
~~~
~~~
num1 = round(1.23,1)
num2 = round(1.25,1)
num3 = round(1.35,1)
num4 = round(1.35)
num5 = round(105,-1)
print(num1, num2, num3, num4,num5)
打印結果:
1.2 1.2 1.4 1 100
~~~
>[danger] ##### 將數字以固定格式輸出展示 --- format
~~~
1.如果只是將,所得到的數字做展示處理,可以使用format
~~~
~~~
x=1.233
a = format(x,'0.2f')
print(a,type(a))
打印結果:
1.23 <class 'str'>
~~~
>[danger] ##### 更精準的操作 --- decimal
~~~
1.當我們在金融等,對數字要求敏感的代碼的時候,我們可以為此犧牲掉一些性能,使用decimal
2.當使用decima 對象進行轉化求和的時候,對比也需要使用decimal 對象來進行比較
~~~
~~~
from decimal import Decimal
a = Decimal('4.2')
b = Decimal('2.1')
c = a+b
print(c)
print(a+b == 6.3)
打印結果:
6.3
False
~~~
* 對 decimal 進行四舍五入
~~~
from decimal import Decimal,localcontext
a = Decimal('1.3')
b = Decimal('1.7')
c = a/b
print(c)
with localcontext() as ctx:
ctx.prec = 3
print(a/b)
打印結果:
0.7647058823529411764705882353
0.765
~~~
>[danger] ##### 對二進制/八進制/十進制的轉化
* 將十進制 分別轉換成 二進制/八進制/十六進制
~~~
x = 1234
b = bin(x)
o = oct(x)
h = hex(x)
print(b, o, h,)
打印結果:
0b10011010010 # 二進制
0o2322 # 八進制
0x4d2 # 十六進制
~~~
* 去掉前綴,將十進制轉換成二進制/八進制/十六進制
~~~
x = 1234
b1 = format(x, 'b')
o1 = format(x, 'o')
h1 = format(x, 'x')
print(b1, o1, h1)
打印結果:
10011010010
2322
4d2
~~~
* 將 二進制/八進制/十進制轉換成 十進制
~~~
b1 = int('10011010010', 2)
o1 = int('2322', 8)
h1 = int('4d2', 16)
print(b1, o1, h1)
打印結果:
1234
1234
1234
~~~
>[danger] ##### 分數格式展示 --- fractions
* 分數展示
~~~
from fractions import Fraction
a = Fraction(5, 4)
b = Fraction(7, 16)
print(a,b)
打印結果:
5/4
7/16
~~~
* 獲得分子分母
~~~
c = a*b
print(c)
print(c.numerator)
print(c.denominator)
print(float(c))
打印結果:
35/64
35
64
0.546875
~~~
* 小數轉換掙分數
~~~
x = 3.75
print(Fraction(*x.as_integer_ratio()))
打印結果:
15/4
~~~
- PYTHON-- 基礎
- Python -- 變量、常量、注解
- 算數\比較\賦值\邏輯運算符
- Python -- input 控制臺用戶輸入
- Python -- 流程控制/循環語句
- Python -- 切片
- Python -- 數據類型
- 基礎數據類型
- int -- 數字類型
- str -- 字符類型
- bool -- 布爾類型
- list -- 列表
- type -- 元祖
- dict -- 字典
- set -- 集合
- Python -- 深淺copy
- Python -- 文件的讀寫
- Python -- 函數
- 函數 -- 做參數使用
- 函數 -- 閉包
- 函數 -- 生成器
- 函數 -- 列表推導式
- 案例
- 基礎案例一
- 基礎案例二
- 基礎案例三
- COOKBOOK
- LIST、STR、DICT、TUPLE
- LIST - 列表方法總結
- 一、序列拆分成單獨變量
- 二、* 妙用
- 三、deque- 雙向隊列
- 四、求找到最大或最小的N個元素
- 4.1 heapq-- 簡單使用
- 五、去重并保持列表順序不變
- 六、切片slice
- 七、counter 統計序列中元素次數
- 八、itemgetter 列表套著字典排序
- 九、處理大量的列表數據
- 十、隨機事件處理列表
- DICT - 字典的總結方法
- 一、defaultdict 解決 KeyError
- 二、OrdereDict有序字典
- 三、zip 和 max/min 比較
- IDCT和LIST- 推導式
- 一、LIST 推導式
- 二、字典推到式
- TUPLE-元組
- 一、命名元組
- STR-字符串
- 一、常見的字符串方法
- 二、字符串拆分
- 三、字符串的位置匹配
- 四、字符串替換
- 五、正則大小寫/換行匹配
- 六、對字節類型處理
- 數字、日期、時間處理
- 一、數字的處理
- 二、時間換算
- 2.1 時間運算
- 2.2計算某一時刻上周幾的日期
- 2.2對時間轉換格式優化
- 迭代器和生成器
- 一、iter 迭代器 使用案例
- 二、生成器 yeild
- 三、構建一個反向迭代方法
- 四、實現反正函數構造
- 五、迭代對象切片/跳過元素
- 六、迭代出所有的組合排列
- 七、索引-值迭代序列化
- 八、zip 同時迭代多個序列
- 九、同時循環多個可迭代對象
- 十、yield from 遞歸案例
- 十一、合并序列,并按順序輸出
- 十二、使用 iter 替代 while True
- 操作文件
- 一、處理文件路徑
- 二、檢測文件/獲取文件信息
- 函數
- 一、函數基本案例使用
- 二、匿名函數
- 三、回調函數
- 四、閉包實現一個單個方法類
- 五、函數嵌套回調函數
- 類與對象
- 一、str/repr--讓類字符串表示
- 二、format -- 格式化類的內容
- 三、with -- 上下文管理類
- 四、創建節省內存的類
- 五、將類里面方法變成屬性
- 六、調用父類方法
- 七、擴展子類中的屬性
- 八、創建新的類或者實類屬性
- 九、簡化數據結果,簡化init
- 十、python 接口寫法
- 十一、通過類屬性創建委托訪問
- 十二、__new__重新初始化init
- 十三、通過字符串調用類
- 元編程
- 一、裝飾器
- 1.1 去掉裝飾器修飾
- 1.2 可接受參數裝飾器
- 1.3利用裝飾器對函數參數類型檢查
- 1.4編寫類裝飾器
- 1.5為類方法和靜態方法加裝飾器
- 1.6通過裝飾器給裝飾函數加參數
- 線程和進程