python3数字类型分为_Python初学3——数字类型及操作
一、數(shù)
1.1 整數(shù)類型( 十、二、八、十六進制 )
python中整數(shù)類型與數(shù)學中的整數(shù)概念一致,有正有負,取值任意。
整數(shù)的表示形式:
整數(shù)類型表示形式舉例十進制34,163,210
二進制0b1101 或 0B1101
八進制0o357 或 0O357
十六進制0x45ac 或 0X45ac
1.2 浮點數(shù)類型( round()、科學計數(shù)法表示 )
python中浮點數(shù)即指帶有小數(shù)點和小數(shù)的數(shù)字,浮點數(shù)取值范圍(-10308至10308)和小數(shù)精度(10-16)都存在限制(這些限制對于常規(guī)運算可以忽略)。
浮點數(shù)間運算存在不確定尾數(shù),這不是bug。
原因在于計算機中是以有限位數(shù)的二進制表示小數(shù)的,二者可以無限接近但不完全相同,這就使得計算機以二進制形式計算小數(shù)運算時存在了誤差,在輸出時計算機再截取一定的小數(shù)位數(shù)輸出,就可能產生尾數(shù)。python中不確定尾數(shù)一般發(fā)生在10-16左右。
例如:
圖1-1 浮點數(shù)間運算的不確定尾數(shù)
圖1-1中,(0.1 + 0.2) 和 (0.11 + 1.32) 的結果不等于正確結果的情況即為出現(xiàn)不確定尾數(shù)。
rang()函數(shù)輔助解決不確定尾數(shù)問題 round(x, d)對x四舍五入,d是小數(shù)截取位數(shù)
圖1-2 round()函數(shù)四舍五入
浮點數(shù)的科學計數(shù)法表示形式
科學計數(shù)法表示使用字母e或E作為冪的符號,以10為基數(shù),格式如下:
浮點數(shù)科學計數(shù)法表示形式0.6356.35e-1
51.064155.106415E1
-0.413-4.13E-1
-165.333-1.65333e2
1.3 復數(shù)類型( 多用于空間變換或復變函數(shù)相關,虛實部的獲取 )
在數(shù)學中,a + bj被稱為復數(shù),其中a是實部,b是虛部,j是復數(shù)單位。
在python中,復數(shù)與數(shù)學中的復數(shù)相同。
.real獲得復數(shù)的實部
.imag獲得復數(shù)的虛部
例如:
圖1-3 python中的復數(shù)即獲取虛實部
二、數(shù)值運算操作符( 加、減、乘、除、模、冪、整數(shù)除、取相反數(shù) )
2.1 常用操作符
操作符及使用說明x + y加,求x與y的和
x - y減,求x與y的差
x * y乘,求x與y的積
x / y除,求x與y的商(浮點數(shù)結果)。10 / 3 結果為3.3333333333333335
x // y整數(shù)除,求x與y的商(整數(shù)結果)。10 // 3 結果為3
+ x表示x本身
- x取x的相反數(shù)
x % y模運算,求x除y的余數(shù)。10 % 3 結果為1
x ** y冪運算,求 xy。9 ** 0.5 結果為3.0
2.2 增強賦值操作符
增強賦值操作符及使用說明x += y與 x = x + y 等價
x -= y與 x = x - y 等價
x *= y與 x = x * y 等價
x /=y與 x = x / y 等價
x //= y與 x = x // y 等價
x %= y與 x = x % y 等價
x **= y與 x = x ** y 等價
三、數(shù)值運算函數(shù)( abs()、divmod()、pow()、round()、max()、min()、int()、float()、complex() )
數(shù)值運算函數(shù)及使用說明abs(x)絕對值函數(shù),求x的絕對值
divmod(x, y)商余函數(shù),同時求 x // y 和 x % y 。divmod(10, 3) 結果為(3, 1)
pow(x, y[, z])冪余函數(shù),求 (x ** y)%z 。z省略則代表求 xy
round(x[, d])四舍五入函數(shù),對 x 四舍五入,d 是保留的小數(shù)位數(shù)。d 省略則代表對 x 四舍五入取整
max(x1, x2, x3, …, xn)最大值函數(shù),求 x1, x2, x3, …, xn 中的最大值,n 不限
min(x1, x2, x3, …, xn)最小值函數(shù),求 x1, x2, x3, …, xn 中的最小值,n 不限
int(x)取整函數(shù),直接舍棄x的小數(shù)部分。int(123.123) 結果為123,int(“123”) 結果為123
float(x)取浮點函數(shù),為x添加小數(shù)部分。float(123) 結果為123.0,float(“1.23”) 結果為1.23
complex(x)取復數(shù)函數(shù),為x添加虛數(shù)部分。complex(123) 結果為 123 + 0j
四、天天向上實例
1.1 實例1
# 每天進步1%。
dayup = pow(1.001, 365)
# 每天退步1%。
daydown = pow(0.999, 365)
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))
1.1 實例2
dayfactor = 0.001# 定義每天進步的參數(shù)
# 每天進步1%。
dayup = pow(1 + dayfactor, 365)
# 每天退步1%。
daydown = pow(1 - dayfactor, 365)
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))
1.1 實例3
'''''''''''''''''''''''''''''''
一年365天中,工作日每天進步1%
周六日每天退步1%
'''''''''''''''''''''''''''''''
dayup = 1.0# 定義初始進步
dayfactor = 0.01# 定義每天進步的參數(shù)
# 進行365天循環(huán),i = 0, 1, 2, ..., 364
for i in range(365):
if i % 7 in [6, 0]:# 周六日退步1%
dayup *= (1 - dayfactor)
else:# 工作日進步1%
dayup *= (1 + dayfactor)
print("工作日的力量:{:.2f}".format(dayup))
1.1 實例4
小明:一年365天,每天進步1%,不停歇
玲玲:一年365天,每周工作5天休息2天,休息日每日退步1%,那玲玲在工作日平均每天要進步多少,最后才能和小明的進步相當呢?
流程圖如下:
Created with Rapha?l 2.2.0
開始
計算小明365天進步結果M
假設玲玲工作日平均每天進步1%
計算玲玲365天進步結果N
N≥M嗎?
輸出x
結束
x增加千分之一
yes
no
# 計算小明365天的進步量
Ming_dayup = pow(1.01, 365)
''' @brief 用于計算玲玲365天的進步量
'' @param df: 玲玲工作日平均每天進步的參數(shù)
'' @retval 玲玲365天的進步量
'''
def Ling_dayup(df):
dayup = 1# 定義玲玲的初始進步
# 進行365天循環(huán),i = 0, 1, 2, ..., 364
for i in range(365):
if i % 7 in [6, 0]:# 玲玲一周內2天退步1%
dayup *= (1 - 0.01)
else:# 玲玲一周內5天進步df
dayup *= (1 + df)
return dayup# 函數(shù)返回玲玲365天的進步量
'''''''''''' 主程序 ''''''''''''
Ling_dayfactor = 0.01# 假設玲玲工作日平均每天進步1%
while Ling_dayup(Ling_dayfactor) < Ming_dayup:# while循環(huán)判斷,直到玲玲最后的進步量不小于小明的進步的時候,結束循環(huán)
Ling_dayfactor += 0.001
print("玲玲工作日每天應平均進步{:.3f}".format(Ling_dayfactor))
總結
以上是生活随笔為你收集整理的python3数字类型分为_Python初学3——数字类型及操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: freeMarker 遍历 list,m
- 下一篇: Hive的数据模型-外部表