字符串的定义与操作

  • 字符串就是 一串字符 ,是编程语言中表示文本的数据类型
  • 在Python中使用一对双引号 "" 或者一对单引号来定义.
  • 使用索引获取一个字符串中 指定位置的字符,索引计数从0开始
  • 可以用 for/while 循环遍历字符串中的每一个字符

示例

#双引号
name="zhangsan"
for s in name:
  print(s)


#单引号
name2='zhangsan'
for s in name2:
  print(s)

name3='zhangsan"ddd"'
print(name3)

输出

python 周期函数 python字符串周期_开发语言

字符串常用操作

name="zhangsan"

#统计字符串长度
print(len(name))

#统计 子字符串/字符 出现的次数
print(name.count("an"))
print(name.count("a"))

#查看字符串的索引
print(name.index("an"))

输出结果

python 周期函数 python字符串周期_python 周期函数_02

字符串的类型判断

方法

说明

string.isspace()

如果string中只包含空格,则返回True

string.isalnum()

如果string至少有一个字符并且所有字符都是字母或数字,则返回True

string.isalpha()

如果string至少有一个字符并且所有字符都是字母则返回True

string.isdecimal()

如果string只包含数字,则返回True,全角数字

...

还有很多类似的方法,大家用到时可百度查询相关资料

字符串的查找和替换

方法

说明

string.startswith(str)

检查字符串是否以 str 开头,是则返回True

string.endswith(str)

检查字符串是否以 str 结尾,是则返回True

string.find(str,start=0,end=len(string))

在指定(start,end)的范围内,查找string中是否包含 str ,包含则返回相应的索引,否则返回 -1

string.rfind(str,start=0,end=len(string))

类似find() 函数,不过是从右边开始查找

string.index(str,start=0,end=len(string))

与find() 函数 类似,不过,如果str 不在string中会报错

...

字符串中的转义字符

  • \t 在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐
  • \n 在控制台输出一个 换行符
  • 制表符 的功能是在不使用表格的情况下在 垂直方向 按列对齐文本

转义字符

描述

\\

反斜杠符号

\'

单引号

\"

双引号

\n

换行

\t

横向制表符

\r

回车

注:windows 系统中 \r\n 表示换行; linux 系统中用 \n 表示换行

整体示例

demo1="   "
demo2="zhangsan"
demo3="1233"

#判断是否包含空格
print(demo1.isspace())

#判断是否只包含数字
print(demo2.isdecimal())
print(demo3.isdecimal())

#判断字符的开头
print(demo2.startswith("zha"))

#查找指定字符串
print(demo2.find("gs"))

#转义双引号、回车
print("aaaa\nbbb\rccc\"张三\"")

输出结果:

python 周期函数 python字符串周期_python_03

注:此处可以看到 \r 和 \n 最后输出的虽然都是换行,但在不同的操作系统中是有区别的

  • ‘\r’ (回车):即将光标回到当前行的行首(而不会换到下一行),之后的输出会把之前的输出覆盖
  • ‘\n’ 换行,换到当前位置的下一位置,而不会回到行首;
  • Unix系统里,每行结尾只有“<换行>”,即"\n";
  • Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;
  • Mac系统里,每行结尾是“<回车>”,即"\r";

字符串的转换与对齐

大小写转换

方法

说明

string.capitalize()

把字符串的第一个字符大写

string.title()

把字符串的每个单词首字母大写

string.lower()

转换string 中所有大写字符为小写

string.upper()

转换string中的小写字母为大写

string.swapcase()

翻转string中的大小写

文本对齐

方法

说明

string.ljust(width)

返回一个原字符串左对齐,并使用空格填充至长度 width的新字符串

string.rjust(width)

返回一个原字符串右对齐,并使用空格填充至长度 width的新字符串

string.center(width)

返回一个原字符串居中,并使用空格填充至长度 width的新字符串

去除空白字符

方法

说明

string.lstrip()

截掉 string 左边开始的 空白字符

string.rstrip()

截掉 string 右边开始的 空白字符

string.strip()

截掉 string 左右两边的空白字符

示例

#要求,居中打印古诗,字母转成大写,去除空格
p=["春晓","mhr","春眠不觉晓","   处处闻啼鸟","月来风雨声   ",
"   花落知多少   "]


for s in p:
  #判断是字母则转换
  if s.isalpha():
    print(s.center(10).upper())
  else:
    #去空格,并居中,10表示整行为10个字符,空格填充
    print(s.strip().center(10))

输出结果

python 周期函数 python字符串周期_字符串_04

字符串的拆分、拼接、切片

  • 拆分和连接

方法

说明

string.partition(str)

把字符串 string 分成一个 3元素的元组(str前面,str,str后面)

string.rpartition(str)

类似partition()方法,不过是从右边开始查找

string.split(str)

以stro 为分隔符拆分 string

string.splitlines()

按照行('\r','\n','\r\n')分隔,返回一个包含各行作为元素的列表

string.join(seq)

以string作为分隔符,将seq 中所有的元素,合并为一个新的字符串

示例

demo_str="aaa,bbb,ccc,ddd"
demo_list=["a","b","c"]

#拆分字符串
print(demo_str.split(","))

#合并字符串用 "-" 连接
print("-".join(demo_list))

 

输出结果

python 周期函数 python字符串周期_字符串_05

字符串的切片

  • 切片方法使用于 字符串、列表、元组
  • 切片 使用 索引值 来限定范围,从一个大的字符串中 切出 小的字符串
  • 列表 和 元组 都是 有序 的集合,都能够通过 索引值 获取对应的数据
  • 字典 是一个无序的集合,使用键值对保存数据
  • 使用注意
  • 指定的区间属于 左闭右开 型(开始索引,结束索引) 
  • 开始索引 >= 范围 < 结束索引
  • 从 起始 位置开始,到 结束 位的前一位 结束不包含结束位本身)
  • 从头开始,开始索引 数字可以省略冒号不能省略
  • 到末尾结束,结束索引 数字可以省略,冒号不能省略
  • 步长为 1,如果连续切片,数字和冒号都可以省略

语法

字符串[开始索引:结束索引:步长]

示例

num_str="0123456789"

#截取3~5 位置字符串
print(num_str[3:6])

#截取 4 到末尾的字符串
print(num_str[4:])

#截取开始到 5  位置的字符串
print(num_str[:6])
#或者
print(num_str[0:6])

#截取完整的字符串
print(num_str[:])

#从0开始,每隔一个字符取一个
print(num_str[0::2])

#从末尾开始,每隔一个字符取一个
print(num_str[-1::-2])

#截取末尾的两个字符
print(num_str[-2:])

#反转字符串
print(num_str[::-1])
#或者
print(num_str[-1::-1])

输出结果

python 周期函数 python字符串周期_开发语言_06