python学习笔记——对象类型

数据类型

Python中的原生数据类型主要有布尔、数值、字符串、列表、元组、集合和字典。
调用函数type()得到对象的数据类型。
需要注意的是,字符类型需要用单引号或双引号表示;
空值用None表示。

与许多编译语言(如Java、C++)相比,Python中的对象引用没有恒不变的关联类型,即可以随时将一个数值赋值为一个字符型串,但不能不同的数据类型进行算术运算。如:

`a = 5
print(type(a))
a = 'foo'
print(type(a))`

结果如下

<class 'int'>
<class 'str'>

调用函数isinstance()判断对象是否是某一个数据类型,其中
第1个参数obj表示需要判断的对象;
第2个参数class_or_tuple表示需要判断的数据类型,也可以是多个数据类型的元组,只要是其中之一则返回真。

a = 2
print(isinstance(a,int))
print(isinstance(a,str))
print(isinstance(a,(str,int,list)))

结果如下

True
False
True

值相同和指向同一段内存地址

对象的本质是指向内存中的一段地址。调用函数id()得到对象指向的内存地址。
使用运算符==判断2个变量的值是否相同。使用运算符is判断2个变量是否指向同一段内存地址。

对于简单数据类型(即布尔、数值和字节)对象,只要值相同,就不会在内存中重复创建,而是直接指向相同的内存地址。而对于复杂数据类型(即字符串、列表、元组、集合和字典),既使2个变量值相同(即包含的元素相同),也不指向相同的内存地址。如

a=1
b=2
print(a == b)
print(a is b)
c = [1, 2, 3]
d = [1, 2, 3]
print(c == d)
print(c is d)

结果如下:

True
True
True
False

标量数据类型

数值型

数值型包括整数型int、浮点型float和复数型complex。
(整数型int可以存储任意大的数值,不会溢出)
浮点型float可以用小数点或科学计数法表示。如

fval = 0.0000678
fval

结果:6.78e-05
注:**两个整数型使用单斜杠/相除,可以得到浮点型结果。如果两个整数型相除想得到整数,必须使用双斜杠//。**如:

3 / 2
3 // 2

结果:

1.5
1

复数计算,其中函数abs()计算复数的模。

x = 3 + 4j
y = 5 + 6j
x + y
x - y
x * y
x / y
abs(x)
x.real
x.imag

结果

(8+10j)
(-2-2j)
(-9+38j)
(0.6393442622950819+0.03278688524590165j)
5.0
3.0		
4.0

字符串和字节型

使用单引号’‘或双引号""定义字符串。如果字符串是包含换行符的多行字符串,可以使用3个引号’’'或"""定义。Python中的字符串是不可变的,不能直接通过字符串的索引修改字符串。
字符串的函数可以生成新的字符串。例如,调用字符串的函数replace()替换字符串中的内容。

d = 'this is a string'
e = d.replace('string', 'longer string')
print(e)

结果:

'this is a longer string'

字符串最终还是会以二进制字节的形式存储,将字符串转换成二进制字节的过程称为编码,而将二进制字节转换成字符串的过程则称为解码。调用字符串的函数encode()编码字符串,其中第1个参数encoding表示编码方式,默认为"utf-8"。

chn_utf8 = chn.encode('utf-8')
chn_utf8
print(chn_utf8.decode('utf-8'))

结果:b'\xe4\xb8\xad\xe6\x96\x87' 中文
可以看出,得到的结果以字符b开头,表示是字节型。
调用字节的函数decode()解码字符串,参数和函数encode()一样。

空类型

空类型的唯一取值为None,通常表示数据缺失。
使用运算符is判断对象是否为空或非空。
空值None的数据类型为空类型NoneType。

布尔型

布尔型仅有2种取值,即真(True)和假(False),区分大小写,可以和运算符逻辑与(and)和逻辑或(or)结合使用。

类型转换

函数str(),bool(),int()和float()用于将输入对象分别转换成字符串、布尔型、整数型和浮点型。
数值型转换为布尔型时,0对应假,其他数值都对应真。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值