Python智阐3-数据类型2

前面我们已经介绍了整数、浮点数、复数、字符串、布尔值、空值,今天再详细展开介绍下字符串。

1、字符串运算符

1.1 字符串的连接

输入:

str1 = "my name is "

str2 = "zhishufenxi"

str3 = str1 + str2

print("str1 =", str1)

print("str2 =", str2)

print("str3 =", str3)

输出:

>>>str1 = my name is

>>>str2 = zhishufenxi

>>>str3 = my name is zhishufenxi

1.2字符串重复输出

输入:

str1 = "zhishufenxi"

str2 = str1 * 2

print("str2 =", str2)

输出:

>>>str2 = zhishufenxizhishufenxi

1.3判断字符串是否存在另一个字符串

输入:

str1 = "my name is zhishufenxi"

print("zhishufenxi" in str1)

print("hello" not in str1)

print("hello" in str1)

输出:

2、转义字符

之前已经介绍过转义字符,这里再另外补充一些,请看示例

2.1 示例

输入:

print('感谢关注,\t智数分析!') #横向制表符

print('感谢关注,\v智数分析!') #纵向制表符

print("感谢关注,\\智数分析!")#反斜杠符号

print('感谢关注,\'智数分析\'!')#单引号

print('感谢关注,\"智数分析\"!')#双引号

print('感谢关注,\n智数分析!') #换行

#多个换行

print('''

感谢

关注

智数分析!

''')

输出:

>>>感谢关注,智数分析!

>>>感谢关注, 智数分析!

>>>感谢关注,\智数分析!

>>>感谢关注,'智数分析'!

>>>感谢关注,"智数分析"!

>>>感谢关注,

智数分析!

>>>感谢

关注

智数分析!

2.2 一个字符串中需要用到多次转义,如果输入多个 \ 会比较麻烦,而且代码可读性会比较差,Python中可以使用 r 来表示默认不转义,比如文件路径。

输入:

print(r"D:\Python\Python36-32")

输出:

>>>D:\Python\Python36-32

3、字符串截取

3.1 通过索引下标查找字符,注意索引是从0开始

输入:

str1 = "my name is zhi shu fen xi"

print(str1[1])

输出:

3.2 截取字符串中的一部分[x:y],注意:y下标对于的字符不包括。

输入:

str1 = "my name is zhi shu fen xi!"

str2 = str1[3:18] #从第3个字符截取到第20个字符之前,不包括第20个字符

print("str2 = ",str2)

输出:(空格也算一个字符)

>>>str2 = name is zhi shu

输入:

str1 = "my name is zhi shu fen xi!"

str2 = str1[:10] #从头截取到第10个字符之前

print("str2 = ",str2)

str3 = str1[3:] #从第3个字符处开始截取到结尾

print("str3 =", str3)

输出:

>>>str2 = my name is

>>>str3 = name is zhi shu fen xi!

4、字符串函数

Python中字符串内建的函数有很多,这里介绍几个常用的。

4.1 返回字符串的长度(字符个数) len(str)

输入:

print(len("my name is zhishufenxi智数分析!"))

输出:

4.2 字母大小写转换 upper() lower()

输入:

str1 = "My nAme Is zhiShuFenxi智数分析!"

print(str1.lower()) #大写字母为小写字母,小写不变

print(str1.upper()) #小写字母为大写字母,大写不变

print(str1.swapcase()) #小写字母为大写字母,大写字母为小写字母

输出:

>>>my name is zhishufenxi智数分析!

>>>MY NAME IS ZHISHUFENXI智数分析!

>>>mY NaME iS ZHIsHUfENXI智数分析!

4.3 字符计数,默认范围为整个字符串 count()

输入:

str1 = "my name is zhishufenxi智数分析!"

print(str1.count("m")) #默认范围

print(str1.count("m",1)) #从下标为1的字符开始

print(str1.count("m",3, len(str1))) #从下标为3的字符开始

输出:

4.4 从左向右检测某个字符串是否包含在字符串中,可以指定范围,默认整个字符串。返回值是第一次出现的开始下标,如果不包含,则返回-1

输入:

str1 = "my name is zhishufenxi智数分析!"

print(str1.find("zhishufenxi"))

print(str1.find("is"))

print(str1.find("hello", 15, len(str1)))

输出:

4.5 替换函数 replace(),被替换字符串、新字符串是必须的参数,最大替换次数为非必须参数。

输入:

str1 = "my name is is is zhishufenxi智数分析!"

print(str1.replace('name','NAME'))

print(str1.replace('is','IS',2))

输出:

>>>my NAME is is is zhishufenxi智数分析!

>>>my name IS IS is zhishufenxi智数分析!

4.6 首字母大写 capitalize() title()

输入:

str1 = "my name is zhishufenxi智数分析!"

print(str1.capitalize()) # 首字母大写,其他小写

print(str1.title()) #每个单的首字母大写

输出:

>>>My name is zhishufenxi智数分析!

>>>My Name Is Zhishufenxi智数分析!

4.7 字符串截取 strip() lstrip() rstrip(),默认截取空格

输入:

str1 = " my name is zhishufenxi 智数分析! "

print(str1.strip())#截取开头、末尾的空格

print(str1.lstrip())#截取开头的空格

print(str1.rstrip())#截取末尾的空格

str2 = "*****my name is zhishufenxi*****智数分析!*****"

print(str2.strip("*"))#截取开头、末尾的*

print(str2.lstrip("*"))#截取开头的*

print(str2.rstrip("*"))#截取末尾的*

输出:

>>>my name is zhishufenxi 智数分析!

>>>my name is zhishufenxi 智数分析!

>>> my name is zhishufenxi 智数分析!

>>>my name is zhishufenxi*****智数分析!

>>>my name is zhishufenxi*****智数分析!*****

>>>*****my name is zhishufenxi*****智数分析!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181007A0C6BG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券