【Python学习笔记】对象、方法
1. 对象方法定义
对象通常都拥有属于自己的 方法(英文叫 method )。
对象的方法其实可以看成是对象所拥有的函数。也就是说 这个方法,是属于这个对象的函数。
调用对象的方法,和调用函数差不多,只要在前面加上 所属对象 和 一个点
比如:
# var1 是一个列表对象
var1 = [1,2,3,4,5,6,7]# 列表对象都有 reverse方法
var1.reverse()
print(var1)
这里, reverse就是列表对象的一个方法,该方法将列表元素倒过来。
var1.reverse()
语句就会将列表变量var1 里面的元素倒过来存放。
运行结果就是 var1就变成了 [7, 6, 5, 4, 3, 2, 1]
- 对象的方法是和这个对象 类型 紧密相关的。
- 对象是什么类型,就决定了对象有哪些方法。
- 字符串有字符串的方法,列表有列表的方法,元组有元组的方法。
2. 字符串的方法
count
count 方法可以返回字符串对象包含了多少个参数指定的字符串
'我们今天不去上学,我们去踢足球'.count('我们') # 返回值 2
find
find 方法 会在字符串中查找参数子字符串,并返回该 参数字符串 在其中 第一个出现的位置索引
str1 = '我们今天不去上学,我们去踢足球'
pos1 = str1.find('我们') # find返回的是第一个 '我们' 的索引 0
如果字符串对象里面 没有
要查找的参数字符串,就会返回 -1
find 方法的第二个参数,用来指定查找字符串范围,比如
str1 = '我们今天不去上学,我们去踢足球'# 第2个参数 5, 表示从 索引 5 的位置开始往后查找
pos1 = str1.find('我们',5) # 返回的是后面 “我们”的索引 9
split
split 是我们常用的方法,经常用来从字符串中 截取 出我们想要的信息。
split 方法以参数字符串为分割符 ,将字符串 切割为多个 字符串,作为元素存入一个列表,并返回这个列表。
看看下面的例子
str1 = '小张:79 | 小李:88 | 小赵:83'
print(str1)
pos1 = str1.split('|')
# 运行结果
$ python main.py
小张:79 | 小李:88 | 小赵:83
['小张:79 ', ' 小李:88 ', ' 小赵:83']
这里 split方法指定用 | 作为源字符串str1的分割符, 这样原来的字符串 就被分成了 3个部分
最后将这个三个字符串存入一个列表中返回。
注意,分隔符本身在切割后,会被丢弃掉,所以切割后的字符串中不会有分隔符。
原来的字符串,被切开后,分隔符前面有的空格字符,会保留下来。
小张
前面没有空格,所以切割后,切割出来的结果就没有空格。
而 小李
和 小赵
前面是有空格的,切割出来的结果就有空格
不一定非要用 竖线分割, 我们可以指定任何其他的分隔符来分割字符串,比如
'小张:79 | 小李:88 | 小赵:83'.split('小赵')
这样就是以 小赵 这个字符串为界 ,分割。返回结果如下
['小张:79 | 小李:88 | ',':83'
]
splitlines
字符串对象还有一个 splitlines
方法也比较常用,就是把字符串 按换行符
进行切割,比如
salary = '''
小王 10000元
小李 20000元
小徐 15000元
'''print(salary.splitlines())
结果输出为
['', '小王 10000元', '小李 20000元', '小徐 15000元']
这样每行内容作为列表的一个元素。
splitlines 方法经常用在文件处理中,读出文件内容存入字符串,然后调用字符串的 splitlines方法,把每行内容依次存入列表。
随后循环遍历列表,就可以逐行分析文件内容了。
join
join 方法和 split方法正好相反
join 是将列表中的字符串元素以某字符串为连接符, 连接 为一个字符串
比如
'|'.join(['小张:79 ',' 小李:88 ',' 小赵:83'
])
返回的就是字符串 小张:79 | 小李:88 | 小赵:83
。
相当于把参数列表里面的字符串连接在一起, 中间加上指定的连接符 |
strip 、 lstrip 、 rstrip
strip方法可以将 字符串前面和后面的空格删除,但是不会删除字符串中间的空格
比如
' 小 李:88 '.strip()
# 返回的就是 '小 李:88',去掉了前后的空格,但是中间的空格不会去掉
lstrip方法 将 字符串前面 (左边) 的空格删除,但是不会删除字符串中间和右边的空格
比如
' 小 李:88 '.lstrip()
# 返回的就是 '小 李:88 '
rstrip方法 将 字符串后面 (右边) 的空格删除,但是不会删除字符串中间和左边的空格
比如
' 小 李:88 '.rstrip()
返回的就是 ' 小 李:88'
replace
replace 也是常用的方法,用来 替换 字符串里面 所有指定的子字符串为另一个字符串
比如
str1 = '我们今天不去上学,我们去踢足球'
str1 = str1.replace('我们', '他们')
上面的replace方法就会把字符串中所有的我们,替换成他们
结果就是 '他们今天不去上学,他们踢足球'
startswith 和 endswith
startswith 方法检查字符串是否以参数指定的字符串 开头,如果是,返回True,否则返回False
endswith 方法检查字符串是否以指定的字符串 结尾,如果是,返回True,否则返回False
str1 = '我们今天不去上学,我们去踢足球'
str1.startswith('我们') # 返回 True
str1.endswith('我们') # 返回 False
isdigit
isdigit 方法检查字符串是否全部由数字构成,如果是,返回True,否则返回False
比如,可以通过 isdigit 判断用户输入的电话号码是否全部是数字字符
str1 = input('请输入手机号码:')
if not str1.isdigit(): # 不是全部由数字字符构成print('您输入的手机号码不正确,必须全部是数字')
字符串的倒序
要得到一个字符串的 倒序字符串,只需要使用切片操作 [::-1]
::
表示切片字符串的从头到尾,也就是全部内容, 而 步长 为 -1 表示,颠倒过来取元素
如下,
str1 = '123456789'
reverse = str1[::-1]
print(str1)
print(reverse)
# 运行结果
$ python main.py
123456789
987654321
3. 列表的方法
append
在列表的后面添加一个元素。
比如
a = [1, 2, 3.14, 'hello']
# append 之后,a就变成了 [1, 2, 3.14, 'hello', '你好']
a.append('你好')
print(a)# 继续append ,a就变成了 [1, 2, 3.14, 'hello', '你好', [7,8]]
a.append([7,8])
print(a)
注意,append 方法的返回值是 None,而不是新的列表对象。
insert
如果我们 不是要在后面 添加一个元素, 而是在 指定位置插入一个元素,就可以使用insert方法
比如
a = [1, 2, 3.14, 'python'] # 插入到索引0的位置,也是插到第1个元素的位置上
# a列表内容就变成了 ['你好', 1, 2, 3.14, 'python']
a.insert(0, '你好')
print(a)# 插入到索引2的位置,也是插到第3个元素的位置上
# a列表内容就变成了 ['你好', 1, 'rrr', 2, 3.14, 'python']
a.insert(2, 'rrr')
print(a)
同样的,insert方法的返回值也是 None
pop
如果我们要从列表 取出并删除 一个元素,就可以使用pop方法。
该方法的参数就是要取出的元素的索引
注意,取出后,该元素就从列表中删除了。所以pop也经常用来删除某个元素
比如
a = [1, 2, 3.14, 'python'] # 取出索引为3 的元素,也就是第4个元素
poped = a.pop(3)# 取出后,a列表对象内容就变成了 [ 1, 2, 3.14]
print(a)# 而取出的元素赋值给变量poped, poped的内容就是 'python'
print(poped)
pop 方法的返回值是提取出来的元素
remove
remove方法也是删除列表元素。
pop方法的参数是要删除元素的 索引,
而 remove方法的参数就是要删除元素的 值。
remove从第1个元素开始,寻找 和参数对象 相等的元素,如果找到了,就删除。
找到后,不会继续往后寻找其它相等的元素。
也就是说remove 最多只会删除1个元素。
比如
var1 = ['a','b','c','a']
var1.remove('a')
print(var1)
运行结果 var1就变成了 [‘b’, ‘c’, ‘a’]。
可以发现,只删除了第一元素’a’, 最后的 ‘a’ 并么有删除。
同样的,remove 方法的返回值也是 None
reverse
reverse方法将列表元素倒过来
var1 = [1,2,3,4,5,6,7]
var1.reverse()
print(var1)
运行结果 var1就变成了 [7, 6, 5, 4, 3, 2, 1]
同样的, reverse 方法的返回值也是 None
index
index 方法返回 参数对象 在列表 中的位置,也就是索引
var1 = [1,2,3,4,5,6,7]
idx = var1.index(5)
print(idx)
运行后,发现idx的值为4 , 也就是说 5这个元素在列表 var1 中 索引为4
sort
可以使用 sort 方法对列表进行排序。
调用sort 方法的列表中的元素通常都是 数字 或者 字符串。如下
students = ['Alex','Tom','Jerry','Michale','Alex']
students.sort()
print(f'after sort: {students}')numbers = [7,3,8,2,9]
numbers.sort()
print(f'after sort: {numbers}')
输出如下
after sort: ['Alex', 'Alex', 'Jerry', 'Michale', 'Tom']
after sort: [2, 3, 7, 8, 9]
注意: 调用过 sort 方法后,列表中的内容就改变了。
sort方法的返回值是None,所以不要写这样的代码
numbers = [7,3,8,2,9]
numbers2 = numbers.sort()
print(numbers2)
这样 numbers2 的值是None, 而不是排序后的列表
相关文章:
【Python学习笔记】对象、方法
1. 对象方法定义 对象通常都拥有属于自己的 方法(英文叫 method )。 对象的方法其实可以看成是对象所拥有的函数。也就是说 这个方法,是属于这个对象的函数。 调用对象的方法,和调用函数差不多,只要在前面加上 所属…...

企业IT资产设备折旧残值如何计算
环境: 企业/公司 IT资产 问题描述: 企业IT设备折旧残值如何计算? 解决方案: 1.按三年折旧 净值原值-月折旧额折旧月份 , 月折旧额原值(1-3%)/36 折旧月份ROUND(E2*(1-3%)/36,2) 2.净值E2-F2*G2...
Linux性能优化--性能工具:下一步是什么
13.0 概述 本章是对一些事情的思索,包括:Linux性能工具的当前状态,哪些仍需要改进以及为什么Linux是当前一个相当不错的进行性能调查的平台。 阅读本章后,你将能够: 了解Linux性能工具箱的漏洞,以及一些理…...

网工内推 | IT主管、高级网工,上市公司,必须持有HCIE认证
01 深圳市飞荣达科技股份有限公司 招聘岗位:高级网络工程师 职责描述: 1. 参与、负责集团公司IT基础技术架构的规划设计、实施及维护、性能优化,包括数据中心机房、网络架构、虚拟化平台、信息安全设备及灾备系统等; 2. 负责集团…...

bulldog 靶机
bulldog 信息搜集 存活检测 详细扫描 后台网页扫描 网页信息搜集 正在开发的如果你正在读这篇文章,你很可能是Bulldog Industries的承包商。恭喜你!我是你们的新老板,组长艾伦布鲁克。CEO解雇了整个开发团队和员工。因此,我们需要迅速招到一…...

如何借助边缘智能网关打造智慧城市便民驿站
智慧城市驿站是一类提供多样化便利服务的新型智能公共设施,通过融合物联网技术、边缘智能技术、新能源技术等,为城市居民整合提供休闲、购物、卫生、广告、安全等公共服务,进一步提升日常生活体验。本篇就为大家介绍如何基于边缘智能网关&…...

谈谈电商App的压测
背景 最近恰逢双十一,大大小小的电商app在双十一之前都会做一次压测,曾经在小公司工作的时候很想知道大公司是如何压测的,有什么高深的压测工具没,本文就来揭露一下 压测真相 在确认使用什么压测工具进行压测之前,我…...
VsCode修改侧边栏字体大小——用缩放的方法
缩放界面字体百分比(包括编辑器界面) 如果只修改文本编辑区的字体大小,可以在File -> Preferences -> Settings 中修改font的大小。但是侧边栏的字体不会改变,所以可以使用缩放的方法先修改整个界面的字体大小,…...

基于Java的农资采购销售管理系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…...

【AIGC核心技术剖析】扩大富有表现力的人体姿势和形状估计SMPLer-X模型
富有表现力的人体姿势和形状估计 (EHPS) 将身体、手和面部运动捕捉与众多应用结合起来。尽管取得了令人鼓舞的进展,但当前最先进的方法仍然在很大程度上依赖于有限的训练数据集。在这项工作中,我们研究了将 EHPS 扩展到第一个通用基础模型(称为 SMPLer-X),以 ViT-Huge 作为…...

【C++面向对象】1. 类、对象
文章目录 【 1. 类 & 对象的定义 】1.1 类的定义1.2 对象的定义 【 2. 类的成员 】2.1 数据成员2.2 成员函数类的内部定义成员函数类的外部定义成员函数成员函数的访问实例 【 3. 类的访问修饰符 】3.1 public 公有成员3.2 private 私有成员3.3 protected 保护成员3.4 继承…...

PAM从入门到精通(十三)
接前一篇文章:PAM从入门到精通(十二) 本文参考: 《The Linux-PAM Application Developers Guide》 先再来重温一下PAM系统架构: 更加形象的形式: 五、主要函数详解 11. pam_open_session 概述&…...

Stable Diffusion WebUI几种解决手崩溃的方法
1. 添加与手相关负面提示词 如何提价提示词呢? 首先有一个embeddings模型文件bad-hands-5,我们可以去各个大模型网站去搜,我是在C站上面下载的。 附上C站地址:https://civitai.com/ 下载好之后,你需要将文件放入stable-diffusion-webui\embeddings目录中。位置如下所示…...

kr 第三阶段(一)16 位汇编
为什么要学习 16 位汇编? 16 位汇编包含了大部分 32 位汇编的知识点。有助于在学习内核的两种模式。 实模式:访问真实的物理内存保护模式:访问虚拟内存 有助于提升调试能力,调试命令与 OllyDbg 和 WinDebug 通用。可以学习实现反…...

power point导出pdf保留字体
在 slides 中用到非自带的字体,如 [1],想导出成 pdf 文件(因为导出成图,如 png,放大会蒙),并在别人电脑里也保留字体。除了让别人也装上相应字体,可以: 参考 [2]&#x…...

云务器迁移(腾讯云>华为云)
自己平时除了写些bug外还喜欢玩玩服务器,这不前几年买了一个域名,当时服务器买的是阿里云的,想着域名备案挺麻烦的就一直用着,只是在服务器到期后会重新购买其他运营商的(关键是续不起🤫) 这不最…...
[USACO11MAR] Brownie Slicing G题解(二分+二维前缀和+矩阵分割)
[USACO11MAR] Brownie Slicing G 题目地址 P3017 [USACO11MAR] Brownie Slicing G 思路 二分最大化最小值 切割思路: 一行一行进行切割,如果这一行可以切割出b块大于等于mid的块,就开始切割下一行 如果无法切割出b块,就把正在…...

【每日一题】—— B. Arrays Sum (Grakn Forces 2020)
🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日一题 💌其他专栏: 🔴 每日反刍 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓称…...
XTU-OJ 1328-数码和
题目描述 一个10进制数n在2∼16进制下可以得到的不同的数码和,求在这些数码和中出现次数最多的数码和。 比如20, 进制2345678910111213141516数码10100202110403226242220191817161514数码和2424586421098765 其中数码和2和4分别出现了3次,为…...

混入组件 (mixin)
1 什么是混入以及作用 *混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。作用:主要作用是继承和封装…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...