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变量类型和运算符的主要内容,如果未能解决你的问题,请参考以下文章