【Python】字符串总结

【Python】字符串总结

    • 定义
    • 类型转换
    • 优先掌握的操作
        • 1.按索引取值(正向取,反向取):
        • 2.成员运算 in 和 not in
        • 3. strip 移除字符串首尾指定的字符(默认移除空格)
        • 4. split 切分字符串获得列表
        • 5. 查找元素位置 find、index
        • 6. 统计元素个数 count
      • 需要掌握的操作
        • 1. 移除收尾字符 strip, lstrip, rstrip
        • 2. 高级切割 split、rsplit
        • 3. 拼接字符串 join
        • 4. 替换字符串 replace
        • 5. 大小写转换 upper、lower、capitalize、title
        • 6. 是否为全数字、英文、大写、小写、空白字符
    • format 格式化函数

定义

# 定义:在单引号\双引号\三引号内包含一串字符
name1 = 'jason'  # 本质:name = str('任意形式内容')
name2 = "lili"  # 本质:name = str("任意形式内容")
name3 = """ricky"""  # 本质:name = str("""任意形式内容""")

类型转换

# 数据类型转换:str()可以将任意数据类型转换成字符串类型,例如 
>>> type(str([1,2,3])) # list->str
<class 'str'>
>>> type(str({"name":"jason","age":18})) # dict->str
<class 'str'>
>>> type(str((1,2,3)))  # tuple->str
<class 'str'>
>>> type(str({1,2,3,4})) # set->str
<class 'str'>

优先掌握的操作

1.按索引取值(正向取,反向取):
>>> str1 = 'hello python!'


# 1.1 正向取(从左往右)
>>> str1[6]
p
# 1.2 反向取(负号表示从右往左)
>>> str1[-4]
h
# 1.3 对于str来说,只能按照索引取值,不能改
>>> str1[0]='H' # 报错TypeError

注意:对于str来说,只能按照索引取值,不能改

2.成员运算 in 和 not in
# 2.1 int:判断hello 是否在 str1里面
>>> 'hello' in str1  
True
# 2.2 not in:判断tony 是否不在 str1里面
>>> 'tony' not in str1 
True
3. strip 移除字符串首尾指定的字符(默认移除空格)
# 3.1 括号内不指定字符,默认移除首尾空白字符(空格、\n、\t)
>>> str1 = '  life is short!  '
>>> str1.strip()  
life is short!

# 3.2 括号内指定字符,移除首尾指定的字符
>>> str2 = '**tony**'  
>>> str2.strip('*')  
tony
4. split 切分字符串获得列表
# 4.1 括号内不指定字符,默认以空格作为切分符号
>>> str3='hello world'
>>> str3.split()
['hello', 'world']
# 4.2 括号内指定分隔字符,则按照括号内指定的字符切割字符串
>>> str4 = '127.0.0.1'
>>> str4.split('.')  
['127', '0', '0', '1']  # 注意:split切割得到的结果是列表数据类型
5. 查找元素位置 find、index
# find,rfind,index,rindex
# 5.1 find:从指定范围内查找子字符串的起始索引,找得到则返回数字1,找不到则返回-1
>>> msg='tony say hello'
>>> msg.find('o',1,3)  # 在索引为1和2(顾头不顾尾)的字符中查找字符o的索引
1  
# 5.2 index:同find,但在找不到时会报错
>>> msg.index('e',2,4) # 报错ValueError
6. 统计元素个数 count

count:统计字符串在大字符串中出现的次数

# 6 count:统计字符串在大字符串中出现的次数
>>> msg = "hello everyone"
>>> msg.count('e')  # 统计字符串e出现的次数
4
>>> msg.count('e',1,6)  # 字符串e在索引1~5范围内出现的次数
1

需要掌握的操作

1. 移除收尾字符 strip, lstrip, rstrip
>>> str1 = '**tony***'

>>> str1.strip('*')  # 移除左右两边的指定字符
'tony'
>>> str1.lstrip('*')  # 只移除左边的指定字符
tony***
>>> str1.rstrip('*')  # 只移除右边的指定字符
**tony
2. 高级切割 split、rsplit
# split会按照从左到右的顺序对字符串进行切分,可以指定切割次数
>>> str5='C:/a/b/c/d.txt'
>>> str5.split('/',1)
['C:', 'a/b/c/d.txt']  

# rsplit刚好与split相反,从右往左切割,可以指定切割次数
>>> str5='a|b|c'
>>> str5.rsplit('|',1)
['a|b', 'c']
3. 拼接字符串 join

从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串

# 从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串
>>> '%'.join('hello') # 从字符串'hello'中取出多个字符串,然后按照%作为分隔符号进行拼接
'h%e%l%l%o'
>>> '|'.join(['tony','18','read'])  # 从列表中取出多个字符串,然后按照*作为分隔符号进行拼接
'tony|18|read'
4. 替换字符串 replace

用新的字符替换字符串中旧的字符

# 用新的字符替换字符串中旧的字符
>>> str7 = 'my name is tony, my age is 18!'  # 将tony的年龄由18岁改成73岁
>>> str7 = str7.replace('18', '73')  # 语法:replace('旧内容', '新内容')
>>> str7
my name is tony, my age is 73!

# 可以指定修改的个数
>>> str7 = 'my name is tony, my age is 18!'
>>> str7 = str7.replace('my', 'MY',1) # 只把一个my改为MY
>>> str7
'MY name is tony, my age is 18!'
5. 大小写转换 upper、lower、capitalize、title
str = "www.Baidu.com"
print(str.upper())          # 把所有字符中的小写字母转换成大写字母
print(str.lower())          # 把所有字符中的大写字母转换成小写字母
print(str.capitalize())     # 把第一个字母转化为大写字母,其余小写
print(str.title())          # 把每个单词的第一个字母转化为大写,其余小写 

输出结果为:

【Python】字符串总结_第1张图片

6. 是否为全数字、英文、大写、小写、空白字符

运行如下方法:

str.isalnum() #所有字符都是数字或者字母
str.isalpha() #所有字符都是字母
str.isdigit() #所有字符都是数字
str.islower() #所有字符都是小写
str.isupper() #所有字符都是大写
str.istitle() #所有单词都是首字母大写,像标题
str.isspace() #所有字符都是空白字符、\t、\n、\r

format 格式化函数

格式化输出之format

Python2.6 开始,新增了一种格式化字符串的函数str.format(),它增强了字符串格式化的功能。

基本语法是通过 {} 和 : 来代替以前的 %

之前我们使用 %s 来做字符串的格式化输出操作,在传值时,必须严格按照位置与 %s 一一 对应,而字符串的内置方法format 则提供了一种不依赖位置的传值方式

# format括号内在传参数时完全可以打乱顺序,但仍然能指名道姓地为指定的参数传值,name=‘tony’就是传给{name}
>>> str4 = 'my name is {name}, my age is {age}!'.format(age=18,name='tony')
>>> str4  
'my name is tony, my age is 18!'

>>> str4 = 'my name is {name}{name}{name}, my age is {name}!'.format(name='tony', age=18)
>>> str4  
'my name is tonytonytony, my age is tony!'

format的其他使用方式(了解)

# 类似于%s的用法,传入的值会按照位置与{}一一对应
>>> str4 = 'my name is {}, my age is {}!'.format('tony', 18)
>>> str4 
my name is tony, my age is 18!
# 把format传入的多个值当作一个列表,然后用{索引}取值
>>> str4 = 'my name is {0}, my age is {1}!'.format('tony', 18)
>>> str4
my name is tony, my age is 18!

>>> str4 = 'my name is {1}, my age is {0}!'.format('tony', 18)
>>> str4  
my name is 18, my age is tony!

>>> str4 = 'my name is {1}, my age is {1}!'.format('tony', 18)
>>> str4  
my name is 18, my age is 18!

参考博客:

https://www.runoob.com/python/att-string-format.html

https://blog.csdn.net/qq_36663518/article/details/107705830

你可能感兴趣的:(python,python,开发语言,后端)