python专题字符串操作
一 前言
字符串的操作还是比较重要,知识追寻者在这边做了个学习总结,也就是经常使用到的点,可以说涵盖了字符串大部分的使用方式,足够平时使用;
公众号:知识追寻者
知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)
二 字符串基本操作
2.1 字符串长度
# -*- coding: utf-8 -*-
var = 'zszxz'
print(len(var))
输出
5
2.2 字符串正序
字符串的索引从0开始到长度减1
# -*- coding: utf-8 -*-
var = 'zszxz'
print(var[0])
print(var[4])
输出
z
z
2.3 字符串逆序
字符串的逆序从 -1开始逐渐递减;
# -*- coding: utf-8 -*-
var = 'abcde'
print(var[-1])
print(var[-5])
输出
e
a
2.3 字符串切片
取[0:1] 表示取索引0到索引1的字符串个数(不包括索引1)此时输出a;同理如果是[0:-1],其中-1代表最后一个字符串得位置,此时输出就是abcd
# -*- coding: utf-8 -*-
var = 'abcde'
print(var[0:1])
输出
a
取所有字符串如下
# -*- coding: utf-8 -*-
var = 'abcde'
print(var[:])
输出
abcde
2.4 字符串拼接
使用加号就可以实现字符串拼接
# -*- coding: utf-8 -*-
var = 'abcde'
print(var[:]+'zszxz')
输出
abcdezszxz
2.5 常用转义字符
符号 | 含义 |
---|---|
\ (在行尾时) |
续行符 |
\ | 反斜杠符号 |
\' |
单引号 |
\b | 退格(Backspace) |
\000 | 空 |
\n | 换行 |
\t | 横向制表符 |
\v | 纵向制表符 |
\r | 回车 |
\f | 换页 |
示例制表符默认4个空格
# \t 制表符
print('9999\t888')
输出
9999 888
示例换行
# \n 换行
print("zszxz\n666")
输出
zszxz
666
2.6 字符串重复输出
使用*号乘以次数可以实现字符串重复输出
# -*- coding: utf-8 -*-
var = '知识追寻者'
print(var*2)
输出
知识追寻者知识追寻者
2.7 字符存在性
in 操作,判定子串存在字符串中,存在返回True, 不存在返回False
# -*- coding: utf-8 -*-
var = '知识追寻者'
print('知识'in var)
输出
True
not in 操作,判定子串存在字符串中,存在返回False, 不存在返回True
# -*- coding: utf-8 -*-
var = '知识追寻者'
print('知识' not in var)
2.8 原始字符串
在字符串前面添加 r, 表示原始字符串,意指没有转义的字符串
# -*- coding: utf-8 -*-
var = r'知识追寻者'
print(var)
输出
知识追寻者
2.9 字符串格式化
%c | 格式化字符及其ASCII码 |
---|---|
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
示例
# -*- coding: utf-8 -*-
print(' %s are %s' % ('who','you'))
输出
who are you
其中
%%'输出一个单一的'%'
2.10 三引号
三个引号的字符串可以包含跨行,特殊字符串,比如制表符,单引号,通常用作sql语句和html
# -*- coding: utf-8 -*-
var = """
select * from zszxz
"""
print(var)
输出
select * from zszxz
三 常用函数
3.1 去除空白
# -*- coding: utf-8 -*-
has_black = " zszxz "
# 去除左空白
print(has_black.lstrip())
# 去除右空白
print(has_black.rstrip())
# 去除空白
print(has_black.strip())
输出
zszxz
zszxz
zszxz
3.2 标题
title()会使字符串第一个字母转为大写
# -*- coding: utf-8 -*-
var = "zszxz"
# 去除左空白
print(var.title())
输出
Zszxz
3.3 判定结尾字符
指定范围内判定子串的最后的一个字符串
# -*- coding: utf-8 -*-
var = "zszxz"
# 去除左空白
print(var.endswith('z',2,3))
输出
True
3.4 字符串join
传进一个对象,以指定的分割符拼接对象的子项;
# -*- coding: utf-8 -*-
var = ['z','s','z','x','z']
print('look'.join(var))
输出
zlookslookzlookxlookz
3.5 字符串转大小写
# -*- coding: utf-8 -*-
var = 'zszxz'
#转大写
print(var.upper())
#转小写
print(var.lower())
输出
ZSZXZ
zszxz
3.6 字符串编码解码
# -*- coding: utf-8 -*-
var = '知识追寻者'
# 编码
en = var.encode(encoding='UTF-8')
print(en)
# 解码
print(en.decode('UTF-8'))
输出
b'\xe7\x9f\xa5\xe8\xaf\x86\xe8\xbf\xbd\xe5\xaf\xbb\xe8\x80\x85'
知识追寻者
3.7 字符串替换
将知替换为z 1次;
# -*- coding: utf-8 -*-
var = '知识追寻者'
print(var.replace('知','z',1))
输出
z识追寻者