单引号,双引号
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"