Python学习笔记:字符串操作

457次阅读
没有评论

共计 2772 个字符,预计需要花费 7 分钟才能阅读完成。

#  1. 常用的字符串拼接方法
#  1.1 加法拼接
str1 = 'hello'
str2 = "python!"
str3 = str1 + str2
print(str3)  # hellopython!

#  1.2 乘法拼接
str4 = 'a' * 10
print(str4)  # aaaaaaaaaa

#  1.3 字符串格式化操作符 % 拼接
#  %s,%d,%f 的作用是占位作用,然后在字符串后面跟一个 %,再在后面写拼到占位位置的内容。# %s: 将一个字符串拼接到前面的字符串中
# %d: 将一个整型数字转换成字符串拼接到前面的字符串中,可以设置整数的位数,前面补 0
# %f: 将一个浮点型数字转换成字符串拼接到前面的字符串中,可以设置小数点后的位数,后面补 0

str5 = '12345%s12345' % '00000'
print(str5)  # 123450000012345
str6 = 'aaa%daaa' % 100
print(str6)  # aaa100aaa
str7 = 'bbb%.3fbbb' % 0.9
print(str7)  # bbb0.900bbb

#  1.4  str.format()方法拼接
str8 = 'hello {a} python{b} !'.format(a=' 你好 ', b='PYTHON')
print(str8)  # hello 你好 pythonPYTHON !

#  2. 字符串截取 string[start: end: step]
# start:起点位置,子字符串的起始索引。该索引处的字符包含在子字符串中。start 为空时则默认为 0。# end:终点位置,子字符串的终止索引。该索引处的字符不包括在子字符串中。end 为空时,或者指定的值超过字符串的长度,则默认它等于字符串的长度。# step:步长,当前字符之后和目标字符之间的距离。step 为空时,则默认值为 1。# string[start:end]:获取从 起点位置 到 终点位置 - 1 的所有字符
# string[:end]:获取从 字符串开头 到 终点位置 - 1 的所有字符
# string[start:]:获取从 起点位置 到字符串结尾的所有字符
# string[start:end:step]:获取从 起点位置 到 终点位置 - 1 的,每个之间距离 步长 的所有字符
str1 = '1a3b5c7d9e'
str2 = str1[1:3]
print(str2)  # a3
str3 = str1[:-2]
print(str3)  # 1a3b5c7d
str4 = str1[::2]
print(str4)  # 13579
str5 = str1[-3:]
print(str5)  # d9e
str6 = str1[1:-4]
print(str6)  # a3b5c

#  3. 字符串替换常用 replace()
str1 = '123456123456'
str2 = str1.replace('123', '789')  # 替换所有
print(str2)  # 789456789456
str3 = str1.replace('123', '999', 1)  # 只替换第一个匹配项
print(str3)  # 999456123456

#  4. 字符串分割
#  4.1 split()方法
# split()通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串
# str.split(str="", num=string.count(str))
# str – 分隔符,默认为所有的空字符,包括空格、换行 (\n)、制表符(\t) 等。# num – 分割次数。# 返回分割后的字符串列表。str1 = '''hello
python
HELLO
PYTHON!'''
str_list1 = str1.split('\n',)
print(str_list1)  # ['hello', 'python', 'HELLO', 'PYTHON!']
str2 = 'https://www.52pojie.cn/thread-1930827-1-1.html'
str_list2 = str2.split('/',)
print(str_list2)  # ['https:', '', 'www.52pojie.cn', 'thread-1930827-1-1.html']

#  4.2 re.split()

import re

str1 = 'hello\n my; love python*!,'
# 四个分隔符为:,  ;  *  \n
str_list3 = re.split(r'\n|,|;|\*', str1)
print(str_list3)  # ['hello', ' my', ' love python', '!', '']

#  5. 字符串包含
# 5.1 常用 in 和 not in
str1 = 'hello python!'
str2 = 'ell'
str3 = '999'
aaa = str2 in str1
print(aaa)  # True
bbb = str3 not in str1
print(bbb)  # True
ccc = str1.index(str2)
print(ccc)  # 1 返回指定子串在该字符串中第一次出现的索引, 如果没有找到会抛出异常

#  5.2 用 re.findall()
ddd = re.findall(str2,str1)
print(ddd)  # ['ell']
eee = re.findall(str3,str1)
print(eee)  # []

#  6. 字符串比较
str1 = "Hello"
str2 = "hello"

# 使用 == 运算符检查字符串相等性(区分大小写)if str1 == str2:
    print(" 字符串相等 ")
else:
    print(" 字符串不相等 ")
# 运行结果为:字符串不相等
# 使用 casefold() 方法比较字符串(不区分大小写)if str1.casefold() == str2.casefold():
    print(" 忽略大小写后字符串相等 ")
else:
    print(" 忽略大小写后字符串不相等 ")
# 运行结果为:忽略大小写后字符串相等

#  7. 字符串长度
#  使用 len()函数。str1 = 'www.52pojie.cn'
print(len(str1))  # 14

# 在 Python 中,数字、英文字母、小数点、下划线以及空格,各占一个字节,# 一个汉字可能占 2~4 个字节,具体占多少个,取决于采用的编码方式。# 汉字在 UTF-8 编码中一般占用 3 个字节 , 在 GBK/GB2312 编码中占用 2 个字节。str1 = ' 浮生若梦,学好 Python!'  # 中文逗号,英文感叹号!
print(len(str1.encode()))  # 28
# 汉字加中文标点符号共 7 个,占 21 个字节,英文字母和英文的标点符号占 7 个字节,共占用 28 个字节

print(len(str1.encode('gbk')))  # 20  7*2+6=20

#  8. 字符串转数字
str_num = "123"
num = int(str_num)
print(num)  # 123

num_str = "3.14"
num_float = float(num_str)
print(num_float)  # 3.14
正文完
 0
Jerry
版权声明:本站原创文章,由 Jerry 于2024-06-11发表,共计2772字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)