零基础入门学习Python(13)-字符串

字符串和元组是非常相似的,一旦被定义就不能被轻易修改

非要修改可以用切片和连接符
在这里插入图片描述
这样旧的字符串str1还在哦,赋值之后才会覆盖哦,python的垃圾回收机制过会就会把没有标签指向的字符串剔除
在这里插入图片描述

字符串的内置方法

方法 含义
capitalize() 将字符串的第一个字符修改为大写,其他字符全部改为小写
casefold() 新字符串的所有字母变为小写
center(width, fillchar=’ ') 返回一个字符居中的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符居中,左右使用 fillchar 参数指定的字符填充)
count(sub[, start[, end]]) 返回 sub 在字符串中不重叠的出现次数,可选参数 start 和 end 用于指定起始和结束位置
endswith(suffix[, start[, end]]) 如果字符串是以 suffix 指定的子字符串为结尾,那么返回 True,否则返回 False;可选参数 start 和 end 用于指定起始和结束位置
expandtabs([tabsize=8]) 返回一个使用空格替换制表符的新字符串,如果没有指定 tabsize 参数,那么默认 1 个制表符 = 8 个空格
find(sub[, start[, end]]) 在字符串中查找 sub 子字符串,返回匹配的最低索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,返回 -1
join(iterable) 连接多个字符串并返回一个新字符串;以调用该方法的字符串作为分隔符,插入到 iterable 参数指定的每个字符串的中间;
encode(encoding=‘utf-8’, errors=‘strict’) 以 encoding 参数指定的编码格式对字符串进行编码。errors 参数指定编码出现错误时的解决方案:默认的 ‘strict’ 表示如果出错,将抛出一个 UnicodeEncodeError 的异常。其它可用的参数值是 ‘ignore’,‘replace’ 和 ‘xmlcharrefreplace’
format(*args, **kwargs) 返回一个格式化的新字符串;使用位置参数(args)和关键字参数(kwargs)进行替换
format_map(mapping) 返回一个格式化的新字符串;使用映射参数(mapping)进行替换
index(sub[, start[, end]]) 在字符串中查找 sub 子字符串,返回匹配的最低索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,抛出 ValueError 异常
isalnum() 如果字符串中至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
isalpha() 如果字符串中至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
isascii() 如果字符串中所有字符都是 ASCII 则返回 True,否则返回 False;ASCII 字符编码范围是 U+0000 ~ U+007F,空字符串也是 ASCII
isdecimal() 如果字符串中至少有一个字符并且所有字符都是十进制数字则返回 True,否则返回 False
isdigit() 如果字符串中至少有一个字符并且所有字符都是数字则返回 True,否则返回 False
isidentifier() 如果字符串是一个合法的 Python 标识符则返回 True,否则返回 False;调用 keyword.iskeyword(s) 可以检测字符串是否一个保留标识符(比如 “if” 或 “for”)
islower() 如果字符串中至少包含一个区分大小写的英文字母,并且这些字母都是小写,则返回 True,否则返回 False
isnumeric() 如果字符串中至少有一个字符并且所有字符都是数字则返回 True,否则返回 False
isprintable() 如果字符串是可以打印的内容则返回 True,否则返回 False
isspace() 如果字符串中至少有一个字符并且所有字符都是空格,则返回 True,否则返回 False
istitle() 如果字符串是标题化字符串(所有的单词都是以大写开始,其余字母均小写)则返回 True,否则返回 False
isupper() 如果字符串中至少包含一个区分大小写的英文字母,并且这些字母都是大写,则返回 True,否则返回 False
join(iterable) 连接多个字符串并返回一个新字符串;以调用该方法的字符串作为分隔符,插入到 iterable 参数指定的每个字符串的中间;
ljust(width) 返回一个字符左对齐的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符左对齐,右侧使用fillchar参数指定的字符填充)
lower() 返回一个所有英文字母都转换成小写后的新字符串
lstrip(chars=None) 返回一个去除左侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串
partition(sep) 在字符串中搜索 sep 参数指定的分隔符,如果找到,返回一个 3 元组 (‘在sep前面的部分’, ‘sep’, ‘在sep后面的部分’);如果未找到,则返回 (‘原字符串’, ‘’, ‘’)
removeprefix(prefix) 如果存在 prefix 参数指定的前缀子字符串,则返回一个将该前缀去除后的新字符串;如果不存在,则返回一个原字符串的拷贝
removesuffix(suffix) 如果存在 suffix 参数指定的后缀子字符串,则返回一个将该后缀去除后的新字符串;如果不存在,则返回一个原字符串的拷贝
replace(old, new, count=-1) 返回一个将所有 old 参数指定的子字符串替换为 new 的新字符串;count 参数指定替换的次数,默认是 -1,表示替换全部
rfind(sub[, start[, end]]) 在字符串中自右向左查找 sub 子字符串,返回匹配的最高索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,返回 -1
rindex(sub[, start[, end]]) 在字符串中自右向左查找 sub 子字符串,返回匹配的最高索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,抛出 ValueError 异常
rjust(width, fillchar=’ ') 返回一个字符右对齐的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符右对齐,左侧使用 fillchar 参数指定的字符填充)
rpartition(sep) 在字符串中自右向左搜索sep参数指定的分隔符,如果找到,返回一个 3 元组 (‘在sep前面的部分’, ‘sep’, ‘在sep后面的部分’);如果未找到,则返回 (’’, ‘’, ‘原字符串’)
rsplit(sep=None, maxsplit=-1) 将字符串自右向左进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit 参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制
rstrip(chars=None) 返回一个去除右侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串
split(sep=None, maxsplit=-1) 将字符串进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制
splitlines(keepends=False) 将字符串按行分割,并将结果以列表的形式返回;keepends 参数指定是否包含换行符,True 是包含,False 是不包含
startswith(prefix[, start[, end]]) 如果存在 prefix 参数指定的前缀子字符串,则返回 True,否则返回 False;可选参数 start 和 end 用于指定起始和结束位置;prefix 参数允许以元组的形式提供多个子字符串
strip(chars=None) 返回一个去除左右两侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串
swapcase() 返回一个大小写字母翻转的新字符串
title() 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。
translate(table) 返回一个根据 table 参数转换后的新字符串;table 参数应该提供一个转换规则(可以由 str.maketrans(‘a’, ‘b’) 进行定制,例如 “FishC”.translate(str.maketrans(“FC”, “15”)) -> ‘1ish5’)
upper() 返回一个所有英文字母都转换成大写后的新字符串
zfill(width) 返回一个左侧用 0 填充的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符右对齐,左侧使用 0 进行填充)

capitalize():将字符串的第一个字符修改为大写,其他字符全部改为小写

在这里插入图片描述

casefold() :新字符串的所有字母变为小写

在这里插入图片描述

center(width, fillchar=’ ') : 返回一个字符居中的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符居中,左右使用 fillchar 参数指定的字符填充)

在这里插入图片描述

count(sub[, start[, end]]): 返回 sub 在字符串中不重叠的出现次数,可选参数 start 和 end 用于指定起始和结束位置

在这里插入图片描述

endswith(suffix[, start[, end]]): 如果字符串是以 suffix 指定的子字符串为结尾,那么返回 True,否则返回 False;可选参数 start 和 end 用于指定起始和结束位置

在这里插入图片描述

expandtabs([tabsize=8]) :返回一个使用空格替换制表符的新字符串,如果没有指定 tabsize 参数,那么默认 1 个制表符 = 8 个空格

在这里插入图片描述

find(sub[, start[, end]]) :在字符串中查找 sub 子字符串,返回匹配的最低索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,返回 -1

在这里插入图片描述

index(sub[, start[, end]]) :在字符串中查找 sub 子字符串,返回匹配的最低索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,抛出 ValueError 异常

join(iterable) :连接多个字符串并返回一个新字符串;以调用该方法的字符串作为分隔符,插入到 iterable 参数指定的每个字符串的中间;

在这里插入图片描述
join()方法代替加号来拼接字符串
在这里插入图片描述

istitle():如果字符串是标题化字符串(所有的单词都是以大写开始,其余字母均小写)则返回 True,否则返回 False

在这里插入图片描述

lstrip(chars=None):返回一个去除左侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串

rstrip(chars=None):返回一个去除右侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串

在这里插入图片描述

partition(sep) 在字符串中搜索 sep 参数指定的分隔符,如果找到,返回一个 3 元组 (‘在sep前面的部分’, ‘sep’, ‘在sep后面的部分’);如果未找到,则返回 (‘原字符串’, ‘’, ‘’)在这里插入图片描述

replace(old, new, count=-1) 返回一个将所有 old 参数指定的子字符串替换为 new 的新字符串;count 参数指定替换的次数,默认是 -1,表示替换全部

在这里插入图片描述

split(sep=None, maxsplit=-1) 将字符串进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制

在这里插入图片描述

strip(chars=None) 返回一个去除左右两侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串

在这里插入图片描述
在这里插入图片描述

swapcase() 返回一个大小写字母翻转的新字符串

在这里插入图片描述

translate(table) 返回一个根据 table 参数转换后的新字符串;table 参数应该提供一个转换规则(可以由 str.maketrans(‘a’, ‘b’) 进行定制,例如 “FishC”.translate(str.maketrans(“FC”, “15”)) -> ‘1ish5’)

在这里插入图片描述

Task

0. 还记得如何定义一个跨越多行的字符串吗(请至少写出两种实现的方法)?

【1】三重引号字符串
【2】转义字符\n
在这里插入图片描述
【3】

>>> str3 = ('待卿长发及腰,我必凯旋回朝。'
'昔日纵马任逍遥,俱是少年英豪。'
'东都霞色好,西湖烟波渺。'
'执枪血战八方,誓守山河多娇。'
'应有得胜归来日,与卿共度良宵。'
'盼携手终老,愿与子同袍。')

1. 三引号字符串通常我们用于做什么使用?
三引号字符串不赋值的情况下,通常当作跨行注释使用

2. file1 = open(‘C:\windows\temp\readme.txt’, ‘r’) 表示以只读方式打开“C:\windows\temp\readme.txt”这个文本文件,但事实上这个语句会报错,知道为什么吗?你会如何修改?
“\t”和“\r”分别表示“横向制表符(TAB)”和“回车符”

>>> file1 = open(r'C:\windows\temp\readme.txt', 'r')

3. 有字符串:str1 = ‘<a href=“http://www.fishc.com/dvd” target="_blank">鱼C资源打包’,请问如何提取出子字符串:'www.fishc.com’

>>> str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>'
>>> str1[16:29]

在这里插入图片描述

4. 如果使用负数作为索引值进行分片操作,按照第三题的要求你能够正确目测出结果吗?

>>> str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>'
>>> str1[-45:-32]

在这里插入图片描述

5. 还是第三题那个字符串,请问下边语句会显示什么内容?

>>> str1[20:-36]

‘fishc’

6. 据说只有智商高于150的鱼油才能解开这个字符串(还原为有意义的字符串):str1 = 'i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99’
在这里插入图片描述

(不太懂哎,???)

7.请写一个密码安全性检查的代码代码:check.py(在思考中。。。)

# 密码安全性检查代码
#
# 低级密码要求:
#   1. 密码由单纯的数字或字母组成
#   2. 密码长度小于等于8位
#
# 中级密码要求:
#   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
#   2. 密码长度不能低于8位
#
# 高级密码要求:
#   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
#   2. 密码只能由字母开头
#   3. 密码长度不能低于16位

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44520665/article/details/113440597