Python可用单个双引号”或单引号’,也可以用三个双引号”””或单引号”’声明串。推荐使用双引号。

字符

细心的你,不知注意到没?–三个双引号或单引号,不是注释用的吗?怎么字符串也用这个。是的,把内容赋值给变量时,就表示字符串。

# 用单个双引号
a = "双引号"
print(a, type(a))
# 用单个单引号
b = '单引号'
print(b, type(b))
# 用三个双引号
c = """三个双引号"""
print(c, type(c))
# 用三个单引号
d = '''三个单引号'''
print(d, type(d))

6.2 转义

有些符号,如双引号”、单引号’,本身已有特殊含义,如要输出它们,就需要进行转义处理。Python跟其他编程语言一样,也是用反斜杠来进行的。

# 用n进行换行

i = “第1行,n第2行。”

print(i)

# 用”输出双引号

say = “我说:””

print(say)

如果转义内容用的比较多时,样子会很难看,工作量也大了一些,当需要多个反斜杠转义时,则使用原始字符r或R。

# 用r表示原始内容
path = r"c:softwarenowtest"
print(path)

6.3 去掉空格

删除前面的空格符用lstrip()函数,后面的用rstrip(),前后都删除的,用strip()。还有一种不限位置的删除方法,那便是用replace()函数。

# 删除前面空格
a = " abc"
print(a.lstrip())
# 删除后面的空格
a = "abc "
print(a.rstrip())
# 删除前后的空格
a = " abc "
print(a.strip())
# 多次空格,包括中间
a = " a b c "
print(a.replace(" ", ""))
# replace()替换内容
cool = "你最帅!"
print(cool.replace("你", "我")

6.4 占位符

字符串内容中,不变话的直接放在里面,会改变的那部分,可用占位符先占着,等到使用时再去变更。

# 用{}占位
i = "Welcome to {}.".format("Python")
print(i)
# 用{下标}占位
i = "I like {0}.".format("code", "music")
print(i)
# 用{关键字}占位
i = "row={row:d}".format(row=1)
print(i)
# 用列表填充占位内容
i = "I like {0[0]} and {0[1]}.".format(["Python", "iOS"])
print(i)

6.5 子字符串

Python通过区间的方式,截取出子字符串。可从左到右,也可以从右到左。正数表示从左边开始,负数表示从右边开始,用中括号[]和:截取范围,[0:4]表示从位置1开始,截取4个长度。负数用绝对值计算,像[-4:-1],表示从倒数第4个位置开始,截取4-1 = 3个长度。

指定

# 字符串内容
s = "123456789"
# 输出内容
print(s)
# 从第1位开始,截取长度4
print(s[0:4])
# 从第4位开始,截取到最后
print(s[3:])
# 取出第6位内容
print(s[5])
# 截取全部,等于没截取
print("--"+s[:]+"--")
# 从倒数第4位开始,截取长度3
print(s[-4:-1])
# 从倒数第3位开始截取到最后
print(s[-3:])
# 截取倒数第1个字符
print(s[-1])

6.6 内容

分割

分割,就是通过指定某个字符,进行字符串分割,结果返回数组。Python用split()函数进行分割,并且可以指定分割次数,默认是分割所有。它的语法是:str.split(str=””, num=string.count(str))。

# 字符串内容
s = "1-2-3-4-5"
print(s.split("-"))
# 分割1次
print(s.split("-",1))

6.7 查找

从字符串当中,查找是否存在指定的字符串内容。

c++截取字符串中的一部分-Python3.7知其然知其所以然-第六章 字符串插图

(1) 用find()函数进行查找,找到返回下标值,找不到返回-1,还可以从指定某个位置开始查找,它语法是:str.find(str, beg=0, end=len(string)) 。

# 字符串内容
s = "Welcome to Python."
print(s.find("a"))
print(s.find("c"))
# 从指定范围进行查找
print(s.find("e", 5, 7))

(2) 用index()函数进行查找,找到返回下标,找不到报错,它的语法是:str.index(str, beg=0, end=len(string)) 。报错的话,需要进行异常处理,所以建议用find()函数。

# 字符串内容
s = "Welcome to Python."
print(s.index("a"))
print(s.index("c"))
# 从指定范围进行查找
print(s.index("e", 5, 7))

(3) 判断是否是指定的字符串开头,是的话,返回True,否则返回False。可以从指定的范围进行查找,它的语法是:str.startswith(str, beg=0,end=len(string))。

# 字符串内容
s = "I am a handsome boy."
# 找到,返回True
print(s.startswith("I"))
# 从指定范围查找,找不到,返回False
print(s.startswith("I", 2, 6))
# 没找到,返回False
print(s.startswith("You"))

(4) 判断是否是指定的字符串结束,是的话,返回True,否则返回False。可以从指定的范围进行查找,它的语法是:str.endswith(str, beg=0,end=len(string))。

# 字符串内容
s = "I am a handsome boy."
# 找到,返回True
print(s.endswith("."))
# 从指定范围进行查找,找不到,返回False
print(s.endswith(".", 2, 6))
# 没找到,返回False
print(s.endswith("e"))

6.8 大小写

c++截取字符串中的一部分-Python3.7知其然知其所以然-第六章 字符串插图1

英文单词,大小写转换。可以从大写转成小写,也可以从小写转成大写。

(1)通过upper()函数

c++截取字符串中的一部分

,把字母全部转换化为大写。

# 字符串内容

s = “You are a handsome guy.”

# 全部转成大写

print(s.upper())

(2) 通过lower()函数,把字母全部转化成为小写。

# 字符串内容
s = "You are a handsome guy."
# 全部转成小写
print(s.lower())

(3) 用title()函数把每个单词的第一个字母转为大写。

# 字符串内容
s = "You are a handsome guy."
# 每个单词首字母转为大写
print(s.title())

(4) 用capitalize()函数把第一个字母转为大写,其他的全部为小写。

# 字符串内容
s = "you are A handsome guy."
# 第一个字母转为大写,其他的全为小写
print(s.capitalize())

6.9 字符串倍数

Python字符串,可通过*来输出倍数字符串内容,像“good”* 3 ,表示输出3次good。可用乘法赋值运算符:*= ,精简表示。

# 字符串内容
s1 = "good"
count = 3
# 输出倍数字符串内容
s1 = s1 * count
print(s1)
# 通过乘法赋值运算符输出
s2 = "nice"
s2 *= count
print(s2)

6.10 字符串补齐

字符通过ljust(len,str)向左对齐,rjust(len,str)向右对齐,center(len,str)中间对齐,内容用str补齐长度。zfill(width)指定字符串长度

c++截取字符串中的一部分

,右对齐,前面补充0,这个在开发过程中会经常见到,实用。

# 字符左对齐
a = "a"
b = a.ljust(9, "b")
print(b)
# 字符右对齐
c = a.rjust(9, "c")
print(c)
# 字符中间对齐
d = a.center(9, "d")
print(d)
# 正数左边补0
z = "5".zfill(4)
print(z)
# 负数也可补0
z = "-6".zfill(4)
print(z)