字符串str
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = 'hello'
a = "hello"
a = '''hello'''
a = """hello"""
# 四种写法都正确,根据自己的情况进行选择
格式化输出
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: 张泽楠
@contact: [email protected]
@file: main.py
@time: 2018/3/9 13:44
"""
log_str = "I am %s, %.2f" % ("张三", 3.14)
print(log_str)
log_str = "I am %(name)s, %(age).2f" % {"name": "张三", "age": 3.14}
print(log_str)
log_str = "I am %(name)+60s, %(age)+60s" % {"name": "张三", "age": 3.14}
print(log_str)
log_str = "I am \033[36m%(name)+60s\033[0m, %(age)+60s" % {"name": "张三", "age": 3.14}
print(log_str)
name = "I'm {}, age is {}"
name1 = name.format("王五", 50)
print(name1)
name = "I'm {name}, age is {a}"
name1 = name.format(name="张三", a=10)
print(name1)
name = "I'm {name}, age is {a}"
name1 = name.format(**{'name': "张三", 'a': 10})
print(name1)
name = "I'm {:s}, point is {:.2f}"
name1 = name.format("张三", 3.1415926)
print(name1)
name = "I'm {name:s}, point is {point:.2f}"
name1 = name.format(name="张三", point=3.1415926)
print(name1)
name = "I'm {0}, age is {1}"
name1 = name.format("张三", 10)
print(name1)
name2 = name.format_map({"name": "李四", "a": 20})
print(name2)
\033[30m 黑色字 \033[0m
\033[31m 红色字 \033[0m
\033[32m 绿色字 \033[0m
\033[33m 黄色字 \033[0m
\033[34m 蓝色字 \033[0m
\033[35m 紫色字 \033[0m
\033[36m 天蓝字 \033[0m
\033[37m 白色字 \033[0m
\033[40;37m 黑底白字 \033[0m
\033[41;37m 红底白字 \033[0m
\033[42;37m 绿底白字 \033[0m
\033[43;37m 黄底白字 \033[0m
\033[44;37m 蓝底白字 \033[0m
\033[45;37m 紫底白字 \033[0m
\033[46;37m 天蓝底白字 \033[0m
\033[47;30m 白底黑字 \033[0m
根据索引获取字符串内容
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 索引:默认从0开始依次递增
a = "zhangsan"
print(a[0])
print(a[2])
# 如果下标超过范围会报错
# print(a[10])
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan"
# 负索引
print(a[-2])
切片
# 切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
# 切片的语法:[起始:结束:步长]
# 注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan"
print(a[2:6])
print(a[2:6:3])
# 就算切片的范围超过字符串长度也无所谓
print(a[2:16])
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan"
print(a[::-1])
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan"
print(a[2:])
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan"
print(a[:4])
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan"
print(a[::2])
常用操作
find/rfind/
# 检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan lisi wangwu lisi zhaoliu"
print(a.find("zhangsan"))
print(a.find("lisi", 10))
print(a.find("lisi", 10, 15))
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan lisi wangwu lisi zhaoliu"
result = a.find("zhangsan")
if result < 0:
print("没找到了")
else:
print("找到了")
index/rindex
用法类似于find,如果找不到字符串则报错
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan lisi wangwu lisi zhaoliu"
print(a.index("zhangsan"))
print(a.index("lisi", 8))
print(a.index("lisi", 10, 15))
count
返回 str在start和end之间 在 mystr里面出现的次数
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan lisi wangwu lisi zhaoliu"
print(a.count("lisi"))
print(a.count("lisi", 8))
print(a.count("lisi", 8, 15))
replace
把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan lisi wangwu lisi zhaoliu"
print(a.replace("lisi", "李四"))
print(a.replace("lisi", "李四", 1))
split
以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan lisi wangwu lisi zhaoliu"
print(a.split("lisi"))
print(a.split("lisi", 1))
capitalize
把字符串的第一个字符大写
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "zhangsan"
print(a.capitalize())
title
把字符串的每个单词首字母大写
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "hello world"
print(a.title())
startswith
检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "http://www.baidu.com"
if a.startswith("http"):
print("是网址")
else:
print("不是网址")
endswith
检查字符串是否以obj结束,如果是返回True,否则返回 False.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "1.jpg"
if a.endswith(".jpg"):
print("是jpg图片")
else:
print("不是jpg图片")
lower
转换 mystr 中所有大写字符为小写
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "Hello World"
print(a.lower())
upper
转换 mystr 中的小写字母为大写
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "hello world"
print(a.upper())
center
文本居中,两端填充指定个数的字符
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: 张泽楠
@contact: [email protected]
@file: main.py
@time: 2018/3/9 13:44
"""
name = "zhangsan"
# 只能填写一个字符
name = name.center(20, "*")
print(name)
expandtabs
把字符串中的 tab 符号('\t')转为空格
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: 张泽楠
@contact: [email protected]
@file: main.py
@time: 2018/3/9 13:44
"""
name = "姓名\t年龄\t班级\n张三\t20\t三年级一班\n张三\t20\t三年级一班\n张三\t20\t三年级一班\n"
name = name.expandtabs(8)
print(name)
translate()/maketrans()
将字符串中的指定字符按照对应关系进行替换
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: 张泽楠
@contact: [email protected]
@file: main.py
@time: 2018/3/9 13:44
"""
title = "胡锦涛背着江泽民下乡看望生病的邓小平"
s = str.maketrans("胡锦涛", "胡*涛")
print(title.translate(s))
partition
将字符串以指定子串进行分割
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: 张泽楠
@contact: [email protected]
@file: main.py
@time: 2018/3/9 13:44
"""
title = "胡锦涛背着江泽民下乡看望生病的邓小平"
s = title.partition("江泽民")
print(s)
ljust/rjust/center
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "hello"
print(a.ljust(10))
print(a.ljust(10, "-"))
lstrip/rstrip/strip
删除mystr字符串左端/右端/两端的空白字符
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "nice to meet you"
print(a.strip("yniou"))
partition/rpartition
把mystr以str分割成三部分,str前,str和str后
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "nice to meet you"
print(a.partition("meet"))
splitlines
按照行分隔,返回一个包含各行作为元素的列表
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "nice to meet you\nhello world"
print(a.splitlines())
print(a.splitlines(True))
isalpha
如果 mystr 所有字符都是字母 则返回 True,否则返回 False
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "hello"
if a.isalpha():
print("是单词")
else:
print("不是单词")
isdigit
如果 mystr 只包含数字则返回 True 否则返回 False.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "1234"
if a.isdigit():
print("是数字")
else:
print("不是数字")
isalnum
如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "abcd1234"
if a.isalnum():
print("是字母数字混合")
else:
print("不是数字字母混合")
isspace
如果 mystr 中只包含空格,则返回 True,否则返回 False.
a = " "
if a.isspace():
print("是空格")
else:
print("不是空格")
join
mystr 中每个字符后面插入str,构造出一个新的字符串
#!/usr/bin/env python
# -*- coding:utf-8 -*-
a = "_"
b = "san"
print(a.join(b))
title()/istitle()
#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
@author: 张泽楠
@contact: [email protected]
@file: main.py
@time: 2018/3/9 13:44
"""
title = "hello world"
# 判断该字符串是否为单词都大写的标题
print(title.istitle())
# 把字符串转换为单词都大写的标题
print(title.title())
补充
my_name = "张韶涵"
# 张韶涵 整体是一个字符串,其中 张 或 韶 或 涵 称为字符串的一个字符
# 张韶 或 韶涵 称为字符串的一个子序列
字符串一旦被创建就不能被修改,除非赋值给新的字符串