Python高级数据类型
计算机是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。
但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。
在Python中,能够直接处理的数据类型有:数字、字符串、列表、元组、字典等。
在python当中 序列就是一组按照顺序排列的值【数据集合】
在python 中存在三种内置的序列类型:
字符串、列表、元组
优点:可以支持索引和切片的操作
特征:第一个正索引为0,指向的是左端,第一个索引为负数的时候,指向的是右端
🧾字符串基本的使用
Python当中的字符串可以说是非常常见了,也可以说是最常用的类型了。
表达字符串我们可以分别使用,单引号('xxx')、双引号("xxx")、来进行表达。
创建一个字符串也是非常简单的,就用代码演示一下好了。
string1 = "hello Python" print(string1) string2 = 'bye python' print(string2)
创建一个字符串非常简单,只需要给程序分配一个变量就可以了
🚗查看字符串的数据类型
查看数据类型的关键字是:type()
1. string1 = "hello Python" 2. print(type(string1))
- 从这里可以看出变量里面的"分配值"是字符串类型的!
📖字符串赋值给变量
1. storage = 'hello Python' 2. print(storage)
📖多行字符串打印
1. storage = '''hello Python 2. Python good ''' 3. print(storage)
- 注:或者用双引号也是可以的 💨
📖字符串级联
- 如需串联或组合两个字符串,您可以使用 + 运算符。
如下实例:
# 将变量 a 变量 b 合并到变量 c 中 a = "Hello" b = "world" c = a + b print(c)
- 以上实例输出结果
三引号
- 三引号可以将复杂的字符串进行赋值。
- 三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
如下实例:
a = '''hello Python 你好''' print(a)
以上实例输出结果
字符串是数组
看到这个数组相比学会C语言小伙伴并不会陌生,其实Python也是一样的像许多流行的编程语言是一样的。
Python 没有字符数据类型,单个字符就是长度为 1 的字符串。 方括号可用于访问字符串的元素。
请记住第一个字符的位置为 0😏
如下实例:
a = 'Hello Python' print(a[1])
以上实例输出结果
访问字符串当中的值
Python在单字符当中也是不具备支持单字符的类型,单子符也是按照一个字符串来进行使用的✉Python访问子字符,可以使用【】来截取字符串。
截取字符串语法格式
变量【头下标 :尾下标】 # 起点 :终点 🎁 ----------------------- 索引值以 0 为开始值,-1 为从末尾的开始位置~
如下实例:
a = 'hello Python' print('a[0] = ',a[0]) print('a[0+6] = ',a[0+6]) print('a[:0+6] = ',a[:0+6])
- 以上实例输出结果
注意:看有没有:冒号 和 没有冒号是打印出的是什么,以及有什么区别
字符串相连
- 按照上面的截取字符串,再打印中添加字符串进行相连
如下实例
a = 'hello Python' print('a[0+6]',a[:0+6]+'good')
- 以上实例输出
字符串格式
- 我们不能像这样组合字符串和数字
如下实例
age = 63 txt = "I am" + age print(txt)
- 以上实例输出
从上面的运行结果来看这个实例是不行的❌
format
- 但是我们可以使用format()方法组合字符串和数字
- format() 方法接受传递的参数,格式化它们,并将它们放在占位符 {} 所在的字符串中:
如下实例
age = 63 txt = "I am {}" print(txt.format(age))
- 以上实例输出
len
- len() 函数作用:返回字符串的长度
如下实例:
A = 'hello Python' print("长度是",len(A))
- 以上实例输出
倒叙输出
如下实例:
string = 'Hello Python' print(string[::-1]) print(string[::-2])
for 循环便利
如下实例:
1. string = 'Hello Python' 2. for replace in string: # for 临时变量(存放容器) in 容器() 3. print(replace,end=' ')
以上实例输出
字符串的索引
字符串是字符的有序集合,可以通过其位置来获得具体的元素。在 Python 中,字符串中的字符是通过索引来提取的,索引从 0 开始。
在Python当中可以取负值,表示从末尾提取,最后一个为 -1,倒数第二个为 -2,即程序认为可以从结束处反向计数。
索引获取特定偏移的元素
字符串中第一个元素的偏移为 0
字符串中最后一个元素的偏移为-1
str[0] 获取第一个元素
str[-2] 获取倒数第二个元素
分片提取相应部分数据
固定字符举例子:"string"
通常上边界不包括在提取字符串内
如果没有指定值,则分片的边界默认为0和序列的长度
str[1:3]获取从偏移为1的字符一直到偏移为3的字符串,不包括偏移为3的字符串 : "tr"
str[1:] 获取从偏移为1的字符一直到字符串的最后一个字符(包括最后一个字符): "tring"
str[:3] 获取从偏移为0的字符一直到偏移为3的字符串,不包括偏移为3的字符串 : "str"
str[:-1] 获取从偏移为0的字符一直到最后一个字符(不包括最后一个字符串): "strin"
str[:] 获取字符串从开始到结尾的所有元素 : "string"
str[-3:-1] 获取偏移为 -3 到偏移为 -1 的字符,不包括偏移为 -1 的字符 : "in"
str[-1:-3] 和 str[2:0] 获取的为空字符,系统不提示错误: ""
分片的时候还可以增加一个步长,str[::2] 输出的结果为: "srn"
📗字符串的常见操作
这里并不会列举全部,只是会列举比较常用的!
capitalize
作用:capitalize()函数将首字母转换成大写
例如:
1. name = 'liu' 2. print('姓名首字母转换大写:%s'%name.capitalize())
运行结果:
strip
- 作用:strip()函数去除字符串两边中空格的效果
🎉例如:
1. a = ' 张三 ' 2. b = a.strip() 3. print(b)
🎊运行结果:
lstrip
- 作用:lstrip()函数删除左边的空格
🎉例如:
1. a = ' 张三 ' 2. b = a.strip() 3. print(a.lstrip())
🎊运行结果:注意:看那条线
rstrip
- rstrip()函数删除右边的空格
🎉例如:
1. a = ' 张三 ' 2. print(a.rstrip())
🎊运行结果:注意:看那条线
id
- 作用:id()函数可以查看一个对象当中的内存地址
🎉例如:
1. c = 123 2. d = 123 3. print('c当中的内存地址:%d'%id(c)) 4. print('d当中的内存地址:%d'%id(d))
🎊运行结果:
find
- 作用:find()函数可以查找对象在序列(字符)下标当中的值
🎉例如:
1. slogan = 'Python' 2. print(slogan.find('y'))
🎊运行结果:
index
- 注: index()函数在这里的作用非常相似☞☞☞find()函数
🎉例如:
1. slogan = 'Python' 2. print(slogan.index('P'))
🎊运行结果:
不同之处
🎉例如:
1. slogan = 'Python' 2. print(slogan.find('M')) 3. print(slogan.index('M'))
🎊运行结果:
第一幅图是find函数的运行结果 ☞☞☞☞☞☞☞☞☞☞☞☞ 第二幅图是index函数的运行结果
注意:find函数没找到的话,返回的值是一个-1,而index()函数则不同它会报错!
endswith
作用:endswith()函数,最后一个字符结尾为Turn,不然则是False🧨
🎉例如:
slogan = 'Python' print(slogan.endswith('n'))
🎊运行结果:
startswith
- 作用:startswith()函数,开头第一个字符为Turn,不然则是False🧨
🎉例如:
1. slogan = 'Python' 2. print(slogan.startswith('P'))
🎊运行结果: title
作用: title()函数— 可以让首字母串变成大写字母 (注意:有空格的话那怕是后面的也算第一个大写)
name.()是让对变量执行title的操作
🎉例如:
name = 'zhang san' print(name.title())
upper
作用: upper()函数—可以把所有字符串改成是大写
🎉例如:
1. name = 'zhang san' 2. print(name) 3. print(name.upper())
🎊运行结果:
lower
- 作用:lower()函数 — 可以把所有字符转换成小写
🎉例如:
1. name = 'ZHANG' 2. print(name.lower())
🎊运行结果:
format
作用:format()函数方法接受不限数量的参数,并放在各自的占位符中
🎉例如:
quantity = 3 itemno = 567 price = 49.95 myorder = "I want {} pieces of item {} for {} dollars." print(myorder.format(quantity, itemno, price))
🎊运行结果:
还可以使用索引号 {0} 来确保参数被放在正确的占位符中: 对比之下看看
🎉例如:
1.
quantity = 3 itemno = 567 price = 49.95 myorder = "I want to pay {2} dollars for {0} pieces of item {1}." print(myorder.format(quantity, itemno, price))
zfill
作用:zfill()函数 方法在字符串的开头添加零(0),直到达到指定的长度()
如果 len 参数的值小于字符串的长度,则不执行填充。
🎉例如:
number = '50' x = number.zfill(20) print(x) numbers = '51' y = number.zfill(10) print(y)
🎊运行结果: