数据类型分类
区别于其他语言
- 在Python中不需要事先声明数据类型,直接对变量赋值。
相关操作
- Python可以同时为多个变量赋值,如a, b = 1, 2;
- 一个变量可以通过赋值指向不同类型的对象;
- 数值的除法(/)总是返回一个浮点数(print(2/4)输出0.5),要获取整数使用//操作符;
- 在混合计算时,Python会把整型转换成为浮点数;
- del语句可删除定义的对象,如:del a,b;
- 判断对象类型:
- 可通过type()函数查询变量所指的对象类型;
- 可通过isinstance()函数来判断变量所指的对象类型:
- 举例:
输出结果为:a = 111 isinstance(a, int)
True
- 举例:
- 区别:type()不会认为子类是一种父类类型;isinstance()会认为子类是一种父类类型。
数字类型
- 整型(int,integer)
-
Python3中只有一种整数类型int,表示为长整型,没有Python2中的long;
-
可以表示正数、负数和零;
-
进制:
- 默认使用十进制;
- 使用起始标记后输出时转化为十进制;
进制 起始 基本数 二进制 0b 0~9 八进制 0o 0~7 十六进制 0x 0~9,A~F
-
- 浮点型(float)
- 组成:整数部分+小数部分;
- 储存不精确:
- 使用浮点数计算时,可能会出现小数位不确定的情况;
两次结果可能不同,第一次3.3000003,第二次3.2print (1.1+2.2) print (1.1+2.1)
- 解决方案:导入模块decimal;
结果为3.3from decimal import Decimal print (Decimal("1.1")+Decimal("2.2"))
- 使用浮点数计算时,可能会出现小数位不确定的情况;
- 布尔型(bool,Boolean)
- 用来表示真或者假的值;
- 区别于其他语言:Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1,False==0 会返回 True,但可以通过 is 来判断类型;
- 举例:
输出结果为:print(1 == True)
True
输出结果为:print(1 is True)
False
- 举例:
- 可转化为整数;
结果为2print(True+1)
- 复数型(complex)
- 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点。
字符串类型
- 用单引号 ’ 、双引号 "或者三引号’''定义;
- 用单双引号定义的字符串必须在同一行;
- 用三引号定义的字符串可以分布在连续的多行;
- 使用反斜杠 \ 转义特殊字符(即转义字符)或者用作续行符;
- 没有单独的字符类型,一个字符就是长度为1的字符串;
- 区别于其他语言,Python语言中字符串不能被改变,比如对某个索引位置赋值,会导致错误。
- 字符串的截取的语法格式如下:
索引值以 0 为开始值,向后递增1;-1 为从末尾的开始位置,向前递减1。变量[头下标:尾下标]
- 加号 + 是字符串的连接符;
- 星号 * 表示复制当前字符串,与之结合的数字为复制的次数。
转义字符
定义:
反斜杠+想要实现的转义功能首字母。
用途(为什么需要转义字符):
- 当字符串中包含反斜杠、单引号和双引号等有特殊用途的字符时,必须使用转义字符对这些字符进行转义(转换一个含义),举例:
- 反斜杠//
输出结果为:print('http:\\www.baidu.com')
http:\www.baidu.com
- 单引号/’
- 双引号/"
- 反斜杠//
- 当字符串中包含回车、换行、水平制表符或退格等无法直接表示的特殊字符时,也可以使用转义字符。举例:
- 换行/n (newline)
输出结果为:print('Hello\nworld!')
Hello world!
- 回车/r (return),会使后面的内容覆盖前面的内容;
输出结果为:print('Hello\rworld!')
world!
- 水平制表符/t (tab),输出结果为占据下一个制表位(四个空格)剩余位置的间隔;
输出结果为:print('Hello\tworld!')
Hello world!//中间实际上只有三个空格的位置
- 退格/b (backspace),退一个格继续输出
输出结果为:print('Hello\bworld!')
Hellworld!
- 换行/n (newline)
原字符
- 定义:不希望字符串中的转义字符生效时,使用原字符;
- 操作:在字符串前加上“r”或“R”;
- 注意:使用原字符时,后接字符串的最后一位不能为反斜线,连续两(偶数)个反斜杠可以;
- 举例:
输出结果为:print(r'Hello\nworld!')
Hello\nworld!