Python从零开始入门 - P4 字符串及其相关操作

本文介绍了Python中的字符串类型、基本输入输出、访问字符串元素、字符串运算符、内建函数如检测子串、替换、计数、切割、大小写转换以及首尾处理,包括转义字符的使用。
摘要由CSDN通过智能技术生成

10. 字符串

字符串是一种表示文本数据的类型,使用单引号 'xx' 双引号 "xx" 括起来表示文本数据,但是注意同一类型的引号对应使用,而不要单、双引号混用。

此外,区别于其他语言,Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

10.1 字符串的输入和输出

Python 一般字符串的输出使用 print( ) 函数完成,输出字符串型的变量时可以使用 %s 占位。

Python 提供了 input( ) 函数从标准输入读取一行文本,默认的标准输入是键盘。

string1 = "我是一段字符串"
string2 = input("请输入一段字符串:")
# string3 = "我是一段字符串'   -> 单、双引号混用
print("string1 = " + string1)
print("string2 = %s" % string2)

10.2 访问字符串中的值

字符串的访问通过下标完成,每个字符都对应一个下标,编号从0开始

支持对字符串进行切片提取,格式为:[起始:结束:步长],属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。

string = "abcdefg"
print(string[0])       # 输出结果为:a
print(string[3:5])     # 输出结果为:de

10.3 字符串运算符

操作符

描述

实例

+

将两个字符串首尾连接成一个字符串

string = string1 + string2

*

将一个字符串重复若干次,首尾连接成一个字符串

string = string1* n

in

如果字符串中包含给定的字符串,返回True

"a" in string

not in

如果字符串中不包含给定字符串,返回True

"a" not in string


10.4 字符串内建函数

10.4.1 检测字符串是否包含子字符串

检测字符串中是否包含特定的子字符串,一般有以下两种方法:

  • find( ) 函数一般格式为:string.find(sub, start, end)如果包含则返回索引,反之返回-1

  • index( ) 函数一般格式为:string.index(sub, start, end)如果包含则返回索引,反之直接报错

相关参数如下:

必填参数:① sub -> 指定检索的子字符串;

可选参数:② start -> 开始检索的索引,默认为0;③ end -> 结束检索的索引,默认为字符串的长度。

string = "abcdefg"
string.find("abc", 0, len(string))     # 0
string.find("bc")                      # 1
string.index("efg", 0, len(string))    # 4
string.find("cba", 0, len(string))     # -1
# string.index("cba", 0, len(string)   # 报错

10.4.2 字符串替换

replace( ) 函数:将字符串中的子字符串(旧)替换为新字符串,返回一个副本,原字符串不变,一般格式为:string.replace(old, new, count),相关参数如下:

必填参数:① old -> 将被替换的字符串;② new -> 新字符串,用于替换 old 字符串;

可选参数:③ count -> 替换不超过 count 次,默认为-1(全部替换)。

string = "abc defg abc"
string2 = string.replace("abc", "666")
string3 = string.replace("abc", "666", 1)
print("string={}, string2={}, string3={}".format(string, string2, string3))
# string=abc defg abc, string2=666 defg 666, string3=666 defg abc

10.4.3 统计子字符串出现的次数

count( ) 函数:统计字符串中某个子字符串出现的次数,一般格式为:string.count(sub, start, end=len),相关参数如下:

必填参数:① sub -> 指定检索的子字符串;

可选参数:② start -> 开始检索的索引,默认为0;③ end -> 结束检索的索引,默认为字符串的长度。

string = "abcdefgabc"
print(string.count("abc"))  # 2
print(string.count("cba"))  # 0

10.4.4 字符串切割

split( ) 函数:通过指定分隔符对字符串进行切片,返回值为切割后的子字符串列表,一般格式为:string.split(sep, maxsplit),相关参数如下:

必填参数:① sep -> 指定的分隔符,字符串格式;

可选参数:② maxsplit -> 替换不超过 maxsplit 次,默认为-1(全部替换)。

string = "a-bc-def-g"
substring = string.split("-")
substring2 = string.split("-", 1)
print(substring)   # ['a', 'bc', 'def', 'g']
print(substring2)  # ['a', 'bc-def-g']

10.4.5 字符串大小写转换

Python 中提供了多种函数对字符串进行大小写转换,返回一个副本,原字符串不变详细如下:

  • upper( ) 函数所有字母大写,一般格式为:string.upper( )

  • lower( ) 函数所有字母小写,一般格式为:string.lower( )

  • capitalize( ) 函数首字母大写,其他字母小写,一般格式为:string.capitalize( )

  • title( ) 函数每个单词首字母大写,其他小写,一般格式为:string.title( )

string_low = "my name is john"
string_up = "My Name Is JOHN"

string1 = string_low.upper()
string2 = string_up.lower()
string3 = string_low.capitalize()
string4 = string_low.title()

print("string_low={}, string_up={}".format(string_low, string_up))  # string_low=my name is john, string_up=My Name Is JOHN
print("string1={}, string2={}".format(string1, string2))            # string1=MY NAME IS JOHN, string2=my name is john
print("string3={}, string4={}".format(string3, string4))            # string3=My name is john, string4=My Name Is John

如何理解计算机中的大小写字母的相互转化?

计算机中字母都是通过 ASCII码 存储

在 ASCII码 中,小写字母的值总是比大写字母的值大32

例如:大写字母A的 ASCII码 为65,b为66,小写字母a的 ASCII码 为97,b为98


10.4.6 字符串首尾处理

应用场景中常需要对字符串的首尾进行处理,包括检查数据内容,截掉指定内容等等,一般有以下几种方法:

  • startswith( ) 函数:检查字符串是否以指定字符串开头,返回值为 bool 变量,True 或 False,一般格式为:string.startswith( )

  • endswith( ) 函数:检查字符串是否以指定字符串结尾,返回值为 bool 变量,True 或 False,一般格式为:string.endswith( )

  • strip( ) 函数截掉字符串首尾的指定字符,返回一个副本,原字符串不变,一般格式为:string.strip( )

  • lstrip( ) 函数截掉字符串头部(左边)的指定字符,返回一个副本,原字符串不变,一般格式为:string.lstrip( )

  • rstrip( ) 函数截掉字符串尾部(右边)的指定字符,返回一个副本,原字符串不变,一般格式为:string.rstrip( )

string = "abcdefgabc"

print(string.startswith("ab"))  # True
print(string.endswith("ab"))    # False

string1 = string.strip("abc")
string2 = string.lstrip("abc")
string3 = string.rstrip("abc")
print("string={}".format(string))    # string=abcdefgabc
print("string1={}".format(string1))  # string1=defg
print("string2={}".format(string2))  # string2=defgabc
print("string3={}".format(string3))  # string3=abcdefg

10.5 转义字符

在输出字符串时,对于单引号或者双引号这些特殊的符号,一般都有特殊的含义。

如果需要输出这些符号,可以对它们进行转义,一般使用“反斜杠+转义字符”的格式进行输出,常见的转义字符如下表所示:

转义字符

代表含义

转义字符

代表含义

\(在行尾时)

反斜杠符号

\\

反斜杠符号

\'

单引号

\"

双引号

\n

换行

\t

横向制表符

\b

退格

\a

响铃

print("It\'s an apple")         # It's an apple
print("apple\tbanana\torange")  # apple	banana	orange

下一篇:Python从零开始入门 - P5 函数与模块

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习GIS的小黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值