Python基础_字符串操作

发布于:2022-07-26 ⋅ 阅读:(473) ⋅ 点赞:(0)

单引号,双引号

name = “小A”
name = ‘小A’

多行

name = """
小A今天吃的
什么饭
"""

拼接

name = '小A'
eat = "吃饭"
name_eat = name + eat

print(f'{name_eat}')  # 小A吃饭

重复

name = '小A'
names = name * 2

names = name*name #  error 字符串和字符串不能相乘

print(names)

索引和取值

name = '小A'
# index_name = name.index(1) #  error  类型不对
index_name = name[0]
print(index_name)  # 小

name = "小A"
index_name = name.index("A")
print(index_name)  # 1

name = "小A"
index_name = name.index("A", 1, 2)  # 0,1 error
print(index_name)  # 1

name = "小A"
# index_name = name.index("B")
# print(index_name) # error

小写转换大写

name = "小a"
upper_name = name.upper()
print(upper_name)  # 小A

大写转换小写

name = "小A"
lower_name = name.lower()
print(lower_name)  # 小a

大小写互换

name = "小Aa"
swapcase_name = name.swapcase()
print(swapcase_name)  # 小aA

字符串首个字母大写

(第一个出现的)

name = "小aA"
captitalize_name = name.capitalize()
print(captitalize_name)  # 小aa

分割后大写

(以分隔符为标记,首字符为大写,其余为小写)

name = "小aAa,今天吃饭,小bB没吃饭"
title_name = name.title()
print(title_name)  # 小Aaa,今天吃饭,小Bb没吃饭

输出居中对齐(注意长度)

name = "小A,吃饭,小B,没吃饭"
center_name = name.center(30)  # 默认空格填充 # 小A,吃饭,小B,没吃饭
print(center_name)
print(name.center(30, "*"))  # *********小A,吃饭,小B,没吃饭*********

center_name = name.ljust(30, "*")
print(center_name)  # 小A,吃饭,小B,没吃饭******************

center_name = name.rjust(30, "*")
print(center_name)  # ******************小A,吃饭,小B,没吃饭

center_name = name.zfill(30)  # 填充0
print(center_name)  # 000000000000000000小A,吃饭,小B,没吃饭

删除

name = "小A"
del name
# print(name) #  error  变量没了,未定义变量

name = "小小A,吃饭饭,小B,没吃饭饭"
lstrip_name = name.lstrip("小")  # 删除左边起始的
print(lstrip_name)  # A,吃饭,小B,没吃饭

name = "小小A,吃饭饭,小B,没吃饭饭"
rstrip_name = name.rstrip("饭")  # 删除右边起始的,相同的字符串
print(rstrip_name)  # 小小A,吃饭,小B,没吃

name = "小小A,吃饭饭,小B,没吃饭饭"
strip_name = name.strip("饭")  # 从首尾去除出入的值(饭)
print(strip_name)  # 小小A,吃饭,小B,没吃

name = "小小A,吃饭饭,小B,没吃饭饭"
strip_name = name.strip("小")  # 从首尾去除出入的值(饭)
print(strip_name)  # A,吃饭饭,小B,没吃饭饭

name = "饭小小A吃,小B没吃饭"
strip_name = name.strip("饭")  # 从首尾去除出入的值(饭)
print(strip_name)  # 小小A吃,小B没吃

计数

name = "小小A,吃饭饭,小B,没吃饭饭"
count_name = name.count("饭")
print(count_name)  # 4

name = "小小A,吃饭饭,小B,没吃饭饭"
count_name = name.count("饭", 6, 30)  # [6,30]
print(count_name)  # 3

搜索和定位

name = "小小A,吃饭饭,小B,没吃饭饭"
find_name = name.find("饭")  # 首次出现的位置
print(find_name)  # 5 索引为5

print(name.find("饭", 6, 30))  # [6,30]

替换

name = "小小A,吃饭饭,小B,没吃饭饭"
replace_name = name.replace("小", "大")
print(replace_name)  # 大大A,吃饭饭,大B,没吃饭饭

name = "小小A,吃饭饭,小B,没吃饭饭"
replace_name = name.replace("小", "大", 1)  # 遇到就停止
print(replace_name)  # 大小A,吃饭饭,小B,没吃饭饭

检测由字母或数字组成

name = "A1B1"
print(name.isalnum())  # True

## 只有字母
name = "A1B1"
print(name.isalpha())  # False

## 只有数字
name = "A1B1"
print(name.isdigit())  # False

## 全部小写(数字和字母一块也算)
name = "A1B1"
print(name.islower())  # False

## 全部小写(数字和字母一块也算)
name = "A1B1"
print(name.isupper())  # True

## 全部空白
name = " "
print(name.isspace())  # True

## 所有单词字首都是大写
# ???? todo  这个有问题
name1 = "A1吃饭 B1没吃饭"
name2 = "A2 Ba123"
name3 = "A2 B123a"
print(191, name1.istitle())  # True
print(191, name2.istitle())  # True
print(191, name3.istitle())  # False

开头

name = "A1吃饭 B1没吃饭"
startswich_name = name.startswith("A")
print(startswich_name)  # True

结尾

name = "A1吃饭 B1没吃饭"
endswith_name = name.endswith("吃饭")
print(endswith_name)  # True

string


import string

res = [i for i in dir(string) if "__" not in i]
print(res)
"""
['Formatter', 'Template', '_ChainMap', '_re', '_sentinel_dict', '_string', 'ascii_letters', 'ascii_lowercase',
 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']
"""
# a-Z
print(string.ascii_letters)
# abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

# 0-9
print(string.digits)
# 0123456789

print(string.hexdigits)
#0123456789abcdefABCDEF

# 0-7
print(string.octdigits)
# 01234567

print(string.printable)
# 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c

print(string.punctuation)
# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

符串格式化

格式化符号 说明
%c 转换成字符(ASCII 码值,或者长度为一的字符串)
%s 优先用 str () 函数进行字符串转换
%d / %i 转成有符号十进制数
%u 转成无符号十进制数
%o 转成无符号八进制数
%x / %X 转成无符号十六进制数(x / X 代表转换后的十六进制字符的大小写)
%e / %E 转成科学计数法(e / E 控制输出 e / E)
%f / %F 转成浮点数(小数部分自然截断)
%g / %G % e 和 % f / % E 和 % F 的简写
%% 输出 % (格式化字符串里面包括百分号,那么必须使用 %%)

%d使用

a = 15
print(("%d to he is %X") % (a, a))
# 15 to he is F

print("%f" % 15)
'15.000000'

print("%e" % 15000)
'1.500000e+04'

print("%d" % 100)
'100'

print("%d%%" % 100)
'100%'

## F-string使用

name = "小A"
print(f'{name}')
"小A"