[Python] 纯文本查看 复制代码 # 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
|