字符串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 = "张韶涵"
# 张韶涵 整体是一个字符串,其中 张 或 韶 或 涵 称为字符串的一个字符
# 张韶 或 韶涵 称为字符串的一个子序列

字符串一旦被创建就不能被修改,除非赋值给新的字符串

results matching ""

    No results matching ""