容器类型的进阶使用(字符串)
- 字符串的拼接与重复
- 字符串的跨行拼接
- 字符串的索引和切片
- 字符串的内置函数
- 字符串的转义
- 字符串和格式化和format内置函数的使用
本文目录
字符串的拼接和重复
res = 'hello' + ' ' + 'motherland'
print(res)
res = 'hello ' * 3
print(res)
"""
结果:
hello motherland
hello hello hello
"""
字符串的跨行拼接
接下来我们要学习的是python中的一个符号,跨行拼接符\ 。
这个符号的作用就是如果一行的代码过长, 可以使用这个符号达到换行的作用,而原本语句的作用不变。
char = 'hello'
char1 = \
'hello'
char = 'hello' + 'motherland'
char1 = 'hello' \
'motherland'
char2 = 'hello' + \
'motherland'
字符串的索引
我们之前说过,字符串和列表、元组这三种容器的共同特点是,有序、可获取,且都存在正逆向下标索引。
var = 'hello'
print(var[1])
字符串的切片
切片顾名思义,就是将字符串进行分截,依此来获取所需要的元素(切片 == 截取)。
语法:string[开始索引:结束索引:间隔值]
作用
从开始索引所在的元素按照间隔值截取至结束索引前一个的元素,结束索引对应的元素不会被获取。
使用方法
-
[开始索引:] :截取从开始索引至最后一个元素,间隔值默认为1 var = 'hello motherland'
res = var[5:]
print(repr(res))
-
[:结束索引]:截取从第一个元素至结束索引前一个的元素,间隔值默认为1 var = 'hello motherland'
res = var[:5]
print(repr(res))
-
[开始索引:结束索引]:截取从开始索引至结束索引前一个元素,间隔值默认为1 var = 'hello motherland'
res = var[3:8]
print(repr(res))
-
[开始:结束:间隔]:和第三点相同,但是按照指定的间隔值截取 var = 'hello motherland'
res = var[3:8:2]
print(repr(res))
res = var[:8:2]
print(repr(res))
res = var[::-1]
print(repr(res))
-
[::]、[:]:这两种为截取所有的字符串
var = 'hello motherland'
res = var[:]
print(repr(res))
res = var[::]
print(repr(res))
字符串的内置函数
查看字符串的内置函数print(help(str))
函数 | 作用 |
---|
capitalize | 首字母大写 | title | 每个单词的首字母大写 | upper | 所有字母大写 | lower | 所有字母小写 | swapcase | 大小写互换 | count | 计算某个字符的数量 | find | 查找某个字符串首次出现的索引位置,找不到返回-1 | index | 查找某个字符串首次出现的索引位置,找不到报错 | startswith | 判断是否以某个字符串开头,返回布尔值 | endswith | 判断是否以某个字符串结尾,返回布尔值 | isupper | 判断字符串是否都是大写,返回布尔值 | islower | 判断字符串是否都是小写,返回布尔值 | istitle | 判断字符串是否每个单词都是首字母大写 | isalnum | 判断字符串是否都是由数字、字母、汉字组成的 | isspace | 判断字符串是否是只有空白符组成的 | isdecimal | 判断字符串是否都是数字组成的,返回布尔值 | ljust | 填充字符串,原字符串居左,返回新的字符串 | rjust | 填充字符串,原字符串居右,返回新的字符串 | center | 填充字符串,原字符串居中,返回新的字符串 | strip | 去掉首尾两边的空白符,(默认为空白符,可以指定) | lstrip | 去掉左边的空白符,(默认为空白符,可以指定) | rstrip | 去掉右边的空白符,(默认为空白符,可以指定) | split | 按照指定的字符将字符串分隔成列表 | rsplit | 按照指定的字符将字符串从右往左分隔成列表 | join | 按照某个字符串将容器转成字符串 | replace | 将字符串中的字符替换成为其它的 | format | 字符串的格式化 |
capitalize
var = 'hello motherland'
res = var.capitalize()
print(res)
title
var = 'hello motherland'
res = var.title()
print(res)
upper
var = 'hello motherland'
res = var.upper()
print(res)
lower
var = 'HELLO MOTHERLAND'
res = var.lower()
print(res)
swapcase
var = 'Hello Motherland'
res = var.swapcase()
print(res)
count
语法:string.count(sub, [start,], [end])
string.count(字符串,[开始值索引], [结束值索引])
var = 'Hello Motherland'
res = var.count('h')
print(res)
res = var.count('H', 3, 10)
print(res)
find和index
语法:string.find(sub, [start,], [end])
语法:string.index(sub, [start,], [end])
var = 'Hello Motherland'
res = var.find('h')
print(res)
res = var.index('h')
print(res)
res = var.find('m', 3)
print(res)
res = var.index('m', 3)
print(res)
var = 'Hello Motherland'
res = var.find('d')
print(res)
print(len(var))
startswith和endswith
语法:startswith(prefix, [start], [end])
语法:endswith(suffix, [start], [end])
var = 'Hello Motherland'
res = var.startswith('Hello')
print(res)
res = var.startswith('Mother', 6)
print(res)
res = var.endswith('aad')
print(res)
isupper和islower
var = 'Hello Motherland'
res = var.isupper()
print(res)
res = var.islower()
print(res)
isdecimal
var = '20666'
res = var.isdecimal()
print(res)
ljust、rjust、center
语法:string.ljust(width, [fillchar])
指定一个长度,如果字符串的长度不够,就按照指定的字符串补足,默认使用空格,补足用的自妇产长度不能超过1。
var = 'Hello Motherland'
res = var.ljust(20)
print(repr(res))
res = var.rjust(30, 'm')
print(res)
print(len(res))
res = var.center(30, '-')
print(res)
strip、lstrip、rstrip
var = ' Hello Motherland '
res = var.strip()
print(repr(res))
var = 'mmmmmmmmHello Motherlandmmmmmm '
res = var.lstrip('m')
print(repr(res))
res = var.rstrip('m')
print(repr(res))
split和rsplit
var = 'Hello my motherland'
res = var.split()
print(res)
res = var.split(' ', 1)
print(res)
res = var.split('l')
print(res)
res = var.rsplit('l')
print(res)
res = var.rsplit('l', 1)
print(res)
res = var.split('l', 1)
print(res)
join
lst = ['h', 'e', 'l', 'l', 'o']
res = '-'.join(lst)
print(res)
string = 'hello'
res = '-'.join(string)
print(res)
replace
语法:string.replace(old, new, [count])
var = 'hello hello my motherland'
res = var.replace('hello', '你好')
print(res)
res = var.replace('hello', 'hi', 1)
print(res)
字符串的转义
转义字符的使用
python中的转义字符指的是\ ,它的作用是将本符号之后的字符有意义的变得无意义,无意义的变得有意义。
无意义的字符指的是单纯的就是一个字符串的字符;有意义的字符指的是不是表面上你看到的那个样子,而是另有一层特殊的含义的字符。
主要的转义字符
符号 | 作用 |
---|
\n | 换行(Unix or Linux) | \r\n | 换行(windows) | \t | 缩进 | \r | 将本行后面的所有字符代替本行前面的所有字符 | \b | 退格符,删除一个字符 |
var = 'hello\nmotherland'
print(var)
print()
var = 'hello\r\nmotherland'
print(var)
print()
var = 'hello\tmotherland'
print(var)
print()
var = 'hello\rmotherland'
print(var)
strvar = 'abcde\bfg'
print(strvar)
有一些特殊的路径地址当中会有一些转义字符,但是我们并不希望这些转义字符能够执行,就可以使用原型输出。
var = 'C:\Windows\twain_32'
print(var)
var = 'C:\Windows\\twain_32'
print(var)
var = 'C:\Windows\twain_32'
res = repr(var)
print(res)
'''
在字符产前加上 r 表示这段字符串原型化输出,不再执行字符串内的任何转义字符。
'''
var = r'C:\Windows\twain_32'
print(var)
格式化字符串
在字符串中使用占位符替代某个字符,这样该位置的字符可以随意的替换。
占位符
- %d 整型占位符
- %f 浮点型占位符
- %s 字符串占位符
整型占位符
可以填写整数、小数、布尔值
var = '我有%d块钱' % (100)
print(var)
var = '我有%d块钱' % (100.99)
print(var)
var = '我有%d块钱' % (True)
print(var)
浮点型占位符
和整型一样,可以填写整数、小数、布尔值
var = '我汽车的排量是%fT' % (2.0)
print(var)
var = '我汽车的排量是%fT' % (2)
print(var)
字符串占位符
可以填写任何的python合法类型
var = '我汽车的排量是%sT' % (2.0)
print(var)
var = '我汽车的排量是%sT' % (2)
print(var)
var = '我汽车的排量是%sT' % (True)
print(var)
var = '我的汽车是%s, 花了%d万,占我总资产的%f%%' % ('比亚迪', 50, 0.000001)
print(var)
format函数的使用
format的作用也是格式化字符串,但是比上述的方式更加的强大。
format使用大括号代替占位符,将值作为自己的参数进行传参。
语法:‘string{}{}’.format(value1,value2)
顺序传参
按照占位符和值的顺序一对一的进行传参
var = '{} {}'.format('hello', 'motherland')
print(var)
索引传参
在中括号中填入format参数的索引值,进行传参
var = '{1} {0}'.format('hello', 'motherland')
print(var)
关键字传参
给参数冠以关键字,然后在中括号中填写关键字的名称,关键字根据名称对应的传值。
var = '{msr} {world}'.format(msr='hello', world='motherland')
print(var)
容器类型传参
如果参数是一个容器类型的数据,可以在中括号中填入容器对应的索引值进行传参。
lst = ['hello', 'goodbye']
tup = ('my', 'your')
dit = {'one': 'motherland', 'two': 'world'}
var = '{} {} {}'.format(lst, tup, dit)
print(var)
var = '{[0]} {[0]} {[one]}'.format(lst, tup, dit)
print(var)
填充符号的使用
可以使用填充符号将长度不够的字符串补位
语法:{[关键字参数]:[要填充的字符][原字符串位置]<总字符长度>}
例:{who:*^10}
who : 关键字参数,或者是下标索引
* : 要填充的字符(默认填充空格)
^ : 原字符串的位置(默认靠左)
10 : 总字符长度 = 原字符串长度 + 填充字符长度
var = '{price:-^20}'.format(price='价格')
print(var)
var = '{:*^10}'.format('价格')
print(var)
进制转换符号的使用
- :d 整型占位符
- :f 浮点型占位符
- 😒 字符串占位符
- :, 金钱占位符
var = '我的汽车{:d}万'.format(100)
print(var)
strvar = '我有{:^10d}块钱'.format(100)
print(strvar)
var = '我用{:f}%的资产用来泡妞。'.format(100.00)
print(var)
var = '我用{:.2f}%的资产用来泡妞。'.format(100.00)
print(var)
var = '我的房子在{:s}{:s}'.format('北京', '十八环')
print(var)
var = '我有{:,}元的存款'.format(100000000)
print(var)
|