一、元组

1.1 元组简介

特点:

  • 元组也是有序的数据结构【有先后顺序】

  • 可以通过偏移来获取元素

  • 元组是不可变的对象【不能原地修改】

  • 元组不能进行排序和修改操作【元组中的元素不能修改】

定义元组

元组名 = (元素,元素,元素,元素,)

特殊元组

  • 空元组

  • 有一个元素的元组

  • 区分乘法运算

a = []
print(a)

b = ()
print(b)

c = ("tom",)
print(c)

d = ("tom","jerry")
print(d)

s1 = 3*(1+4)
print(s1)

s2 = 3*(1+4,)
print(s2)


1.2 元组操作

操作1:从元组中取数据

s = ("tom","jerr","bob","jack")
name = s[2]
print(name)

name = s[1:]
print(name)

操作2:类型转换

  • 方法:tuple(列表)

案例:将元组的第三个元素修改为tuoni

s = ("tom","jerr","bob","jack")  #定义元组
li = list(s)                                # 转换为列表
li[2] = "tuoni"                         #修改元素
s = tuple(li)                          # 转换成元组

print(s)

3.3 集合简介

集合的类别:

  • 不可变集合

  • 可变集合

集合的操作

  • 创建集合

  • 添加集合

  • 删除集合

  • 成员关系

  • 交集、差集、并集

  • 去重

3.4 集合的操作

操作1:创建集合

  • set() 创建的是不可变集合
  • frozenset() 创建的是可变集合

s = set("tom")     # 创建集合
print(s)

操作2:在集合添加元素

  • add:将目标作为整体添加到集合中

  • update:将目标拆分成一个一个的元素添加到集合中

s = set("tom")
print(s)    # 输出结果 {'t', 'm', 'o'}

s.add("jerry")    
print(s)

s.update("abc")
print(s)

s.update("aaaaaaaa")
print(s)

操作3:删除集合中的元素

  • remove

s = set("tom")
print(s)    # 输出结果 {'t', 'm', 'o'}

s.remove("m")
print(s)

操作4:成员关系

  • in

  • not int

操作5:交集并集差集

a = set("12345")
b = set("24689")

# 获取集合a 和 集合b中都有数字【交集】
res = a & b
print(res)

# 获取集合a 和 集合b中的全部的数字,重复的数字只显示依一次【并集】
res = a | b
print(res)

# 获取集合a 中有,但是基b中没有的数字【差集】
res = a - b
print(res)

# 获取集合a 中有,但是基a中没有的数字【差集】
res = b - a
print(res)

操作6:去重

li = [7,1,2,1,3,1,1,9]    # 定义列表
res = set(li)             # 将列表转换成集合【集合有自动去重的特效,所以可以实现去重效果】
li = list(res)            # 将去重的结果再转换成列表
print(li)


二、字符串

2.1 基础特性

支持序列类型的所有基础操作

  • 切片

  • 索引

  • 加法

  • 乘法

定义字符串:

  • str = "xxxx"

str = "abcdefghigklmn"    # 定义字符串

str1 = str[3:7]           # 切片
print(str1)

str2 = str[4]             # 索引
print(str2)

s1 = "hello "
s2 = "boys"
s = s1 + s2               # 加法
print(s)

print(s1 * 5)             # 乘法

查看数据类型

s = "abc"
print(type(s))         # 输出类型是str,表示是字符串

l = ["abc"]
print(type(l))         # 输出类型是list,表示是列表

t = ("abc",)          
print(type(t))         # 输出类型是tuple,表示是元组

d = {"name":"tom","age":18}
print(type(d))          # 输出类型是dict,表示是字典

2.2 字符串操作

1)访问字符串的子串

  • 通过切片

案例:打印字符串的倒数第二个字符

s = "abcdefghijklnm"
# 方法1
print(s[-2])

# 方法2
num = len(s)
print(s[num-2])

2)字符串替换

方法:

  • str.replace("目标","替换结果",[替换几个])

案例:将字符串中的c替换成1234

s = "abcdefghcjclnmc"
s = s.replace("c","1234")      # 将全部的c都替换成123
print(s)

s = s.replace("c","1234",2)    # 将前两个c替换成123
print(s)

3)字符串拼接

方法1:用 + 进行拼接

s1 = "aaa"
s2 = "bbb"
s3 = "ccc"
s = s1 + s2 + s3
print(s)

方法2:在输出的时候,用占位符进行拼接

s1 = "aaa"
s2 = "bbb"
s3 = "ccc"
print("%s%s%s"%(s1,s2,s3))

方法3:结合列表的和join方法进行拼接

s1 = "aaa"
s2 = "bbb"
s3 = "ccc"
s = "".join([s1,s2,s3])

方法4:格式化

s1 = "aaa"
s2 = "bbb"
s3 = "ccc"

print("{}{}{}".format(s1,s2,s3))

print("{str1}{str2}{str3}".format(str1=s1,str2=s2,str3=s3))

2.3 字符串方法

方法1:find

  • 返回指定的字符在字符串中的索引值

  • 如果字符串中没有这个字符,会返回-1

  • 默认情况下,会从最左侧开始查找,找到第一个字符后,会停止

  • 也可以指定从哪个字符开始查找

  • 格式:str.find("目标",[start])

案例:让用户随意输入一个字符串,字符串中必须有两个c,打印输出这两个字符的索引值

userInput = input("please enter something: ")
num1 = userInput.find("c")
num2 = userInput.find("c",num1+1)
print(num1,num2)

方法2:index

  • 返回指定的字符在字符串中的索引值

  • 如果字符串中没有这个字符,会抛出异常

  • 默认情况下,会从最左侧开始查找,找到第一个字符后,会停止

  • 也可以指定从哪个字符开始查找

  • 格式:str.index("目标",[start])

方法3:join方法

  • 用于将列表中的元素拼接字符串

  • 列表中的元素必须全部都是字符串类型,否则报错

  • 格式:"+".join(列表)

案例

l = ["1","a","qq","d"]
s = "".join(l)
print(s)

案例2:将列表l = ["a","qq","cd1",123, 3.14, "6"] 中的全部的元素转换为字符串类型【用两种方法实现】

li = ["a","qq","cd1",123, 3.14, "6"]
for num in range(len(li)):
    li[num]=str(li[num])
print(li)

案例3:将列表num = [1,3,5,7,9]中的内容输出成1+3+5+7+9

li=[1,3,5,7,9]
for num in range(len(li)):
    li[num]=str(li[num])

s="+".join(li)
print(s)

方法4:大小写转换

  • lower:将内容全部转换为小写

  • upper:将内容全部转换为大写

  • title:将自带一个字母转换为大写,其他全部都自动转换为小写

方法5:split方法

  • 作用:将字符串转换为列表

  • split方法可以指定用哪个字符对字符串进行切割

str = "i love linux and pyhon"
li1 = list(str)
print(li1)

li2 = str.split(" ")
print(li2)

li3 = str.split("o")
print(li3)

方法6:strip

  • 去除字符串两侧的空格

num=input("输入: ")
s=num.strip()
print(s)

案例:让用户输入任意内容,将用户输入的内容中的全部空格剔除掉【至少两种方法】

num=input("输入: ")
s=num.replace(" ","")
print(s)

方法7:判断

isinstance(变量名,变量类型)   # 如果变量和类型一致,则返回真;否则返回假

python程序开发第四课:数据结构(2)元组(3)字符串相关推荐

  1. Python程序开发——第三章 列表与元组

    目录 前言 一.列表 (一)列表的创建 (二)访问列表元素 (三)列表的增删改 (四)列表的遍历 (五)列表的排序 (六)列表的嵌套 二.元组 (一)元组的创建 (二)访问元组元素 (三)元组的连接组 ...

  2. Python程序开发——第四章 字典与集合

    目录 一.字典 (一)字典的创建 (二)字典的访问 (三)字典的增删改查 1.字典的添加 2.字典的删除 3.字典的修改 4.字典的查询 二.集合 (一)集合的分类 (二)集合的创建 (三)集合元素的 ...

  3. Python程序开发——第一章 基本python语法

    目录 前言 一.PyCharm (一)创建工程文件夹 (二)创建 python 文件并运行 二.IDLE 三.Python中的注释用法 四.变量的命名事项 五.基本输入和输出函数 (一)输入和输出 ( ...

  4. python编程课程价格-无锡Python程序开发课程

    大数据及机器学习必备语言,推荐9-13岁青少年学习. 帮助孩子掌握Python语言的主要核心基本语法.掌握Python面向对象开发的基本概念.掌握Python和Pygame进行2D游戏开发. 小码研究 ...

  5. python少儿编程 在线课程-宁波Python程序开发课程

    课程详情 大数据及机器学习必备语言,推荐9-13岁青少年学习. 帮助孩子掌握Python语言的主要核心基本语法.掌握Python面向对象开发的基本概念.掌握Python和Pygame进行2D游戏开发. ...

  6. 少儿编程python线上课程-北京Python程序开发课程

    课程详情 大数据及机器学习必备语言,推荐9-13岁青少年学习. 帮助孩子掌握Python语言的主要核心基本语法.掌握Python面向对象开发的基本概念.掌握Python和Pygame进行2D游戏开发. ...

  7. python 程序开发以及推荐机制设计

    参考文章:Python程序开发教程 https://wenku.baidu.com/view/d4efe6396d175f0e7cd184254b35eefdc8d315db.html?from=se ...

  8. vue小程序开发(四)首页 推荐

    vue小程序开发(四)首页 推荐 编写 首页-推荐 模块 推荐-最顶部模块 推荐-月份模块 月份模块标题样式 推荐-热门模块 基本布局 使用scroll-view改造容器 分页功能分析 实现头部固定 ...

  9. Python+微信小程序开发(四)页面跳转和获取用户信息

    上一篇已经介绍了如何搭建一个自己的静态页面,接下来则涉及到一些用户信息获取与跳转的操作. 一.页面跳转 首先新建一个跳转页面,按上篇的操作生成pages/redirect/redirect. 1.对标 ...

最新文章

  1. 不丢失精度的获取照片的Gps经纬度
  2. android美颜功能,Android
  3. 安装sql server 2016 always on配置dtc支持时遇到的问题
  4. select count
  5. “百亿补贴”真的能拯救一切吗?
  6. linux错误代码0x8008005,利用Windows10自带Linux学习(附带:0x8007019e错误解决方法)...
  7. 鸿蒙系统可以替代安卓吗,华为今天发布的鸿蒙系统,到底能不能替代安卓?
  8. [转载]大型网站架构演变和知识体系
  9. WebSocket能干啥
  10. ios 画带有箭头的线_ios纯色箭头与渐变色箭头的实现
  11. 字符编码在python中的处理_Python 字符编码处理总结
  12. 直面程序人生,始于当下,奔赴未来!
  13. nodejs 写入html,html2markdownnodejs也能写爬虫?记一次blog迁移至Ghost
  14. Rasa系列教程(二) -- Rasa NLU基础
  15. 杭电题目分类及简单概况
  16. Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...
  17. 【Unity自己写框架】FairyGUI UI框架(一)
  18. 用友U8C U8Cloud U8 cloud u8c V2.1 2.2 V2.3 V2.4 V2.5 V2.6 V2.7 V3.0 3.1 3.2文件下载
  19. 学3Dmax有前途吗? 3Dmax有哪些就业方向?
  20. 关于Unity3D的初步学习研究周记

热门文章

  1. Java实现 LeetCode 730 统计不同回文子字符串(动态规划)
  2. Java统计学生成绩
  3. 7-2 jmu-python-最佳身高 (10分) Python
  4. 平台联合卖会员、用户拆着挂闲鱼,巨头联名会员卡命宿何方?
  5. 在Google Play发布应用显示设备数量为0,处理办法
  6. 信奥中的数学:奇数与偶数
  7. 2008年度世界五百强500强企业
  8. 设计师必备特效生成器合集 2022背景快速制作指南
  9. 如何正确在word中打出 “°”和“°C”
  10. Matlab中统计矩阵中每个元素出现个数的方法-------tabulate()函数