栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

学习笔记:Python之字符串

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习笔记:Python之字符串

字符串
  • 字符串介绍
  • 字符串的格式化输出方式
  • 字符串的常用操作
  • 字符串常用的函数
    • 获取长度和次数
    • 字符串的大小写转换
    • 字符串的填充
    • 字符串的查找
    • 字符串的提取
    • 字符串的切割和合并
    • 字符串的替换
    • 字符串内容的判断
    • 字符串的编码和解码
    • ASCII码的转换

字符串介绍

在Python中,字符串的定义是以单引号、双引号或者三个单引号、三个双引号包裹起来的文本

  • 一个引号和三个引号的区别在于:三个引号可以输出多行数据,输出的时候也会按照多行的输入格式进行输出

  • 在定义字符串中,单引号中只能使用双引号,双引号中只能使用单引号,若想使用需要用到转义字符

  • 转义字符的作用是让符号失去其原本的意义

  • 而在字符串前面添加r,则可以让原本的转义字符失去其作用,在定义文件路径时经常使用

  • 在字符串前面添加f,则可以对字符串进行格式化输出

  • 在字符串前面添加b,则是把字符串的类型转为bytes类型

  • 在字符串前面添加u,这种方法常用于中文前面,表示对后面的内容以unicode的形式进行编码

代码示例:

# 创建字符串
s1 = '无法无天'
s2 = "打游戏"
s3 = '''
	床前明月光,
	疑似地上霜。
'''
s4 = """
	举头望明月,
	低头思故乡。
"""
print(s1)
print(s2)
print(s3)
print(s4)
# 可以看出这三者定义字符串的区别
s1 = '小明喜欢"打游戏"'
print(s1)
# 转义字符
s2 = "我喜欢"看电视""
s3 = '你真'好看''
print(s2)
print(s3)

# r
s4 = r'hello n world'
s5 = 'hello n world'
print(s4)
print(s5)
# 可以看出r字符的作用

# f
name = '张三'
age = 20
info = f'我叫{name},今年{age}岁'
print(info)
# 通过f字符,进行格式化输出

# b
s6 = 'hello'
s7 = b'hello'
print(type(s6),type(s7))
# 两个变量的数据类型并不相同

# u
s8 = '我爱中国'
s9 = u'我爱中国'
print(s8)
print(s9)
字符串的格式化输出方式
  • 上面有说到一个f字符,可以进行格式化输出
  • 但Python不止这一种格式化输出的方式
  • 除了f字符可以进行格式化输出之外,还有两种格式化输出的方式
  • 一种是通过%,还有一种是通过format()方法
  • 不过相对而言,还是f字符的使用较多
# %: 占位符
# %d:表示整数
# %s:表示字符串
# %f:表示小数
# %.2f:表示输出保留两位小数,具体保留多少可以自己控制
name = '张三'
money = 46483.12963
# 输出一
print(f'我叫{name},我有{money}块钱')
# 输出二
print('我叫%s,我有%.2f块钱'%(name,money))
# 输出三
print('我叫{},我有{}块钱'.format(name,money))

# 如果需要控制小数点的位数,可以这样
# 通过函数控制传入的参数
# 输出一
print(f'我叫{name},我有{round(money,2)}块钱')
# 输出三
print('我叫{},我有{}块钱'.format(name,round(money,2)))
字符串的常用操作
  • 和字典、列表等一样,字符串一样有访问、切片、遍历、拼接、重复等常用操作
s1 = 'hey boy,hello world!'
# 字符串的访问同样是通过下标来对其中某个字符进行访问
print(s1[2])

# 遍历字符串
# 方法一
for i in s1:
	print(i)
# 方法二
for j in range(len(s1)):
	print(s1[j])
# 方法三
for index,s in enumerate(s1):
	print(index,s)

# 切片
# [起始位置 : 结束位置 : 步长]
# 切片的操作方法都是统一的
print(s1[:5])
print(s1[::2])
print(s1[2:6])

# 成员运算符--in  not in
print('abc' in s1)
print('boy' not in s1)

# 拼接
s2 = 'oh'
s3 = 'my god'
s4 = s2 + s3
print(s4)
# + 只有字符串进行拼接是,能使用 + 
# 重复输出
print(s2 * 5)
字符串常用的函数

字符串中常用的功能函数,相对列表、字典等是比较多的

获取长度和次数
  • 获取字符串长度:len()
  • 获取某个字符在字符串中出现的次数:count()
s1 = 'asdfrtyjnbvcxswertyuikjhgfrtyujhgfdcv'
# 计算s1的长度
print(len(s1))
# 统计字符'y'出现的次数
print(count('y'))
字符串的大小写转换
  • upper()–小写转大写
  • lower()–大写转小写
  • swapecase()–大写转小写,小写转大写
  • title()–单词的首字母大写
s1 = 'i love you'
print(s1.upper())
s2 = 'HELLO WORLD'
print(s2.lower())
s3 = 'Father And Monther'
print(s3.swapecase())
s4 = 'please, will you marry me'
print(s4.title())
字符串的填充
  • 字符串的填充效果分为:
  • 左填充ljust()
  • 右填充rjust()
  • 0填充zfill()
  • 左右填充center()
s = '我喜欢玩游戏'
# ljust()
# 使用'-'符号,将字符串s填充至长度为50
# ljust()--是讲字符串s放在左边进行填充
print(s.ljust(50,'-')

# rjust()
# 使用'-'符号,将字符串s填充至长度为50
# rjust()--是讲字符串s放在右边进行填充
print(s.rjust(50,'-')

# zfill()
# 从字符串s的最右边,以数字0进行填充,至长度为50
print(s.zfill(50))

# center()
# 使用字符'*'将字符串s填充至长度为50
# 填充效果为左右两边均有字符'*'
print(s.center(50,'*'))
字符串的查找
  • 字符串的查找函数,一般是找到需要查找字符出现的第一个位置
  • 有find()、rfind()、index()、max()、min()
s = '14sdfgewrtynbv524863ertjnbv'
# find()
# 查找字符出现的第一个位置,如果没找到则返回-1
print(s.find('4'))
print(s.find('z'))
# 在指定区域内查找字符
# find(要查找的字符,开始位置,结束位置)
print(s.find('4',5,20))

# rfind()
# 查找字符出现的最后一次的位置,如果没找到则返回-1
print(s.rfind('n'))
print(s.rfind('z'))

# index()
# 功能与find()函数类似,不过找不到对应的字符则会报错
print(s.find('4'))
print(s.find('z'))

# max()、min()
# 是根据字符的ASCII码进行比较,找到ASCII码最大或者最小的结果
print(min(s))
print(max(s))

ASCII码
ASCII码的对照表可以查看这个网址

https://c.runoob.com/front-end/6318/

字符串的提取

字符串提取的方法,可以理解成对字符串两边的内容进行去除一些无用的信息
比如去除空格,*、+等符号

  • 具体的方法有:strip()、lstrip()、rstrip()
s1 = '    i am fine    '
s2 = '****** i am fine*********'
# strip()
# 去除字符串两边指定的内容,默认为空格
print(s2.strip())
print(s1.strip('*'))

# lstrip()
# 去除字符串左边的指定内容
print(s2.lstrip('*'))

# rstrip()
# 去除字符串右边的指定内容
print(s2.rstrip('*'))
字符串的切割和合并
  • 由于字符串定义的方法有一行定义和多行的定义,字符串的切割方法也有一行和多行的切割方法
  • 字符串切割:split()、splitlines()
  • 字符串合并:join()
# strip()
s1 = 'this is a nice sample????'
# 将字符串按照指定方法进行切割,默认是空格
print(s1.split(" "))
print(s1.split("i"))

# splitlines()
# 将字符串按行进行切割
s2 = '''床前明月光,
疑似地上霜。
举头望明月,
低头思故乡。
'''
print(s2.splitlines())

# join()
# 以指定内容进行拼接字符串
l1 = ['i', 'love', 'you']
print('-'.join(l1))
# 字符串的拼接不仅限于列表,拼接方法也不仅限于'-'
字符串的替换
  • 字符串内容的替换常用方法是:replace(原内容,要替换的内容,替换次数)
  • 替换次数参数,可不填,默认为全部替换
# replace()
s = '你这个东西真的好没有,太垃圾了,简直比垃圾还垃圾'
print(s.replace('垃圾','**')
print(s.replace('垃圾','**',2)
字符串内容的判断
  • 字符串内容的判断方法有大小写判断、首字母大写判断和字符串组成判断
# isupper()--判断是否全是大写
print('ASFGFDR'.isupper())
print('asdfGHJee'.isupper())

# islower()--判断是否全是小写
print('sasgfdrfdc'.islower())
print('sfdGHJdfg'.islower())

# istitle()--判断单词首字母是否大写
print('i love you'.istitle())
print('I Love You'.istitle())

# isdigit()--检查字符串是否只由数字组成
print('4145256255'.isdigit())
print('asd4452'.isdigit())

# isalpha()--判断字符串是否只由字母和文字组成
print('as你好d552ASD'.isalpha())
print('你好dfgfd'.isalpha())

# 判断字符串的前缀和后缀内容
# startwith()--判断前缀
s = 'Hello World'
print(s.startwith('Hello'))
# endwith()--判断后缀
print(s.endwith('World'))
字符串的编码和解码
  • 字符串的编码格式有多种:utf-8,gbk等都是不同的编码格式,编码结果都不相同
  • encode():编码方式,可以通过传入编码格式的参数,控制编码方法
  • decode():解码方式
# encode()
s1 = '世界,你好!'
print(s1.encode('utf-8'))
print(s1.encode('gbk'))
s2 = s1.encode('utf-8')
print(s2.decode())
ASCII码的转换
  • chr():将ASCII码的值转为字符串内容
  • ord():将字符串内容转为ASCII码
# chr() 将ASCII的值转换为对应的符号
print(chr(65))  # A 
print(chr(43))  # +

# ord() 获取字符对应的ASCII的值
print(ord("Z"))  # 90
print(ord("*"))  # 42

ASCII码的查看,可以参考以下这个网址
https://c.runoob.com/front-end/6318/

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998480.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号