python基础数据类型和变量

本文详细介绍了Python中的数值类型,包括整型(int)的表示方式,如十进制、二进制、八进制和十六进制,以及浮点型(float)的精度问题和使用技巧。同时,讨论了布尔值(bool)和空值(None)在编程中的应用,并给出了变量定义和赋值的示例。在处理浮点数精度问题时,建议使用放大整数来避免精度丢失。
摘要由CSDN通过智能技术生成

整数 int

整型数是不带小数部分的数字,包括负整数、0、正整数 在这里插入代码片
在python中,整数的表示跟数学的表示一样,如:-1、0、1等

日常使用中,我们习惯用十进制表式

>>> 10
10
>>> -100
-100

在我们实际工作中也很容易需要使用大数据,如: 100000000
碰到大数据,阅读时可能不是那么直观,python支持数字中间以_分隔
上述数据也可以这样表示:

>>> 1_0000_0000
100000000
>>> 100_000_000
100000000

除上述表示,也可以使用二进制、八进制、十六进制来表示
二进制表示,零+b开头,后面接0或1的数,如:

>>> 0b11
3
>>> 0b10
2

八进制表示,零+o开头,后面接0~7的数(不在这个范围,会触发异常),如:

>>> 0o71
57
>>> 0o11
9

十六进制表示,零+x开头,后面接09、AF、a~f,如:

>>> 0xAF
175
>>> 0x3aF
943



浮点型数 float

浮点型数是带有小数部分的数字
如:3.14、 3. 、0.14

>>> 3.
3.0
>>> 3.14
3.14
>>> .14
0.14

由于数据在计算机中,都是以二进制的方式存储的,大多数的十进制小数都不能精确地表示为二进制小数,浮点数都只能近似地使用二进制小数表示

以需要1/3 为例,我们无法用小数成功表示,只能无限接近,如:0.3、0.33、0.33…,,位数越多,越接近 1/3

从上面可以知道,如果使用浮点数进行计算,有可能会导致精度的丢失,每次浮点运算都可能会导致新的舍入错误,如下面的例子:

>>> 0.1 + 0.1 + 0.1
0.30000000000000004
>>> 1 / 10 - 0.01
0.09000000000000001

使用浮点数做比较也可能产生意想不到的结果,比如 1 跟 1.0,一个是整数,一个是浮点数,在我们思维下他们肯定是不相等的

>>> 1 == 1.0
True

而我们的交互式产生的结果为真,这是因为计算机在比较1跟1.0时,实际上是拿他们转换成二进制之后做比对产生的结果

通过上面示例,我们不难发现使用浮点存在的问题,但也可以不用担心,Python 浮点运算中的错误是从浮点运算硬件继承而来,大多数机器上每次浮点运算得到的 2**53 数码位都会被作为 1 个整体来处理,基本满足我们正常使用


思考?
问:从上面我们都知道浮点数使用中的问题,那么在日常前后端交互、后端开发,需要使用浮点数,有没有什么技巧可以避免这种精度丢失呢?

答:在日常开发及数据传输过程中,我们可以使用放大的整数来避免这种精度丢失带来的问题

举个例子:
用户身上有一个money字段,记录用户身上有多少钱,那么这个钱就有可能是浮点,比如100.33块钱, 剩下的3毛3分便是小数部分

我们后端可以将这个100.33 记录成 10033, 发给前端时也是发送 10033,前端仅在展示时除100,这样就避免了传输时的进度丢失

用户消费1分钱,我们不在需要扣减0.01这样的数,后端就可以直接 money -= 1, 这样就避免了浮点运算时的精度丢失



布尔值 bool

用来表示真和假两个状态

True 表示真(条件满足或者成立)

False 表示假 (条件不满足或者不成立)

bool 值在我们常见的对比或者比较中出现, 如:

>>> 2 > 3
False
>>> 2 < 3
True

特别说明:

bool其实也是用数字1、0来表示的
True 值为 1
False 值为 0

我们也可以直接拿bool值进行运算

>>> True + 1
2
>>> False - 1
-1



空值 None

空值是python的一个特殊值,也为假,但不能理解为False或者0, 因为False和0是有意义的
None 通常用来占位或者解除绑定



变量 variable

变量是存储在内存中的值,创建变量时会在内存中开辟一个空间,存储变量绑定的对象
python是动态语言,在创建变量时,不需要提前声明变量的数据类型
python 建议使用pep8 命名风格

建议变量的命名规范:
1、变量建议用小写单词和下滑线连接, 如: max_value
2、不能使用python关键字命名,如: if 、else、True …
3、变量名尽量见名知意



赋值语句

用于创建变量并将变量绑定(或关联)在一个对象上
变量名 = 表达式
变量名1 = 变量名2 = 表达式
变量名1 ,变量名2,… = 序列

>>> a = 1
>>> b = 2
>>> a
1
>>> b
2
>>> c, d = 3, 4
>>> c
3
>>> d
4

python 的赋值语句支持在不创建第三个变量的情况下,对变量进行交换操作, 如:

>>> a = 1
>>> b = 2
>>> a, b = b, a
>>> a
2
>>> b
1



附上我的公众号

python小demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

迅风扫秋叶尔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值