python中的数据类型
基础类型
- 数值型可以分为:
- 整型(int): python3中只有int一种,可以表示整数,例如:10,-5,10000
- 浮点型(float): 表示带小数点的实数,有两种表示法:
- 小数表示: 1.9 .23
- 科学计数法: 用e来表示10的指数,1e2就代表了100,注意e前面必须有数值,e后面必须为整数
- 复数(complex):表示数学上的无理数,形如:a+bj
- 布尔型(bool):表示事务的两种状态,男女、阴晴、亮暗等,它只有两个值:True,False
- None:表示空对象,一般用于判断,不同于0和空字符
- 字符串(str):在python中,可以使用字符串表示文本
- 字符串的表示
# 用单引号表示: 'hello'
# 用双引号表示:"我用python"
# 用3个单引号表示:可以表示多行文本,例如:
'''伟大
的
祖国
'''
# 用3个双引号表示:可以表示多行文本,例如:
"""生死看淡,
不服就干""" - 字符串编码:计算机只能识别二进制,那么字符串如何存储到计算机里呢
计算机不能直接存储字符串,但我们可以将字符编码,例如用65表示大写字符A,66表示大写字符B....等这种表示方式就是美国类的ASCII码,只能表示127个字符,但对于美国人来说已经足够了。一但能用整数表示字符,我们可以很方便的把整数用二进制表示,那么字符串也就和容易存储到计算机了。
但还有很多其他国家的语言是不能用ASCII表示的,所有ISO组织就推出了unicode码,用来表示任何一种语言的字符,unicode码也称之为万国码,通用码,可以表示任何一种语言的任何一个字符。unicdoe码有多中表示方式,例如:utf-8、utf-16、utf-32等。一般使用较多的是utf-8,utf-8是一种变长的编码,表示一个字符可能用一个字节,也可能是三个字节
中文常用编码一般用GBK编码,用2个字节表示一个汉字 - 转义字符:有些特殊字符无法从键盘输入,可以使用转义字符表示,另外,无论是单引号、双引号还是三引号字都叫字符串界定符,也就是说用引号引起来的才是字符串,那么如果字符串中包含了引号该怎么表示呢?这个时候我们就要使用转义字符表示,把引号转义成普通字符。常见的转义字符
- 字符串的表示
类型判断
我们可以使用type和isinstance来测试和判断数据类
#type用法:
type(obj)
功能:返回obj的数据类型
参数:obj是你要测试变量或数值
示例:
age = 10
name = 'hello'
print(type(name),type(age))
#判断变量是否是指定类型
if type(age) is int:
print('是')
else:
print('否')
#isinstance用法:
isinstance(obj,typename)
功能:判断obj是否是指定类型,是返回True,否返回False
参数: objobj是你要判断的变量或数值
typename是指定数据类型,可以是int,float,str等。也可是一个
类型的元组,例如:(int,float)
示例:
age = 10
name = 'hello'
print(isinstance(age,int))
print(isinstance(name,(str,int)) #只要name是str或int的一种就返回True
if isinstance(age,int):
print('是')
else:
print('否')
#type和isinstance的区别
type一般用于类型显示,isinstance一般用于类型判断
type也可以判断类型,但无法判断子类对象是父类的一种,isinstance可以判断子类对象是父类的一种
class A:
pass
class B(A):
pass
objA = A()
objB = B()
#输出否
if type(objB) is A:
print('是')
else:
print('否')
print(isinstance(objB,A)) #True
结论:优先使用isinstance