# 单引号/双引号开头,单引号/双引号结尾
str1 = 'hello, world'
str2 = "hello, world"
# 单引号字符串中可以包含双引号,双引号字符串中可以包含单引号
str3 = 'hello"world'
str4 = "hello'world"
# Python会自动在任意的表达式中合并相邻的字符串常量(把这种形式放到圆括号中,就可以允许它跨越多行)
title = "Meaning " "of " "Life" # title ="Meaning of Life"
number = ("123\n" "456\n" "789") # 可以通过这种形式定义一个多行字符串
# 以三重引号(单引号/双引号)开头和结尾
# 单引号
str5 = '''1.hello
2.world'''
# 双引号
str5 = """1.hello
2.world"""
# \\ 反斜杠(\)
# \' 单引号(')
# \" 双引号(")
# \n 换行符(Newline)
# \t 水平制表符(Tab)
# \r 回车符(Carriage Return)
# \b 退格符(Backspace)
# \f 换页符(Formfeed)
# \v 垂直制表符(Vertical Tab)
# \a 响铃符(Bell/Alert)
# \0 空字符(Null Character)
# \yyy 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。
# \xyy 十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行。
print('\x68\x65\x6C\x6C\x6F\x2C\x77\x6F\x72\x6C\x64\x21') #输入hello,world!
# 使用raw字符串抑制转义,在字符串前加上r
str6 = r'hello,world\n'
name = '小明'
age = 10
str1 = '我的名字叫做%s,年龄为%d' % (name, age)
str1 = '我的名字是{},年龄:{}'.format('小刚', 13) # 我的名字是小刚,年龄为13
x = 10
y = 20
print(f"{x} + {y} = {x + y}") # 输出: 10 + 20 = 30
# {}语法:{[对象名][!转换标志][:格式符]}
# 对象名: 变量/常量
name = '小刚'
age = 13
str1 = f'我的名字是{name},年龄:{age}'
print(str1) # 我的名字是小刚,年龄为13
# 转换标志可以是r、s,或者a分别是在该值上对repr、str或ascii内置函数的一次调用。
# repr() # 返回字符串,一般比str()更详细,如果对象没有定义 __repr__ 方法,会返回默认的 <...> 格式。
# str() # 返回字符串,主要用于输出和显示,内容更简洁,如果对象没有定义 __str__ 方法,会调用 __repr__ 作为备选。
# ascii() # 返回对象的 ASCII 安全表示(非 ASCII 字符会被转义)。类似于 repr(),但会将非 ASCII 字符转换为 \x、\u 或 \U 转义序列。
str2 = f'{'你好!'!a}'
print(str2) # '\u4f60\u597d!'
# 格式符
# 语法:[[填充字符]对齐方式][+][#][0][宽度][,][.精度][字符码]
# 填充字符: 只能是一个字符,不指定则默认是用空格填充
# 对齐方式: ^, <, > 分别是居中、左对齐、右对齐
str1 = f'{1.23:a>10}'
print(str1) # aaaaaa1.23
# + 正数前显示 +,负数前显示 -
# # 在二进制数前面显示零('0b'),在八进制数前面显示零('0o'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
# 0 填充'0'而不是默认的空格(当没有设置 填充字符 时生效)
str2 = f'{12:<+#010d}'
print(str2) # +120000000
# 宽度.精度 .精度 只对浮点数类型起作用
str3 = f'{1.24:010.2f}'
print(str3) # 0000001.24
# , 以千分位显示
str4 = f'{1212512512:020,.2f}'
print(str4) # 0,001,212,512,512.00
# 可以使用大括号 {} 来转义大括号
str5 = f'{{1}}'
print(str5) # {1}
| 序号 | 字符码 | 描述 |
|---|---|---|
| 1 | s | 字符串(或任何对象) |
| 2 | r | s,但使用repr,而不是str |
| 3 | c | 字符及其ASCII码 |
| 4 | b | 二进制 (整数) |
| 5 | d | 十进制 (整数) |
| 6 | o | 八进位整数 |
| 7 | x | 十六进制整数 |
| 8 | X | X,但打印大写 |
| 9 | e | 浮点指数 |
| 10 | E | e,但打印大写 |
| 11 | f | 浮点十进制 |
| 12 | F | f,但打印大写 |
| 13 | g | 浮点e或f |
| 14 | G | 浮点E或f |
| 15 | % | 显示百分比 |
str1 = 'hello'
| 正偏移→ | 0 | 1 | 2 | 3 | 4 |
| 字符串 | h | e | l | l | o |
| 负偏移← | -5 | -4 | -3 | -2 | -1 |
str_len = len(str1) #len()函数是python内置函数,返回集合的长度
# 语法:字符串[偏移量]
str1 = 'hello'
s1 = str1[0] # s1 = 'h'
s2 = str1[-5] # s2 = 'h'
# 语法:字符串[头下标:尾下标] 截取范围为[头下标,尾下标-1),包含头下标不包含尾下标
# 头下标省略默认值为0,尾下标省略默认值为字符串长度
str2 = 'hello'
s1 = str2[0:3] # s1 = 'hel'
s2 = str2[-4:] # s2 = 'ello'
s3 = str2[:-2] # s3 = 'hel'
# 第三个索引:步进(可选)
# 语法:字符串[头下标:尾下标:步进数] 每隔'步进数'个元素索引一次,默认值为1
str2 = 'hello'
s1 = str2[::2] # s1 = 'hlo'
# 步进数可以为负数,分片将会从右至左进行
# 且两个边界的意义实际上进行了反转,截取范围变成了[头下标, 尾下标+1)
s2 = str2[::-1] # s2 = 'olleh',反转
s3 = str2[4:0:-1] # s3 = 'olle'
name = '小明'
name[1] = '刚' # 会报错
name = '小刚' # 只能重新赋值
| 序号 | 函数 | 描述 |
|---|---|---|
| 1 | str.min(str) | 返回字符串 str 中最小的字母 |
| 2 | str.max(str) | 返回字符串 str 中最大的字母 |
| 3 | str.capitalize() | 将字符串的第一个字符转换为大写 |
| 4 | str.count(str, beg= 0, end=len(string)) | 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
| 5 | str.encode(encoding='UTF-8',errors='strict') | 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' |
| 6 | str.startswith(substr, beg=0,end=len(string)) | 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查 |
| 7 | str.endswith(suffix, beg=0, end=len(string)) | 检查字符串是否以 suffix 结束,如果 beg 或者 end 指定则检查指定的范围内是否以 suffix 结束,如果是,返回 True,否则返回 False |
| 8 | str.find(str, beg=0, end=len(string)) | 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
| 9 | str.rfind(str, beg=0,end=len(string)) | 类似于 find()函数,不过是从右边开始查找 |
| 10 | str.index(str, beg=0, end=len(string)) | 跟find()方法一样,只不过如果str不在字符串中会报一个异常 |
| 11 | str.rindex( str, beg=0, end=len(string)) | 类似于 index(),不过是从右边开始 |
| 12 | str.lower() | 转换字符串中所有大写字符为小写 |
| 13 | str.islower() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
| 14 | str.upper() | 转换字符串中的小写字母为大写 |
| 15 | str.isupper() | 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
| 16 | str.title() | 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写 |
| 17 | str.istitle() | 如果字符串是标题化的(见 title())则返回 True,否则返回 False |
| 18 | str.isspace() | 如果字符串中只包含空白,则返回 True,否则返回 False |
| 19 | str.isalnum() | 检查字符串是否由字母和数字组成,即字符串中的所有字符都是字母或数字。如果字符串至少有一个字符,并且所有字符都是字母或数字,则返回 True;否则返回 False |
| 20 | str.isalpha() | 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False |
| 21 | str.isdigit() | 如果字符串只包含数字则返回 True 否则返回 False |
| 22 | str.isnumeric() | 如果字符串中只包含数字字符,则返回 True,否则返回 False |
| 23 | str.isdecimal() | 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false |
| 24 | str.join(seq) | 以指定字符串作为分隔符,将 seq 中所有的元素(必须是字符串)合并为一个新的字符串 |
| 25 | str.center(width, fillchar) | 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格 |
| 26 | str.ljust(width[, fillchar]) | 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格 |
| 27 | str.rjust(width,[, fillchar]) | 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
| 28 | str.lstrip([chars]) | 截掉字符串左边的空格或指定字符 |
| 29 | str.rstrip([chars]) | 删除字符串末尾的空格或指定字符 |
| 30 | str.strip([chars]) | 在字符串上执行 lstrip()和 rstrip() |
| 31 | str.split(str="", num=string.count(str)) | 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串 |
| 32 | str.expandtabs(tabsize=8) | 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 |
| 33 | str.splitlines([keepends]) | 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符 |
| 34 | str.swapcase() | 将字符串中大写转换为小写,小写转换为大写 |
| 35 | str.replace(old, new [, max]) | 把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次 |
| 36 | str.maketrans() | 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标,第三个参数还是字符串,表示需要删除的字符(前两个参数的长度必须一致)。也可使用字典作为参数进行映射 |
| 37 | str.translate(table) | 根据 table 给出的表(包含 256 个字符)转换 string 的字符 |
| 38 | str.zfill(width) | 返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
| 39 | str.partition(sep) | partition() 是 Python 字符串对象的一个内置方法,用于根据指定的分隔符将字符串分割成三部分。sep:用作分隔符的字符串。返回一个包含三个元素的元组:1.分隔符之前的部分 2.分隔符本身 3.分隔符之后的部分 |
| 40 | str.rpartition(sep) | 与 partition() 类似,但从字符串的右侧开始查找分隔符 |
| 41 | value in string | 如果value在string里返回True,否则返回False |