前言
学无止境,无止境学。大家好,我是张大鹏,之前在抖音有5万多粉丝,不过现在不拍视频,专心写公众号了。笔者目前是高级Python工程师,之前是全栈工程师,主要擅长Golang和Python开发,对于Java,Vue,React也有一些研究。工作之余,喜欢学习和分享,希望能够通过此公众号”张大鹏520″,将自己学到的东西分享给大家,和大家一起交流,一起成长,一起进步。
今天要给大家分享的是《Python零基础入门教程05 字符串和列表以及元组》,这是一个系列的教程,从零基础到项目实战。在本教程中,我会给大家介绍Python中的字符串和列表以及元组,他们都是序列类型,有很多相似的地方,所以放在一起讲。还会配套相关的练习,大家学完以后可以自行通过练习题巩固和加深对知识点的理解。
如果大家需要本教程的PDF电子书或者完整的源码,可以在文末找到获取方式哈。
01 字符串
字符串的定义
Python是我见过的定义字符串方式最多的一种编程语言,常见的就有以下几种:
-
使用单引号 -
使用双引号 -
使用三单引号 -
使用三双引号 -
使用f字符串 -
使用百分号字符串
示例代码:字符串的定义
# 使用单引号
s1 = '大鹏'
print(s1, type(s1))
# 使用双引号
s2 = "李四"
print(s2, type(s2))
# 使用三单引号
s3 = '''你好啊'''
print(s3, type(s3))
# 使用三双引号
s4 = """嘿嘿嘿"""
print(s4, type(s4))
# 使用f字符串
s5 = f"{s4},惊呆了,Python居然有这么多种定义字符串的方式"
print(s5, type(s5))
# 使用百分号字符串
s6 = "%s:你真的是个秀儿" % s2
print(s6, type(s6))
字符串的输入输出
这个咱们已经用过很多次了,使用input函数输入数据,使用print函数输出数据。
示例代码:
name = input("请输入你的名字:")
print(f"你的名字是:{name}")
字符串的下标
字符串是一种特殊的序列,由字符组成。不过Python中没有字符这种类型,可以看成是单个字符串。也是因为字符串是一种序列类型,可以字符串是有下标的,也可以进行切片。
示例:查看字符串的下标
s = "abc"
# 方法1:自己数
print(s[0], s[1], s[2])
# 方法2:使用for遍历
for i in range(len(s)):
print(i, s[i])
字符串的切片
切片是Python中非常重要的一个特性,也Python中处理序列类型数据非常灵活的一种方式。切片的基本语法为:
序列对象[开始下标:结束下标:步长]
其中:
-
开始下标的默认值是0 -
结束下标的默认值是-1 -
步长的默认值是1
也就是说,arr[:]
相当于arr[0:-1:1]
,不过不太一样的是,arr[:]
能够切取整个数组。
常见的切片方式有:
-
截取指定内容: arr[开始下标:结束下标]
-
从指定下标截取到末尾: arr[开始下标:]
-
从开始截取到指定下标: arr[:结束下标]
-
让字符串逆序: arr[::-1]
示例代码:
s = "abcdefghijklmnopqrstuvwxyz"
# 截取片段
print(s[3:5])
# 从指定下标截取到末尾
print(s[11:])
# 截取到指定下标
print(s[:3])
# 字符串逆序
print(s[::-1])
字符串查找方法
字符串内置了很多的便捷方法,其中包括如下常用的查找方法:
-
find:查找子串在字符串中第一次出现的下标,找不到返回-1 -
index:查找子串在字符串中第一次出现的下标,找不到会抛出异常 -
count:查找子串在字符串中的出现次数 -
rfind:从字符串右边开始查找子串在字符串中第一次出现的下标,找不到返回-1 -
rindex:从字符串右边开始查找子串在字符串中第一次出现的下标,找不到会抛出异常
示例代码:
s = "abcabcabcabcabcabc"
# 从左边查找子串的索引
print(s.index("c"))
print(s.find("c"))
# 从右边查找字符串的索引
print(s.rindex("c"))
print(s.rfind("c"))
# 统计子串的次数
print(s.count("ab"))
字符串常用修改方法
字符串除了查找方法,还提供了几个修改方法,这几个方法非常的常用,建议记住:
-
replace:替换字符串中的子串为新的子串 -
split:将字符串按照指定的分隔符拆分为字符串列表 -
join:将字符串列表按照指定的连接符号合并为字符串
示例:字符串替换
# 替换
s = "python入门教程【广告内容】.mp4"
s = s.replace("【广告内容】", "")
print(s)
示例:字符串分割
# 分割
s = "张三,33,男"
s = s.split(",")
print(f"姓名:{s[0]},年龄:{s[1]},性别:{s[2]}")
示例:字符串合并
# 合并
s = ["张三", "33", "男"]
s = ",".join(s)
print(s)
字符串其他修改方法
除了上面说的三个修改方法以外,字符串还有一些可能会用到的修改方法:
-
capitalize:字符串首字母大写 -
title:字符串每个单词首字母大写 -
upper:字符串全大写 -
lower:字符串全小写 -
lstrip:删除字符串左边空白字符 -
rstrip:删除字符串右边空白字符串 -
strip:删除字符串左右两边空白字符
示例代码:
# capitalize:字符串首字母大写
print("hello".capitalize())
# title:字符串每个单词首字母大写
print("hello world".title())
# upper:字符串全大写
print("abc".upper())
# lower:字符串全小写
print("AbC".lower())
# lstrip:删除字符串左边空白字符
print(" abc".lstrip())
# rstrip:删除字符串右边空白字符串
print("abc ".rstrip())
# strip:删除字符串左右两边空白字符
print(" abc ".strip())
字符串的判断方法
字符串还提供了一些判断方法,偶尔会用到:
-
startswith:判断是否以某个字符串开头 -
endswith:判断是否以某个字符串结尾 -
isalpha:判断是否为字母 -
isdigit:判断是否为数字 -
isalnum:判断是否为字母加数字的组合 -
ispace:判断是否为空白字符
示例代码:
# startswith:判断是否以某个字符串开头
print("http://localhost:80".startswith("http://"))
# endswith:判断是否以某个字符串结尾
print("a.jpg".endswith(".jpg"))
# isalpha:判断是否为字母
print("abc".isalpha())
# isdigit:判断是否为数字
print("123".isdigit())
# isalnum:判断是否为字母加数字的组合
print("abc123".isalnum())
# ispace:判断是否为空白字符
print(" r n".isspace())
02 列表
列表的下标
列表和字符串一样,都是序列类型,都有自己的下标。下标是从0开始的有序整数。
示例代码:
name_list = ['张三', '李四', '王五']
print(name_list)
print(name_list[1], name_list[0], name_list[2])
列表的查找
和字符串一样,列表页提供了一些常用的查找方法:
-
index:查找元素的索引 -
count:查找元素的个数
示例代码:
name_list = ['张三', '李四', '王五', '张三', '李四', '王五', '张三', '李四', '王五', ]
# index:查找元素的索引
print(name_list.index("李四"))
# count:查找元素的个数
print(name_list.count("张三"))
判断列表元素是否存在
要判断列表元素是否存在,Python提供了两种方法:
-
in:判断元素在列表中 -
not in:判断元素不在列表中
示例代码:
name_list = ['张三', '李四', '王五', '张三', '李四', '王五', '张三', '李四', '王五', ]
# in:判断元素在列表中
print("张三" in name_list)
# not in:判断元素不在列表中
print("张三33" not in name_list)
列表增加数据
要向列表中增加数据,常用的有以下几种方法:
-
append:向列表末尾追加元素 -
extend:向列表追加一个序列的多个元素 -
insert:向列表的指定索引位置插入元素
示例代码:
name_list = []
# append:向列表末尾追加元素
name_list.append("张三")
print(name_list)
# extend:向列表追加一个序列的多个元素
name_list.extend(["李四", "王五"])
print(name_list)
# insert:向列表的指定索引位置插入元素
name_list.insert(0, "张珊珊")
print(name_list)
列表删除数据
除了增加数据,列表还可以删除数据。常用的删除列表数据的方法如下:
-
del:删除列表或者删除列表中的元素 -
pop:删除最后一个数据,或者删除指定下标的数据 -
remove:删除指定元素 -
clear:清空元素,即就是删除所有数据
示例代码:
name_list = ['张三', '李四', '王五', '张三', '李四', '王五', '张三', '李四', '王五', ]
# del:删除列表或者删除列表中的元素
del name_list[0]
print(name_list)
# pop:删除最后一个数据,或者删除指定下标的数据
name_list.pop()
print(name_list)
name_list.pop(0)
print(name_list)
# remove:删除指定元素
name_list.remove("李四")
print(name_list)
# clear:清空元素,即就是删除所有数据
name_list.clear()
print(name_list)
列表的复制
列表提供了一个copy方法,用于执行对列表的浅拷贝。关于深拷贝和浅拷贝,是比较重难点的知识,后面再讲。至于不能直接将列表赋值给另一个列表,这个涉及到引用的知识点,这种赋值是直接拷贝内存地址,列表还是同一个。浅拷贝指的是将列表中的值类型元素拷贝到一个新的列表中,两个列表不共享同一块内存。
示例代码:直接赋值是不可取的
arr = [1, 2, 3]
# 直接赋值是不可取的
arr1 = arr
# 因为共享了同一块内存地址,一修改,就都修改了
arr1[0] = 333
print(arr, arr1)
示例代码:使用copy进行浅拷贝
arr = [1, 2, 3]
# 使用浅拷贝则不会,一般来讲,浅拷贝都够用
arr1 = arr.copy()
# 两个列表互不影响
arr1[0] = 333
print(arr, arr1)
列表的嵌套
理论上来讲,列表是可以存储任何元素的,包括列表本身。所以,列表是可以嵌套的,甚至是无限嵌套。不过最常见的也就是二级嵌套表示二维数组,三维嵌套表示三维数组。其他层级的嵌套很少见。
示例代码:
# 二维数组
arr = [[11, 22], [33, 44]]
print(arr)
# 三维数组
arr = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
print(arr)
列表的遍历
遍历列表用for循环是最方便的,有几层嵌套的列表,就用几个嵌套的for循环即可。
示例代码:一维数组的遍历
# 一维数组
arr = [11, 22, 33, 44]
for v in arr:
print(v, end="t")
print()
示例代码:二维数组的遍历
# 二维数组
arr = [[11, 22], [33, 44]]
for v in arr:
for vv in v:
print(vv, end="t")
print()
示例代码:三维数组的遍历
# 三维数组
arr = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
for v in arr:
for vv in v:
for vvv in vv:
print(vvv, end="t")
print()
03 元组
为什么要有元组
元组也是一种序列类型。目前我们学过的字符串,列表也都是序列类型。列表是可变序列,但是字符串和元素都是不可变序列。
为什么有了字符串和列表,还有有元组呢?
主要是因为字符串是不可变的,但是只能存储字符。而列表可以存储任意类型,但是列表又是可变的。为了有一种数据结构能够存储任意类型数据,又是不可变的类型,所以就有了元组。
元组的定义
元组的常用定义方法如下:
-
定义空元组: tuple()
-
定义一个元素的元组: (元素,)
,注意,元素后面要有个逗号 -
定义多个元素的元素: (元素1,元素2,元素3)
示例:元组的定义
# 定义空元组:`tuple()`
t = tuple()
print(t, type(t))
# 定义一个元素的元组:`(元素,)`,注意,元素后面要有个逗号
t = (1,)
print(t, type(t))
# s定义多个元素的元素:`(元素1,元素2,元素3)`
t = (1, 2, 3)
print(t, type(t))
元组的常用操作
元组是一种非常简单的数据结构,能够进行的操作也比较有限,主要包括:
-
通过下标访问元素 -
index:查找元素的下标 -
count:查找元素的个数 -
len:查看元素的长度
示例代码:
t = ("a", "b", "c")
# 通过下标访问元素
print(t[0])
# index:查找元素的下标
print(t.index("a"))
# count:查找元素的个数
print(t.count("b"))
# len:查看元素的长度
print(len(t))
结语
关注我不迷路,欢迎关注我的微信公众号”张大鹏520″,如果您对此文章感兴趣,欢迎点赞收藏,留言评论。
文中所有代码,只需要打赏20元,然后留言评论“已打赏”,即可获取哦。
本文的PDF电子书版,只需要打赏3元,然后留言评论“已打赏”,即可获取哦。
写文章不容易,不喜勿喷哈,如果有想要学编程,学项目,或者在工作中有项目难以单独完成需要提供帮助的同学,欢迎私信我哈。生活不易,想要利用学到的编程知识,业余赚点零花钱。
接项目:网站开发,APP开发,各种管理系统开发。
带徒弟:Python编程教学,Golang编程教学,前端编程教学。
谢谢您!!!
原文始发于微信公众号(张大鹏520):Python零基础入门教程05 字符串和列表以及元组
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/48538.html