[Python] (Day-06) - 字符串

《[Python] (Day-06) - 字符串》 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成员运算符 – 如果字符串中包含给定的字符返回 TrueH in a 输出结果 1
not in成员运算符 – 如果字符串中不包含给定的字符返回 TrueM 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 (    )。
也可以使用换行符 [ 
 ]。
    原文作者:志不同道不合_不相为谋
    原文地址: https://www.jianshu.com/p/7279a1107d4e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞