180131—【Python初识 D7】数字

本文介绍了Python中的数字数据类型,包括整型、浮点型、复数等,并详细讲解了每种类型的特点及其支持的操作。此外,还介绍了不同数据类型间的转换规则及特殊的算术操作符。

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

数字简介

Python 数字 数据类型用于存储数值,它是不可改变类型,这就意味着如果改变 数字 数据类型的值,将重新分配内存空间。

所支持的类型

Python 支持四种不同的数值类型:

1.整型(Int)

python中的整型有几种类型:

布尔型

True 与 False 注意首字母大写!!

标准整型

Python的标准整型等价于C的(有符号)长整型(看看!)
一般以十进制表示,但也支持八和十六进制,其表示规定常规。

长整型

前面也提到过,python之中的长整型几乎没有范围限制,仅仅与计算机支持的虚拟内存有关。
长整型是整型数的超集,可表示极大的数,最后是一个大写或小写的L。(为了避免与数字1混淆,通常使用大写L)(注意:python3中已经没有长整型了)

2.双精度浮点型

Python中的浮点型类似于C中的double类型,是双精度浮点型。可直接用十进制或科学计数法表示(2.5e2 = 2.5 x 10的2 = 250)每个占8个字节。
采用标准IEEE754号规范,52个位用于表示底,11个用于表示指数,剩下一个表示符号。

3.复数

对没错我们支持复数!
复数由实数部分和虚数部分构成,
可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都支持浮点型。
复数对象拥有数据属性。三个内建函数:
num.real 返回实部
num.imag 返回虚部
num.conjugate() 返回共轭复数

操作符

不同数据类型的数

支持不同类型之间的数进行计算,会自己做强制类型转换,转化规则同C:

  • 如果有一个数是复数,则另一个操作数被转换为复数;
  • 否则,如果有一个是浮点型,则另一个操作数被转换为浮点型;
  • 否则,如果有一个是长整型,则另一个操作数被转换为长整型;
  • 否则,俩都是普通整型,无需转换。

另外有强制类型转换函数:coerce(),其参数有两个,可按上述规则转换数:

>>> coerce(1.3,134L)
(1.3, 134.0)
>>> 

其余类型转换:

int(x [,base ])x转换为一个整数  
long(x [,base ])x转换为一个长整数  
float(x )x转换到一个浮点数  
complex(real [,imag ])  创建一个复数  
str(x )                 将对象 x 转换为字符串  
repr(x )                将对象 x 转换为表达式字符串  
eval(str )              用来计算在字符串中的有效Python表达式,并返回一个对象  
tuple(s )               将序列 s 转换为一个元组  
list(s )                将序列 s 转换为一个列表  
chr(x )                 将一个整数转换为一个字符  
unichr(x )              将一个整数转换为Unicode字符  
ord(x )                 将一个字符转换为它的整数值  
hex(x )                 将一个整数转换为一个十六进制字符串  
oct(x )                 将一个整数转换为一个八进制字符串

特殊的算术操作符:

除法:

在python中讲除法,要有三个概念:

  • 传统除法
  • 地板除法
  • 真正除法
地板除法:

这个在之前学C的时候还吃过不少亏。
所谓地板除法,即取比商小的最大整型作为除法运算的结果。
比如:5除以2等于2.5,但在地板除法中会取2。
在C++中,这是对两个操作数都为整型时做的事。

真正除法:

也就是正常的除法,5除以2等于2.5,那就是2.5。
我们都知道之前想这样的话,5和2至少有一个得写成浮点型数,否则只会得到2

传统除法:

也就是C和早期python使用的方式。其原理就是,当两个操作数均为整型时采取地板除,有一个数是浮点才采取真正的除法。是两个方法的组合

python采取的除法

Python中的除法运算有两个符号:“/” 和 “//”,
在2.7版本中,/ 时采取传统除法,//时采取地板除。
在3.6版本中,/ 时采取真正的除法,//时为地板除。
这里写图片描述

幂运算:

幂运算操作符和一元操作符之间的优先级关系比较特别:

  • 幂运算操作符比 左 侧操作数的一元操作符优先级 高 ;
  • 幂运算操作符比 右 侧操作数的一元操作符优先级 低 ;
>>> -3**2     #先执行幂运算再取负;
-9
>>> 4**-.5    #先执行右边的复数再进行幂运算
0.5
>>> 4**-1
0.25

位运算

先补个课:
了解一下位运算的意义。
Python的整型数据支持标准的位运算:取反(~)、按位与(&)、或(|)、异或(^),左右移(<<和>>)

内建函数和工厂函数因为概念还有一丝模糊,所以不冒昧抛出。

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 “STC单片机电压测量”是一个以STC系列单片机为基础的电压检测应用案例,它涵盖了硬件电路设计、软件编程以及数据处理等核心知识点。STC单片机凭借其低功耗、高性价比和丰富的I/O接口,在电子工程领域得到了广泛应用。 STC是Specialized Technology Corporation的缩写,该公司的单片机基于8051内核,具备内部振荡器、高速运算能力、ISP(在系统编程)和IAP(在应用编程)功能,非常适合用于各种嵌入式控制系统。 在源代码方面,“浅雪”风格的代码通常简洁易懂,非常适合初学者学习。其中,“main.c”文件是程序的入口,包含了电压测量的核心逻辑;“STARTUP.A51”是启动代码,负责初始化单片机的硬件环境;“电压测量_uvopt.bak”和“电压测量_uvproj.bak”可能是Keil编译器的配置文件备份,用于设置编译选项和项目配置。 对于3S锂电池电压测量,3S锂电池由三节锂离子电池串联而成,标称电压为11.1V。测量时需要考虑电池的串联特性,通过分压电路将高电压转换为单片机可接受的范围,并实时监控,防止过充或过放,以确保电池的安全和寿命。 在电压测量电路设计中,“电压测量.lnp”文件可能包含电路布局信息,而“.hex”文件是编译后的机器码,用于烧录到单片机中。电路中通常会使用ADC(模拟数字转换器)将模拟电压信号转换为数字信号供单片机处理。 在软件编程方面,“StringData.h”文件可能包含程序中使用的字符串常量和数据结构定义。处理电压数据时,可能涉及浮点数运算,需要了解STC单片机对浮点数的支持情况,以及如何高效地存储和显示电压值。 用户界面方面,“电压测量.uvgui.kidd”可能是用户界面的配置文件,用于显示测量结果。在嵌入式系统中,用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值