文章从简书转入,只因它已不再是以前的简书
Make everything as simple as possible, but not simpler — Albert Einstein
把每件事,做简单到极致,但又不过于简单 - 阿尔伯特·爱因斯坦
字符串是 Python 中最常用的数据类型。
我们可以使用引号''
或""
来创建字符串。
str = 'Hello World!'
name = "Mazy"
访问字符串中的值
格式:字符串[下标位置 / 范围]
print(str)
print(name)
print(str[4])
print(name[1:3])
执行结果:
Hello World!
Mazy
o
az
转义字符
在字符中使用特殊字符时,需要使用转义字符进行转义
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\\ | 反斜杠符号 |
\’ | 单引号 |
\” | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
字符串运算符
下表实例变量a值为字符串 “Hello”,b变量值为 “Python”:
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | a + b 输出结果: HelloPython |
* | 重复输出字符串 | a*2 输出结果:HelloHello |
[] | 通过索引获取字符串中字符 | a[1] 输出结果 e |
[:] | 截取字符串中的一部分 | a[1:4] 输出结果 ell |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | H in a 输出结果 1 |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | M not in a 输出结果 1 |
r/R | 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符 | print(r’\n’), 结果为”/n” |
% | 格式字符串 | 请看下面的格式化输入内容 |
a = "Hello"
b = "Python"
print("a + b 输出结果:", a + b)
print("a * 2 输出结果:", a * 2)
print("a[1] 输出结果:", a[1])
print("a[1:4] 输出结果:", a[1:4])
if ("H" in a):
print("H 在变量 a 中")
else:
print("H 不在变量 a 中")
if ("M" not in a):
print("M 不在变量 a 中")
else:
print("M 在变量 a 中")
print(r'\n')
print(R'\n')
以上实例输出结果为:
a + b 输出结果: HelloPython
a * 2 输出结果: HelloHello
a[1] 输出结果: e
a[1:4] 输出结果: ell
H 在变量 a 中
M 不在变量 a 中
\n
\n
字符串格式化
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化实例:
intro = "我叫 %s 今年 %d 岁!" % ('小明', 10)
print(intro) // "我叫 小明 今年 10 岁!"
# 另外一种格式化方法
intro1 = "my name is {name}, and i am {age} old"
# 格式化字符串
intro1.format(name='Mazy',age=21) // "my name is Mazy, and i am 21 old"
字符串基本内建函数总结
以下假设变量 str = “hello world”
方法 | 描述 |
---|---|
str.capitalize() | 将字符串的第一个字符转换为大写 |
str.count(“l”) | 计算 l 在字符串中的个数 |
str.center(50,”-“) | 50个字符,不足50位补- ,字符串居中 |
str.endswith(“x”) | 是否以x 结尾, 返回 True / False |
str.find(“or”) | 查找到or 所在的位置 |
str.isalnum() | 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
str.isalpha() | 如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False |
str.isdecimal() | 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false |
str.isdigit() | 如果字符串只包含数字则返回 True 否则返回 False |
str.isidentifier() | 判读是不是一个合法的标识符 |
str.isnumeric() | 如果字符串中只包含数字字符,则返回 True,否则返回 False |
str.istitle() | 如果字符串是标题化,则返回 True,否则返回 False |
‘+’.join( [‘1’,’2’,’3’]) | 以指定字符串作为分隔符,将 seq中所有的元素合并为一个新的字符串 |
str.ljust(50,’*’) | 返回长度为50个字符串,不够在左边加”*” |
str.rjust(50,’-‘) | 返回长度为50个字符串,不够在右边加”-“ |
str.lower() | 全部转换成小写 |
str.upper() | 全部大写 |
str.lstrip() | 删除字符串前面的空格 |
str.rstrip() | 删除字符串末尾的空格 |
str.replace(‘l’,’L’,1) | 将第一个 l 改成 L |
str.rfind(‘l’) | 从右往左查找 l 所在的位置 |
str.splitlines() | 将字符串通过换行符分割成列表 |
str.swapcase() | 大写转小写,小写转大写 |
str.title() | 转化为标题格式,单词首字母大写 |
str.zfill(50) | 填充到50个,不足补0 |
补充:Python三引号
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)
实例执行结果为:
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( )。
也可以使用换行符 [
]。