Python初学3——数字类型及操作

本文介绍了Python中的整数、浮点数和复数类型及其表示方法,并详细解释了数值运算的操作符与函数,包括加、减、乘、除等运算符及abs()、divmod()等函数的使用。此外,通过具体实例展示了如何利用这些知识解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数

1.1 整数类型( 十、二、八、十六进制 )

python中整数类型与数学中的整数概念一致,有正有负,取值任意。
整数的表示形式:

整数类型表示形式举例
十进制34,163,210
二进制0b1101 或 0B1101
八进制0o357 或 0O357
十六进制0x45ac 或 0X45ac

1.2 浮点数类型( round()、科学计数法表示 )

python中浮点数即指带有小数点和小数的数字,浮点数取值范围(-10308至10308)和小数精度(10-16)都存在限制(这些限制对于常规运算可以忽略)。

  1. 浮点数间运算存在不确定尾数,这不是bug。

    原因在于计算机中是以有限位数的二进制表示小数的,二者可以无限接近但不完全相同,这就使得计算机以二进制形式计算小数运算时存在了误差,在输出时计算机再截取一定的小数位数输出,就可能产生尾数。python中不确定尾数一般发生在10-16左右。
    例如:
    图1-1
    图1-1 浮点数间运算的不确定尾数

    图1-1中,(0.1 + 0.2) 和 (0.11 + 1.32) 的结果不等于正确结果的情况即为出现不确定尾数。

  2. rang()函数辅助解决不确定尾数问题

     round(x, d)				对x四舍五入,d是小数截取位数
    

    在这里插入图片描述
    图1-2 round()函数四舍五入

  3. 浮点数的科学计数法表示形式
    科学计数法表示使用字母e或E作为幂的符号,以10为基数,格式如下:

    浮点数科学计数法表示形式
    0.6356.35e-1
    51.064155.106415E1
    -0.413-4.13E-1
    -165.333-1.65333e2

1.3 复数类型( 多用于空间变换或复变函数相关,虚实部的获取 )

在数学中,a + bj被称为复数,其中a是实部,b是虚部,j是复数单位。
在python中,复数与数学中的复数相同。

<复数>.real				获得复数的实部
<复数>.imag				获得复数的虚部

例如:
在这里插入图片描述
图1-3 python中的复数即获取虚实部

二、数值运算操作符( 加、减、乘、除、模、幂、整数除、取相反数 )

2.1 常用操作符

操作符及使用说明
x + y加,求x与y的和
x - y减,求x与y的差
x * y乘,求x与y的积
x / y除,求x与y的商(浮点数结果)。10 / 3 结果为3.3333333333333335
x // y整数除,求x与y的商(整数结果)。10 // 3 结果为3
+ x表示x本身
- x取x的相反数
x % y模运算,求x除y的余数。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 等价
x &= y与 x = x & y 等价
x I= y与 x = x I y 等价
x ^= y与 x = x ^ y 等价
x <<= y与 x = x << y 等价
x >>= y与 x = x >> y 等价

三、数值运算函数( abs()、divmod()、pow()、round()、max()、min()、int()、float()、complex() )

数值运算函数及使用说明
abs(x)绝对值函数,求x的绝对值
divmod(x, y)商余函数,同时求 x // y 和 x % y 。divmod(10, 3) 结果为(3, 1)
pow(x, y[, z])幂余函数,求 (x ** y)%z 。z省略则代表求 xy
round(x[, d])四舍五入函数,对 x 四舍五入,d 是保留的小数位数。d 省略则代表对 x 四舍五入取整
max(x1, x2, x3, …, xn)最大值函数,求 x1, x2, x3, …, xn 中的最大值,n 不限
min(x1, x2, x3, …, xn)最小值函数,求 x1, x2, x3, …, xn 中的最小值,n 不限
int(x)取整函数,直接舍弃x的小数部分。int(123.123) 结果为123,int(“123”) 结果为123
float(x)取浮点函数,为x添加小数部分。float(123) 结果为123.0,float(“1.23”) 结果为1.23
complex(x)取复数函数,为x添加虚数部分。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		# 定义每天进步的参数
# 每天进步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	# 定义每天进步的参数
# 进行365天循环,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: 玲玲工作日平均每天进步的参数
 '' @retval 玲玲365天的进步量
 '''
def Ling_dayup(df):
    dayup = 1		# 定义玲玲的初始进步
    # 进行365天循环,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	# 函数返回玲玲365天的进步量

'''''''''''' 主程序 ''''''''''''
Ling_dayfactor = 0.01							# 假设玲玲工作日平均每天进步1%
while Ling_dayup(Ling_dayfactor) < Ming_dayup:	# while循环判断,直到玲玲最后的进步量不小于小明的进步的时候,结束循环
    Ling_dayfactor += 0.001
print("玲玲工作日每天应平均进步{:.3f}".format(Ling_dayfactor))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

觅道無涯-千知

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值