Python零基础入门:字符串使用详解(常用方法及使用案例)

士别三日wyx 2021-10-28 03:54:38
Python 入门 字符串 基础 零基

「作者主页」:士别三日wyx
  此文章已录入专栏《Python零基础入门》
  人生苦短,我用 Python —— Life is short,you need Python

在这里插入图片描述


字符串是Python中 「最常用」的一种数据类型,用来保存一段 「文本」信息,英文用 String 表示。

1、字符串的定义

Python中字符串有「两种」定义方式:

  1. 单引号字符串
  2. 双引号字符串

需要注意的是,单引号和双引号只是字符串支持的两种定义方式,两者定义的内容「没有区别」

1)单引号字符串

        「单引号字符串」顾名思义,就是使用单引号包裹的字符串;定义单引号字符串时需要使用单引号将文本「内容」包裹起来。

案例1:定义一个单引号字符串

# 定义单引号字符串
str1 = '单引号字符串'
# 打印字符串内容
print(str1)

执行结果:
在这里插入图片描述

2)双引号字符串

        「双引号字符串」顾名思义,就是使用双引号包裹的字符串;定义双引号字符串时需要使用双引号将文本「内容」包裹起来。

案例2:定义一个双引号字符串

# 定义双引号字符串
str2 = "双引号字符串"
# 打印字符串内容
print(str2)

执行结果:
在这里插入图片描述

3)多行字符串

        「多行字符串」顾名思义,就是包含多行文本内容的「一个」字符串;定义多行字符串时,需要使用「三个双引号」或者「三个单引号」将多行文本内容包裹起来。多行字符串可以保留文本的换行、缩进等格式,常用来定义「特殊格式」的文本内容,比如一首诗、一段歌词。

案例3:打印一首诗

# 定义单引号多行字符串
str1 = ''' 昨夜吴中雪,子猷佳兴发。万里浮云卷碧山, 青天中道流孤月。孤月沧浪河汉清,北斗错落长庚明。 怀余对酒夜霜白,玉床金井水峥嵘。人生飘忽百年内, 且须酣畅万古情。 ——李白《答王十二寒夜独酌有怀》 '''
# 打印字符串内容
print(str1)

执行结果:
在这里插入图片描述
案例四:打印一段歌词

# 定义双引号多行字符串
str2 = """ 《咸鱼》 我没有任何天分 我却有梦的天真 我是傻不是蠢 我将会证明用我的一生 我如果有梦有没有错 错过才会更加明白明白坚持是什么 我不好也不坏不特别出众我只是敢不同 我的人生就是一错再错错完了再从头 """
# 打印字符串内容
print(str2)

执行结果:
在这里插入图片描述

4)打印字符串

        Python中的变量可以直接使用 print()「打印」 出来,而不是必须先定义变量「赋值」才能使用;

案例5:打印文本内容

# 直接打印文本内容
print('hello word')
print("hello word")

执行结果:
在这里插入图片描述

2、字符串拼接

        多个字符串之间可以使用 + 运算符「拼接」 成一个字符串;需要注意的是,参与拼接的「源字符串」 本身不会改变,拼接后会生成一个新的字符串。

案例6:将变量 a 和变量 b 拼接成变量 c

a = 'hello'
b = 'world'
c = a + b
print(c)

执行结果:
在这里插入图片描述
案例7:在变量 a、变量 b 之间添加一个空格

a = 'hello'
b = 'world'
c = a + ' ' + b
print(c)

执行结果:
在这里插入图片描述

案例8:字符串和数字拼接

a = 'hello'
b = 1 # 数字型变量
c = a + b
print(c)

执行结果:
在这里插入图片描述
需要注意的是,字符串只能和字符串进行拼接,和「其他类型」的变量拼接时,会报错。

3、检查字符串

        如果需要「检查」字符串中是否存在特定内容或字符,我们可以使用 innot in 关键字。其中 in 关键字用来检测是否包含指定内容,如果包含则返回 True ,不包含则返回 False ;not in 则相反,如果不包含则返回 True ,包含则返回 False

案例9:检查一段文字中是否包含指定内容

str1 = 'hello world'
result = 'world' in str1
print(result)

执行结果:
在这里插入图片描述
案例10:检查一段文字中是否不包含指定内容

str1 = 'hello world'
result = 'world' not in str1
print(result)

执行结果:
在这里插入图片描述

4、字符串是数组

        严格意义上来说,Python中并没有字符数据类型,「单个字符」就是就是长度为 1 的字符串,包含「多个字符」的“字符串”是一个字节数组,平时为了方便,我们还是将其叫做字符串类型变量。
        什么意思呢?就比如a = 's' ,这个变量 a 只有一个字符,这是真正意义上的「字符串」;而 b = 'sss',这个变量 b 实际上是一个包含了多个字符串的「字符数组」

1)访问字符串的元素

        字符数组中的每一个字符串被称为一个「元素」,即 字符 = 元素;比如 a = 'abc',这个变量 a,字符a是一个元素,字符b是一个元素,字符c也是一个元素。
        使用「方括号」访问字符串的元素,方括号中填写需要访问的元素的「索引」,索引可以简单理解为元素在数组中的「位置」,从左到右依次是0,1,2…,需要注意的是,索引是从 0 开始的。

案例11:获取第一个位置的元素

str1 = 'hello world'
s = str1[0]
print(s)

执行结果:
在这里插入图片描述

2)截取字符串的元素

        可以同时访问多个元素,而不是一次只能访问一个元素,准确的说是「访问」一个指定「范围」内的元素,需要指定「开始」索引和「结束」索引,中间使用冒号分隔,可以简单理解为截取字符串中的元素,截取的范围包含开始索引,但不包含结束索引,即 [ 开始索引 :结束索引 )

案例12:截取位置1到位置4的元素

str1 = 'hello world'
s = str1[1:4]
print(s)

执行结果:
在这里插入图片描述
负的索引

需要注意的是,访问指定范围的元素时,可以指定「负数」索引,负的索引从字符数组最右边开始依次是1,2,3…,也就是从「末尾」开始截取。

案例13:截取倒数第6个位置至倒数第2个位置的元素

str1 = 'hello world'
s = str1[-6: -2]
print(s)

执行结果:
在这里插入图片描述

5、常用方法

字符串的所有方法都会返回一个「新值」,原来的字符串则不会被「改变」

len() 获取字符串长度

用来获取字符串的「长度」,需要传递一个「变量」参数,返回字符串的长度(int 类型)

案例14:名字有几个字符

name = 'zhangsan'
le = len(name)
print(le)

执行结果:
在这里插入图片描述

strip() 删除开头和结尾的空格

用来「删除」开头和结尾的「空白」字符,返回一个删除后的字符串类型的变量。

案例15:删除两侧的空格

text = ' Hello Python '
t = text.strip()
print(t)

执行结果:
在这里插入图片描述

lower() 全部小写

用来将字符串转换为「小写」,返回一个全部小写的字符串类型的变量。

案例16:将姓名全部小写

name = 'ZhangSan'
s = name.lower()
print(s)

执行结果:
在这里插入图片描述

upper() 全部大写

用来将字符串转换为「大写」,返回一个全部大写的字符串类型的变量。

案例17:将名字全部大写

name = 'China'
s = name.upper()
print(s)

执行结果:
在这里插入图片描述

replace() 替换字符串

用来「替换」字符串

  • 参数1:需要被替换的内容(字符串类型)
  • 参数2:替换后的内容(字符串类型)
  • 返回值:替换后的字符串(字符串类型)

案例18:将“姓名”替换为“张三”

name = '我叫姓名'
s = name.replace('姓名', '张三')
print(s)

执行结果:
在这里插入图片描述

split() 按照分隔符转换数组

将字符串按照指定「分隔符」转换为「数组」

  • 参数1:分隔符(字符串类型)
  • 返回值:转换后的数组

案例19:按照逗号分隔成数组

names = 'ZhangSan,liSi,WangWu,ZhaoLiu'
arr = names.split(',')
print(arr)

执行结果:
在这里插入图片描述

format() 格式化

用来「格式化」变量,并放在占位符{}所在的字符串中。前面我们提到过字符串和其他类型的变量不能使用加号拼接,而format()可以实现字符串和其他数据类型的拼接。

案例20:字符串拼接数字

age = 18
text = '我今年{}岁'
t = text.format(age)
print(t)

执行结果:
在这里插入图片描述
多个参数

format() 可以接收多个参数,并将每个参数按照「顺序」顺序拼接到「对应」的占位符{}中;简单来说就是传递多个参数,同时提供多个占位符,参数和占位符按照从左到右的顺序一一对应。

案例21:成员名单

names = ['张三', '李四', '王五', '赵六']
text = '本期获奖名单是:{},{},{},{}'
t = text.format(names[0], names[1], names[2], names[3])
print(t)

执行结果:
在这里插入图片描述
占位符索引

format() 在拼接多个变量时,默认按照从左到右的顺序拼接,如果想「自定义」自定义拼接的顺序(位置),可以使用占位符的索引{1}来确保参数拼接到正确的位置。

案例22:个人信息

name = '张三'
age = 18
money = 100.0
text = '我叫{1},今年{0}岁,工资是{2}元'
t = text.format(age, name, money)
print(t)

执行结果:
在这里插入图片描述

capitalize() 首字母大写

将字符串的「首字母」转换为大写,并返回修改后的字符串。

案例23:姓首字母大写

name = 'zhang'
s = name.capitalize()
print(s)

执行结果:
在这里插入图片描述

count() 出现次数

用来获取指定内容在字符串中出现的「次数」

  • 参数1:必需,字符串,需要检查的内容
  • 参数2:可选,整数,开始的位置,默认是0
  • 参数3:可选,整数,结束的位置,默认是结尾
  • 返回值:整数,出现的次数

案例24:统计大爷出现的次数

text = '大爷带着二大爷到三大爷家说四大爷别五大爷骗到六大爷家偷七大爷放在八大爷柜子里九大爷给十大爷的一千元'
n = text.count('大爷')
print(n)

执行结果:
在这里插入图片描述

find() 首次出现的位置

用来在字符串中「查找」指定内容,如果找到则返回指定内容在字符串中「首次」出现的位置,找不到则返回 -1

案例25:大爷首次出现的位置

text = '大爷带着二大爷到三大爷家说四大爷别五大爷骗到六大爷家偷七大爷放在八大爷柜子里九大爷给十大爷的一千元'
n = text.find('大爷')
print(n)

执行结果:
在这里插入图片描述

isalnum() 纯字母数字

检查指定字符串中是否只包含「数字」「字母」,即字母(a-z)和数字(0-9),如果是纯字母数字则返回 True,否则返回 False。

案例26:检查文本中是否只包含数字和字母

text = 'abc123'
print(text.isalnum())

执行结果:
在这里插入图片描述

isalpha() 纯字母

检查指定字符串中是否只包含「字母」,即字母(a-z),如果是纯字母则返回 True,否则返回 False。

案例27:检查文本是否是纯字母

text = 'abc'
print(text.isalpha())

执行结果:
在这里插入图片描述

isdigit() 纯数字

检查指定字符串中是否只包含「数字」,即数字(0-9),如果是纯数字则返回 True,否则返回 False。需要注意的是,指数也算作数字。

案例28:检查文本是否是纯数字

text = '123'
print(text.isdigit())

执行结果:
在这里插入图片描述

islower() 是否全部小写

检查指定字符串中的「字母」是否全部都是「小写」,如果全部小写则返回 True,否则返回 False。需要注意的是,islower()「不检查」数字、符号和空格,仅检查字母字符。

案例29:检查文本是否全部小写

text1 = ' Hello World! '
text2 = ' hello world! '
print(text1.islower())
print(text2.islower())

执行结果:
在这里插入图片描述

isupper() 是否全部大写

检查指定字符串的「字母」是否全部都是「大写」,如果全部大写则返回 True,否则返回 False。需要注意的是,isupper()「不检查」数字、符号和空格,仅检查字母字符。

案例30:检查文本是否全部大写

text1 = ' HELLO 123! '
text2 = ' hello 123! '
print(text1.isupper())
print(text2.isupper())

执行结果:
在这里插入图片描述

join() 数组转字符串

将可迭代对象中所「元素」有按照指定「分隔符」拼接为一个「字符串」,可迭代对象指的是列表、元组、字典等。需要注意的是,转换「字典」时拼接的是「键」而不是值。

案例31:将列表中的元素按照逗号拼接成字符串

arr = ['张三', '李四', '王五', '赵六']
print(','.join(arr))

执行结果:
在这里插入图片描述
案例32:将字典中的元素按照 - 拼接成字符串

di = {
'name': '张三', 'age': 18}
print('-'.join(di))

执行结果:
在这里插入图片描述

rfind() 最后一次出现的位置

查找指定内容在字符串中「最后」一次出现的位置。

  • 参数1:必需。指定检查的内容
  • 参数2:可选。开始检查的位置。默认是0
  • 参数3:可选。结束检查的位置。默认是末尾
  • 返回值:整数。最后一次出现的索引位置

案例33:大爷最后一次出现的位置

text = '大爷带着二大爷到三大爷家说四大爷别五大爷骗到六大爷家偷七大爷放在八大爷柜子里九大爷给十大爷的一千元'
print(text.rfind('大爷'))

执行结果:
在这里插入图片描述

startswith() 是否以指定字符开头

检查字符串是否以指定字符「开头」,如果以指定字符开头则返回 True,否则返回 False。

案例34:是否以大爷开头

text = '大爷带着二大爷到三大爷家说四大爷别五大爷骗到六大爷家偷七大爷放在八大爷柜子里九大爷给十大爷的一千元'
print(text.startswith('大爷'))

执行结果:
在这里插入图片描述

版权声明
本文为[士别三日wyx]所创,转载请带上原文链接,感谢
https://blog.csdn.net/wangyuxiang946/article/details/120911378

  1. AI python课和 python课都是198 这两个课是同一个课程内容吗?有什么区别和相似点?
  2. python的__new__()疑问
  3. Python代码阅读(第24篇):根据筛选函数将列表元素分成两组
  4. python怎么实现动态障碍物按固定路径行走
  5. Python代码阅读(第24篇):根据筛选函数将列表元素分成两组
  6. Python题目,希望帮我解答一下辛苦
  7. python +selenium 如何获取下拉列表,默认选中值
  8. 有个pb文件做好的模型,对此模型的操作想用python封装成api,怎么做?
  9. 请问,mac的Pycharm中新建项目时候的Base interpreter选项里有两个Python3.8,该选哪个?
  10. python如何读取指定文件名的excel并分别汇总
  11. 如何写利用python将fastq文件转换成fasta文件的脚本
  12. python小工具
  13. 新猿0基础python教程 如何写好接口文档
  14. 请问我哪里错了呀,数值计算,python运算符号出错,但是我看不出来
  15. Python游戏开发,Pygame模块,Python从零开始带大家实现一个魔塔小游戏(2)
  16. Python爬虫实战,requests模块,Python实现抓取王者荣耀全套皮肤
  17. Python游戏开发,Pygame模块,Python从零开始带大家实现一个魔塔小游戏(3)
  18. 大神们这个问题用python怎么解决啊
  19. 简单理解python装饰器
  20. 货物托运收费问题用python 求解 一直输出错误
  21. 使用 Python 实现的卷积神经网络初学者指南
  22. 为什么Python中调用模块传递列表报错,而直接模块内调用列表就不会报错。
  23. 可视化 Python 打包 exe,这个神器绝了!
  24. 如此高效!数据科学中这4款 Python 神器真的很棒!
  25. 用 Python 开发交互式 Web 应用,So Easy
  26. Python多分类问题pr曲线绘制(含代码)
  27. 80 行 Python 代码搞定全国区划代码
  28. 有包含一阶贝塞尔函数的Python库吗
  29. Python输出乘法口诀表中的2d是什么意思
  30. Python 爬虫goole图片 使用selenium+chromedriver 出错DevToolsActivePort file doesn't exist
  31. python怎么做,我不会做,别走,留下代码!
  32. (数据科学学习手札129)geopandas 0.10版本重要新特性一览
  33. MySQL备份之xtrabackup(Python)
  34. (数据科学学习手札129)geopandas 0.10版本重要新特性一览
  35. Python:枚举列表中所有元素的可能组合
  36. 编写python 程序 人的心跳频率与温度的关系 计算人的累记心跳次数
  37. python相关,请问这张图里代码c for c in coinValueList if c<=change是什么意思
  38. Python中的分段函数问题求解
  39. Python中的递归求年龄问题
  40. python如何求出多个股票的移动均价
  41. 保姆级教程!将 Vim 打造一个 IDE (Python 篇)
  42. python给定两个函数和定义域,判定两个函数是否构造为复合函数。
  43. 求 python3.8 有条件的递增方法
  44. 如何让python的//运算得到一个小数点不是0的结果
  45. 关于#matlab# #算法# #python#的问题:校园导航制作
  46. python的字典编程练习。!
  47. Python类的实例化应用实现输入打印
  48. python的字典编程练习,!
  49. 调试来自于逐飞的MM32F3277移植有MicroPython开发板
  50. 求 python3.8 有条件的递增递减算法
  51. 如何才能在python中实现动态宽度对齐输出
  52. 14道Python基础练习题(附答案)
  53. python写一个正则,匹配内容以“关于”,(代转)开头的那句话,要怎么写正则?
  54. 来个Python能做的救救孩子.
  55. Python爬虫,写完程序获取不到结果,
  56. python for循环和while循环打印九九乘法表
  57. Python异常
  58. Python请设计一能产生某月份月历的程序,能提示用 户输入某月份第1天是星期几,并将该月份的月历打印出来,求
  59. Python入门语法(简洁不啰嗦)
  60. Python入门与各种系统安装部署应用