Python的标准数据类型(6个)
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
Python3 的六个标准数据类型中:
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
1.数字
Python支持四种不同的数字类型:
- int(有符号整型[可以代表八进制和十六进制])
- float(浮点型) 支持十进制和科学计数法,只有双精度
- bool(布尔型)
- complex(复数) Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的 实部 a 和虚部 b 都是浮点型。
数字类型实例:
注意:
<1> 在Python2中是没有布尔型的,它用数字0表示False,用1表示True。到Python3中,把True和False定义成关键字了,但它们的值还是1和0,它们可以和数字相加。
<2> 在Python 3里,只有一种整数类型 int,表示为长整型,且没有大小的限制,受限于内存区域的大小,没有 python2 中的 Long。
<3> 内置的type()函数可以用来查询变量所指的对象类型。
下面两副截图截自菜鸟教程
注意:执行浮点数的运算,结果包含的小数位数可能是不确定的,这样结果的起因是计算机内部表示数字的方式,所有语言都存在这种问题
示例:
运行结果:
数字的处理函数
圆整(四舍六入五取偶):round()
向下取整:math.floor()
向上取整:math.ceil()
舍去小数位:int()
最大值:max()
最小值:min()
乘方:pow(x,y) 等价于x**y
开方:math.sqrt()
进制函数:返回值是字符串
二进制:bin()
八进制:oct()
十六进制:hex()
圆周率:math.pi
自然指数e:math.e
2.字符串
字符串是不可变对象
python3起,字符串是Unicode类型
#python不区分字符和字符串,单引号和双引号均表示字符串
s1='hello'
s2="hello"
print(s1)
print(s2)
#三引号表示字符串内的单引号和双引号不做转义
s3=''''this' is a "string"'''
print(s3)
#加了转义字符
s4='hello \n world'
print(s4)
#不做特殊处理,不再当转义字符,r和R均可以
s5=r'hello \n\t world'
print(s5)
s6=R"c:\hello\nt"
print(s6)
(1)字符串访问
#字符串支持索引访问
s="he llo\nt"
print(s[1])
#字符串是有序字符序列
for i in s:
print(i)
print(type(i))
#可迭代
print(list(s))
可以看出空格也是字符串,没有字符类型,单个字符还是字符串类型
(2)修改字符串的大小写
upper() -----------------字母全部转换成大写,返回新的字符串
lower() -----------------字母全部转换成小写,返回新的字符串
示例:
运行结果:
其他的了解就行
(3)拼接字符串
<1>连接字符串中每个字符
#成员函数的join方法是将参数字符串中每个字符用调用者字符串连接起来
s='hello'
print('~'.join(s))
l=list(range(5))
print(str(l))
#将列表的符号[和空格都转化成了字符串连接在一起
print("~~".join(str(l)))
#将列表中每个元素转化成字符串连接在一起
print("~~".join(map(str,l)))
#另一种换行表示法
print("\n".join(('a','b')))
l=['1',['1','2'],'3']
#下面的语句报错
print('\n'.join(l))
#print(['a'])等价于print(str(['a']))
<2>python使用“+”来合并字符串
原来的那两个字符串没有变,只是生成了一个新的字符串返回
示例:
运行结果:
(4)使用制表符或换行符来添加空白
制表符:\t 换行符:\n
示例:
运行结果:
补充:python语句结束说明
python可以使用但不推荐使用分号结尾,python本身通过换行来识别一条语句的结束,当一条语句很长时,可以在结尾添加 “\\” 来 表示此句未结束,继续写在下一行
(5)删除空白
注意:这种删除只是暂时的,并不改变变量本身
示例:
运行结果:
而我们需要修改原变量的值的时候,就需要将新值保存回原变量中
示例:
运行结果:
(6)将非字符串值表示为字符串------str()
示例1:
运行结果1:
python不会将int类型自动转化为字符串,需要我们使用str()进行强制转换,但不会改变原有类型,需要保存回去才能改变原变量的值,同时改变了它的类型
示例2:
运行结果2:
(7)字符串分割
split系:切多刀用split
代码演示:
#split
#默认以至少一个空白字符分割,\n,\t,练成一片的空白字符算一个
print("abc".split())
print("a b c".split()) #以下三个等价
print("a b c".split(None))
print("a b c".split(sep=None))
#以下是坑,当传入参数为空格时,它不会把连续的空格算一个,
# 而是一个空格之后后续的空格它都会输出
print("1 2 3 4 5".split(' '))
#当传了参数时,它每遇到一个字符后边为参数就会在后面添加
print('tatat'.split('a'))
#第1个参数表示用来切割的字符,第2个参数表示切割的个数(当不传第二个参数时,默认为最大切割)
print("a,b,c,d,e".split(',',2))
#rsplit从右边切,返回的字符串还是按照原来的顺序返回列表
print("c:/hello/iconfig".rsplit('/',1)[1]) #使用索引来访问列表
partition系:切一刀用partition
#partition切一刀下去将字符串分为两部分,然后中间加分割字符,返回三元组
print("a,b,c,d".partition('c'))
print("a,b,c,d".partition(','))
(8)字符串修改
这里的修改实际是返回了新的字符串
时间复杂度为:O(n)
#参数1:旧的要被替换的字符串 参数2:新的替换字符串 参数3:替换的数量
print("www.baidu.com".replace('w','h'))
print("www.baidu.com".replace('w','h',2))
(9)字符串查找
优先选择find方法
(10)字符串判断
(11)字符串的格式化