文章目录
python的数据类型分为基本数据类型和复合数据类型
基本数据类型包含:数字,字符串
复合数据类型包含:列表,元组,字典,集合
- 数字: 包含int(整型)、long(长整型,但python3中已经没有了,python3中只有int)、complex(复数)、float(浮点型)、bool(布尔型)
- 字符串(String): 比如:“hello world”,“python”
- 列表(List): 比如:[1,2,3,4],[’a‘,‘b’,‘c’,‘d’]
- 字典(Dictionary):例如:{“name”:“poge”,“age”:30}
- 元组(Tuple): 例如:(1,‘hello’,3)
- 集合(Set):例如:{’a‘,’b‘,’c‘,’d‘}
和其他编程语言相比,Python语言中的变量不需要显示数据类型的声明,Python的变量类型是根据变量的赋值内容而自动生成的。
1. 数字类型
表示数字或数值的数据类型称为数字类型,包含整型(int),浮点型(float),复数类型(complex),布尔类型(bool)
整型
Python3中整型已经不分 int和long了,只有int型!
不同进制表示
二进制:以“0B”或“0b”开头(比如0b101)
八进制:以 “0o”或“0O”开头(比如0o510)
十进制:比如10、29、40
十六进制 :以“0x”或“0X”开头(比如0xA7A)
不同进制转换
bin():十进制转换为二进制,输出形式是字符串
oct():十进制转换为八进制,输出形式是字符串
hex():十进制转换为十六进制,输出形式是字符串
int() :接收一个符合整型规范的字符串,并将字符串转换为整型
Python中当多个变量的值相同时,这个值在内存中并没有被保存多次,只是多个变量都指向了同一内存
举例如下:
a = 6
b = 6
c = a
print(id(a), id(b), id(c))
输出:
1643146464 1643146464 1643146464
修改整型的值即修改了整型的地址
a = 6
b = 6
c = a
print(id(a), id(b), id(c))
a = 8
print(id(a), id(b), id(c))
输出
1643146464 1643146464 1643146464
1643146528 1643146464 1643146464
数字时Python中的不可变对象,当改变它的值时,并不是真的修改内存中变量的值,而是把新的值放入内存中,然后修改变量,使得变量指向新值的内存地址。浮点数、复数等其他数字类型及其他类型的变量具有同样的特点。
Python具有自动内存管理功能,如果一个值没有任何变量指向,则Python自动将其删除
浮点数
所谓浮点数就是数学中的小数
- Python中浮点型一般以十进制表示,由整数和小数部分(可以是0)组成。
- 对于很大或者很小的浮点型,可以使用科学计数法表示。
- Python中的浮点型是双精度的,每个浮点型数据占8个字节(即64位)。
科学计数法就是用字母e或E作为幂的符号,以10为基础,格式:xey表示的就是x乘以10的y次幂
例如:
1.2e-2:1.2乘以10的-2次幂 = 0.012
2e3:2乘以10的3次幂 = 2000
例如:
a = 1.2
print(type(a))
b = 1e-2
print(type(b))
c = 2e3
print(c)
输出:
<class 'float'>
<class 'float'>
2000.0
复数
- 复数由“实部”和“虚部”两部分组成;
- 实数部分和虚数部分都是浮点型;
- 虚数部分后面必须有j或J
Python中表示复数的两种方法:
- a+bj
- complex(a,b)
其中a表示实部,b表示虚部
举例:
a = 2 + 6j
print(type(a))
b = complex(2, 6)
print(type(b))
print(id(a), id(b))
结果:
<class 'complex'>
<class 'complex'>
2718471372752 2718437554352
获取复数的实部、虚部、共轭复数等
a = 2 + 6j
print(a.imag) # .imag可以获取复数的虚部
print(a.real) # .real可以获取复数的虚部
print(a.conjugate()) # .conjugate()方法可以获取复数的共轭复数
print(type(a.conjugate()))
print(a.conjugate().imag)
print(a.conjugate().real)
结果:
6.0
2.0
(2-6j