Python变量类型和运算符

Posted zy09

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python变量类型和运算符相关的知识,希望对你有一定的参考价值。

python 变量

Python 使用等号(=)作为赋值运算符,

注意,变量名其实就是标识符,因此在命名时,既要遵守标识符的命名规范,还要避免和 Python的内置函数重名。

强类型语言和弱类型语言

必须指定该变量所能存储的数据类型,以 C 语言为例:

int a = 20

和强类型语言相对应的是弱类型语言,Python 就是典型代表之一。弱类型语言有以下 2 个特征:

变量无须声明即可直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。
变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串。

 

 

python 数值类型

Python 中的数值类型主要包括整形、浮点型和复数类型。整形专门用来表示整数,即没有小数部分的数。在 Python 中,整数包括正整数、0 和负整数。

short、int、long 整形类型存储,除此之外,Python 的整型还支持 None 值(空值)

[root@kube python]# py demo6.py 
<class int>
<class int>
<class int>
<class NoneType>
[root@kube python]# cat demo6.py 
a=1
b=222
c=4444444444444444444444444444444444444444444444444444
d=None
print(type(a))            #type()函数用于返回变量的类型
print(type(b))
print(type(c))
print(type(d))
[root@kube python]# py demo6.py 
<class int>
<class int>
<class int>
<class NoneType>
[root@kube python]# 
Python 的整型数值有 4 种表示形式:
十进制形式:最普通的整数就是十进制形式的整数,在使用十进制表示整数值时,不能以 0(零)作为十进制数的开头(数值是 0 除外)。
二进制形式:由 0 和 1 组成,以 0b 或 0B 开头。例如,101 对应十进制数是 5;
八进制形式:八进制整数由 0~7 组成,以 0o 或 0O 开头(第一个字母是零,第二个字母是大写或小写的 O)。需要注意的是,在 Python 2.x 中,八进制数值还可以直接以 0(零)开头。
十六进制形式:由 0~9 以及 A~F(或 a~f)组成,以 0x 或 0X 开头,

 

 

python 浮点型

浮点型数值用于保存带小数点的数值,Python 的浮点数有两种表示形式:

  • 十进制形式:这种形式就是平常简单的浮点数,例如 5.12、512.0、0.512。浮点数必须包含一个小数点,否则会被当成整数类型处理。
  • 科学计数形式:例如 5.12e2(即 5.12×102)、5.12E2(也是 5.12 ×102)。


必须指出的是,只有浮点型数值才可以使用科学计数形式表示。例如 51200 是一个整型值,但 512E2 则是浮点型值。

[root@kube python]# cat demo7.py 
a=3.455
print(type(a))
b=44.56677
print(type(b))
c=4.56e2
print(type(c))
d=3e4
print(type(d))
print(a)
print(b)
print(c)
print(d)
[root@kube python]# py demo7.py 
<class float>
<class float>
<class float>
<class float>
3.455
44.56677
456.0
30000.0
[root@kube python]# 
#变量C 和 d 依然是浮点型值,而不是整型值,因为 Python 会自动将该数值变为 456.0 和 30000.0

 

注意,使用浮点数进行计算时,可能会出现小数位数不确定的情况,比如说,计算 0.1+0.2,本来应该得到 0.3,但经过测试你会发现,Python解释器的运行结果为 0.30000000000000004。几乎所有编程语言都存在这个问题,这与浮点数在底层的存储方式有关系

>>> 0.1+0.2
0.30000000000000004
>>> 

 

问题:

算机其实是不认识十进制数,它只认识二进制数,也就是说,当我们以十进制数进行运算的时候,计算机需要将各个十进制数转换成二进制数,然后进行二进制间的计算。

以类似 0.1 这样的浮点数为例,如果手动将其转换成二进制,其结果为:

0.1(10)=0.00011001100110011...(2)
可以看到,结果是无限循环的,也就是说,0.1 转换成二进制数后,无法精确到等于十进制数的 0.1。同时,由于计算机存储的位数是有限制的,所以如果要存储的二进制位数超过了计算机存储位数的最大值,其后续位数会被舍弃(舍弃的原则是“0 舍 1 入”)。

 

通过 fractions 或者我 decimal 模块能很好地解决浮点类型数之间运算的问题

 

 

python 复数

Python 甚至可以支持复数,复数的虚部用 j 或 J 来表示。

[root@kube python]# cat demo8.py 
a=3 + 0.2j
print(type(a))

[root@kube python]# py demo8.py 
<class complex>
[root@kube python]# 

 

以上是关于Python变量类型和运算符的主要内容,如果未能解决你的问题,请参考以下文章

你不可能还不会python变量的类型吧?

python基础之变量类型和数据运算

趁着课余时间学点Python变量,基本数据类型,运算符

趁着课余时间学点Python变量,基本数据类型,运算符

入门级 Python变量类型和运算符知识点整理

入门级 Python变量类型和运算符知识点整理