字符串
1)定义 :
字符串是 Python 中最常用的数据类型。我们可以使用引号( ’ 或 " )来创建字符串。
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
2)取值
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python 访问子字符串,可以使用方括号 [ ] 来截取字符串,字符串的截取的语法格式如下:
变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。
3)操作:len() type() max() min()
编码:图灵 0 1
8位 =1byte 256
16位 =2byte 65536 GB2312-->GBK
24位 =3byte 16777216 utf-8
如: 我——20105
name1 = "刘老根和药匣子.jpg"
print(name1.isalpha())
print(name1.isdigit())
#字符串是否由字母和数字组成
print(name1.isalnum())
print(name1.isupper())
print(name1.islower())
print(name1.isspace())
print(name1.lower())
print(name1.upper())
# index(str, beg=0, end=len(string))
# 跟find()方法一样,只不过如果str不在字符串中会报一个异常。
print(name1.index("老根",1,3))
encode(encoding=‘UTF-8’,errors=‘strict’)
以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常
除非 errors 指定的是’ignore’或者’replace’
bs = name1.encode(encoding="utf-8")
print(bs)
print(bs.decode(encoding="gbk")) #报错了!!??
print(",".join(name1))
#join()方法,字符串的拼接方法
name2 = ",".join(name1)
print(name2)
print(name2.split("-")) #列表
replace()替换的方式,可以将空格替换成空,可以替换所有的空格
使用语法:
语法:S.replace(old, new[, count])
需要修改的字符串.replace(需要替换的字符, 替换后的字符[, 替换的次数])
print(name1.replace("刘老根","大辣椒",1))
# count(str, beg= 0,end=len(string))
#返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
print(name1.count("刘老根",1))
strip([chars])
在字符串上执行 lstrip()和 rstrip()
strip()方法,去除字符串开头或者结尾的空格
lstrip()方法,去除字符串开头的空格
rstrip()方法,去除字符串结尾的空格
print(name1.strip('c'))
print(name1.lstrip())
print(name1.rstrip())
# 格式化
print(name1.format())
# find(str, beg=0, end=len(string))
# 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内
# 如果包含返回开始的索引值,否则返回-1
print(name1.find("国"))
print(name1.index("老"))
print(name1.endswith(".jpg"))
print(name1.startswith("刘老根"))
name1 = "刘老根和药匣子"
# rjust(width,[, fillchar])
# 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
print(name1.rjust(15,"*"))
# ljust(width[, fillchar])
#返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
print(name1.ljust(2,"."))
四。tushare库 获取数据
五。题目
str1 = “abcdefghjklertg”
str2 = “abefghjkltrtg”
#找最大公共子串
def find_lcsubstr(s1, s2):
m = [[0 for i in range(len(s2) + 1)] for j in range(len(s1) + 1)]
#print("m",m)# 生成0矩阵,为方便后续计算,比字符串长度多了一列
mmax = 0 # 最长匹配的长度
p = 0 # 最长匹配对应在s1中的最后一位
for i in range(len(s1)):
for j in range(len(s2)):
if s1[i] == s2[j]:
m[i + 1][j + 1] = m[i][j] + 1
if m[i + 1][j + 1] > mmax:
mmax = m[i + 1][j + 1]
p = i + 1
return s1[p - mmax:p], mmax # 返回最长子串及其长度
print(find_lcsubstr('abcdefghjklertg', 'abefghjkltrtg'))
参考博客