> 文章列表 > Python基础-字符串

Python基础-字符串

Python基础-字符串

字符串

字符串常用方法

capitalize方法(将字母串中的首字母大写)

  • 用法:字符串首字母大写

newstr = string.capitalize()

不需要参数

  • 注意:
    • 只有字符串可以使用此方法
    • 只对第一个字母有效
    • 只对字母有效
    • 已经是首字母大写,则无效

casefold与lower(将字符串中的字母全小写)

  • 用法:字符串大写变成小写

newstr = string.casefold()
newstr = string.lower()

  • 参数

不需要参数

  • 注意:

    • 只对字符串中的字母有效
    • 已经是小写了,则无效
  • 区别:

    • casefold可以将更多小语种的单词进行小写

upper方法(将字符串中的字母全大写)

  • 用法:字符串变中的小写字母变大写

newstr = string.upper()

  • 参数

不需要参数

  • 注意:
    • 只对字符串中的字母有效
    • 已经是大写了,则无效

swapcase方法(将字符串中的字母进行大小写转换)

  • 用法:字符串变中的大小写字母进行转换

newstr = string.swapcase()

  • 参数

不需要参数

  • 注意:
    • 只对字符串中的字母有效

zfill方法(定义字符串长度,不足会用0补全)

  • 用法:定义新字符串长度,不足部分会用0补全

newstr = string.zfill(width)

  • 参数

width:希望的新字符串的长度

  • 注意:
    • 与字符串的字符无关
    • 定义的字符串的长度小于当前字符串的长度,不会发生任何变化
    • 定义的字符串的长度大于当前字符串的长度,会在字符串左边用0补全

count方法(返回当前字符串中某个元素的个数)

  • 用法:定义新字符串长度,不足部分会用0补全

newstr = string.count(item)

  • 参数

item:需要查询个数的元素

  • 注意:
    • 查询的成员(元素)不存在时,返回0

startswith和endswith方法(判断字符的开始和结尾是否是某个元素)

  • 用法:判断字符的开始和结束是否是你想要查询的元素,返回一个布尔值

string.startswith(item) -> 返回一个布尔值
string.endswith(item) -> 返回一个布尔值

  • 参数

item:需要查询匹配的元素

  • 注意:
    • 大小写要一致

find和index方法(返回你需要查找的元素的位置)

  • 用法:返回查找元素的位置,find找不到元素返回-1,index找不到元素报错

string.find(item) -> 返回一个整型
string.index(item) -> 返回一个整型或者报错

  • 参数

item:需要查询位置的元素

  • 注意:
    • 字符串的位置是从左向右,从0开始的
    • 会返回找到的第一个元素的位置
    • 如果find找不到元素,会返回-1
    • 如果index找不到元素,会报错

strip方法(去掉左右两边的元素,默认是空格)

  • 用法:去掉字符串左右两边的元素,不传参数默认是去掉空格

newstr = string.strip(item)

  • 参数

item:可选参数,不填默认去掉空格

  • 注意:
    • 传入的元素不在开头或者结尾则无效
    • lstrip 仅去除字符串开头指定的元素或者空格
    • rstrip 仅去除字符串结尾指定的元素或者空格

replace方法(将字符串中的指定元素替换成新元素,并指定替换的数量)

  • 用法:去掉字符串左右两边的元素,不传参数默认是去掉空格

newstr = string.replace(old,new,max)

  • 参数

old:被替换的元素
new:替换old的新元素
max:可选,代表替换几个old元素,默认全部替换

  • 注意:
    • 如果不传max参数,默认会替换字符串中所有

isspace/istitle/isupper/islower方法

  • 用法:
    • isspace: 判断字符串是否仅为空格/返回bool类型
    • istitle: 判断一个字符串是否是标题类型(指由多个单词组成,每个单词的首字母都是大写)/返回bool类型
    • isupper: 判断字符串中的字母是否都是大写
    • islower: 判断字符串中的字母是否都是小写

newstr = string.isspace()
newstr = string.istitle()
newstr = string.isupper()
newstr = string.islower()

  • 参数

不需要参数

  • 注意:
    • 空字符串和只有空格的字符串不一样
    • istitle函数只能用于英文,如果多个单词无空格分隔,当仅有第一个单词的首字母大写,才能返回True
    • isupper和islower只检测字符串中的字母,其他的不做检测

字符串编码格式

编码格式的定义

  • 有一定的规则
  • 通过规则了解到信息的内容

常见的编码格式

  • GBK:中文编码
  • ASCII:英文编码

通用的编码格式

  • utf-8是一种国际通用的编码格式

字符串格式化

什么是字符串格式化

  • 一个固定的字符串中有部分元素是根据变量的值而改变的字符串

根据类型定义的格式化

  • 字符串格式化使用操作符 % 来实现
"my name is %s,my age is %s"%("dewei",33)
  • 左侧有两个字符串格式符%,因此在右侧%()中需要有两个变量

字符串格式化函数-format

  • string.format函数用来格式化字符串
  • 使用format的字符串主体使用{}大括号来替代格式符
  • string.format(data0,data1,data2)

Python-3.6版本新加入的格式化方案-f-strings方法

  • 定义一个变量
  • 字符串之前加f符号
  • 需要格式化的位置使用{变量名}
  • 例子
    • name = "小慕"
    • f'hello {name}'
    • hello 小慕
  • 注意,使用该种方法之后,需要在大括号中传变量名,直接传参会报错

字符串格式化符号

  • 用于对应各种数据类型的格式化符号—格式化符号
符号 说明 备注
%s 格式化字符串,通用类型 一般都支持
%d 格式化整型 格式化浮点类型会自动转换为整型
%f 格式化浮点型 默认六位小数
%u 格式化无符号整型(正整型) 其实仍然支持负整型
%c 格式化字符 支持整型转换成字符,或者单个字符的字符串转换为字符
%o 格式化无符号八进制
%x 格式化无符号16进制数 可以使用int函数,通过int(XXX,16)的方式传入16进制数
%e 格式化科学计数
  • 使用format字符串格式化函数的时候,也可以通过字符串格式化符号进行格式化
    • '{:d}'.format(1)
    • 此处使用:替代字符串格式化符号的%
    • 不支持%u

字符串的特殊字符

  • 字符要转换成其他含义的功能,我们叫他转义字符
  • Python中通过使用\\+字符的方式定义转义字符
符号 说明
\\n 换行,一般用于末尾,strip对其有效
\\t 横向制表符(认为是一个间隔符)
\\v 纵向制表符(会有一个男性符号:)
\\a 响铃
\\b 退格符,将光标前移,覆盖(删除前一个)
\\r 回车
\\f 翻页(几乎不会用到,会出现一个女性符号)
\\' 转义字符串中的单引号
\\" 转义字符串中的双引号
\\\\ 转义斜杠
  • 转义无效符
    • 在python中,在字符串前面加r来将当前字符串的转义字符无效化

字符串的常用运算符及方法

  • a = "Hello" b ="Python"
操作符 描述 实例 结果
+ 字符串连接 print(a + b) HelloPython
* 重复输出字符串 print(a * 2) HelloHello
[] 通过索引获取字符串中字符 print(a[1]) e
in 成员运算符:如果字符串中包含给定的字符返回 True print("H" in a) True
not in 成员运算符:如果字符串中不包含给定的字符返回 True print("M" not in a) True
方法 描述 实例 结果
strip('x') 去掉某个字符串 print(a.strip("o")) Hell
isdigit() 是否全是数字,至少有一个字符 print(a.isdigit()) False
isalnum() 是否全是字母和数字,并至少有一个字符 print(a.isalnum()) True
isalpha() 是否全是字母,并至少有一个字符 print(a.isalpha()) True
center(n,'-') 把字符串放中间,两边用-补齐,最终长度为n print(a.center(9,"*")) Hello