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

原文地址:https://www.cnblogs.com/landmark/p/12609449.html