《Python语言程序设计》第八章学习笔记

本文详细介绍了Python中字符串的创建、处理函数、下标与截取、连接与复制、字符查找与替换、格式化以及运算符重载等特性,强调了字符串的不可变性,并列举了相关方法和例子。

《Python语言程序设计》学习笔记

笔记选自《Python语言程序设计》[美]梁勇 著
本篇笔记没有记录用python绘画的turtle库


第8章 更多字符串和特殊方法

  • 创建字符串
s1=str()
s2=str("Welcome")
# Python提供了简单语法,通过使用字符串值创建一个字符串
s1=""
s2="Welcom"

一个str对象是不可变的:一旦创建一个字符串对象出来,那么它的内容就不会再改变。
Python使用一个对象来表示具有相同内容的字符串,这对所有不可变对象都是一样的,例如:int是一种不可变类。两个具有相同值的int对象实际上是共享了相同的对象。
在这里插入图片描述

  • 处理字符串的函数
    len(s) 返回一个字符串中的字符个数
    max(s)min(s) 分别返回字符串s中ASCII码最大和最小的字符

  • 下标运算符[]
    s[index]下标是基于0的,index范围是0到len(s)-1
    允许用负数作为下标,它表示相对于字符串末尾字符的位置,确切的位置是通过负数下标和字符串长度相加来获取,s[-1]s[-1+len(s)]一样,都是字符串的最后一个字符。
    字符串是不可变的,不能s[2]='A'

  • 截取运算符[start:end]
    通过使用语法s[start:end]返回字符串其中的一段,这一段是从下标start到end-1的一个子串。
    起始下标或结束下标可以被忽略,默认起始下标是0,结束下标是最后一个下标。

s="Welcome"
s[ :6] # 返回Welcom
  • 连接字符串 +

  • 复制字符串 *
    s="a"*3 则s为"aaa"

  • innot in运算符
    使用innot in操作来测试一个字符串是否在另一个字符串中,返回一个布尔值。

  • 比较字符串:
    可以使用比较运算符来对字符串进行比较(==、!=、>、<、>=、<=)按字典序比较

  • 迭代字符串:
    字符串是可迭代的,可以使用for循环来顺序遍历字符串中所有字符

for ch in s:
  print(ch)
# 以不同顺序遍历,那么你仍然必须使用下标
for i in range(0,len(s),2):
  print(s[i])
  • 测试字符串
方法解释
isalnum():bool如果这个字符串中的字符是字母数字且至少有一个字符则返回True
isalpha():bool如果这个字符串中的字符是字母且至少有一个字符则返回True
isdigit():bool如果这个字符串中只含有数字字符则返回True
isidentifier():bool如果这个字符串是Python标识符则返回True
islower():bool这个字符串中所有字符全是小写且至少有一个字符则返回True
isupper():bool这个字符串中的所有字符全是大写且至少有一个字符则返回True
isspace():bool如果这个字符串中只包含空格则返回True
"2012".isdigit() # 返回True
  • 搜索子串
方法解释
endWith(s1:str):bool如果字符串是以子串s1结尾则返回True
startWith(s1:str):bool如果字符串是以子串s1开始则返回True
find(s1):int返回s1在这个字符串的最低下标,不存在则返回-1
rfind(s1):int返回s1在这个字符串的最高下标,不存在则返回-1
count(substring):int返回这个子串在字符串中出现的无覆盖的次数
  • 转换字符串:使用以下方法复制字符串,可以控制字符串复制过程中字母的大小写
方法解释
capitalize():str返回这个复制的字符串并只大写第一个字符
lower():str返回这个复制的字符串并将所有字母转换为小写
upper():str返回这个复制的字符串并将所有字母转换为大写
title():str返回这个复制的字符串并大写每个单词的首字母
swapcase():str返回这个复制的字符串,将小写字母转换成大写
replace(old, new):str返回一个新的字符串,它用一个new字符串替换s中所有出现old字符串的地方

如前所述,字符串是不可变的。str类中没有方法能改变字符串的内容,这些方法都是创建了新的字符串。

  • 删除字符串中的空格
方法解释
lstrip():str返回去掉前端空白字符的字符串
rstrip():str返回去掉末端空白字符的字符串
strip():str返回去掉两端空白字符的字符串

在输入字符串上应用strip()方法来确保删除输入的末尾任何不需要的字符。

  • 格式化字符串
方法解释
center(width):str返回在给定宽度域上居中的字符串副本
ljust(width):str返回在给定宽度域上左对齐的字符串文本
rjust(width):str返回在给定宽度域上右对齐的字符串文本
format(items):str格式化字符串
  • 运算符重载和特殊方法
    Python允许为运算符和函数定义特殊的方法来实现常用的操作。
运算符方法描述
+__add__(self, other)加法
*__mul__(self, other)乘法
-__sub__(self, other)减法
/__truediv__(self, other)除法
%__mod__(self, other)求余
<__lt__(self, other)小于
<=__le__(self, other)小于等于
==__eq__(self, other)等于
!=__ne__(self, other)不等于
>__gt__(self, other)大于
>=__ge__(self, other)大于等于
[index]__getitem__(self, index)下标运算符
in__contains__(self, index)检查其成员资格
len__len__(self)元素个数
str__str__(self)字符串表示

s1.__getitem__(0)s1[0]相同

  • 比较运算符(==、!=、<、<=、>、>=)也可以通过使用方法__cmp__(self, other)来实现。对于两个对象a和b,如果__lt__可用的话,那么a<b就调用a.__lt__(b)。如果不行的话就调用__cmp__方法来决定顺序。

在这里插入图片描述

本章总结

  1. 字符串对象是不可变的,不可以改变它的内容。
  2. 可以使用Python函数lenminmax来返回字符串的长度、最大元素和最小元素。
  3. 可以使用下标运算符[]来指向字符串中的一个单独的字符。
  4. 可以使用连接运算符+来连接两个字符串,使用复制运算符*来复制一个字符串多次,使用截取运算符[: ]来获取子串,而使用运算符innot in来判断一个字符是否在一个字符串中。
  5. 使用比较运算符(==!=<<=>>=)比较两个字符串。
  6. 使用for循环迭代字符串中的所有字符。
  7. 可以在字符串对象上使用像endswithstartswithisalphaislowerisupperlowerupperfindcountreplacestrip这样的函数。
  8. 可以为重载操作定义特殊方法。

关键术语

英文中文
concatenation operator连接运算符
index operator下标运算符
repetition operator复制运算符
iterable可迭代的
operator overloading运算符重载
slicing operator截取运算符
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值