【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, 而不是排序后的列表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5 文字自动省略,html中把多余文字转化为省略号的实现方法方法

单行文本: .box{width: 200px;background-color: aqua;text-overflow: ellipsis;overflow: hidden;white-space: nowrap; }多行文本 1.利用-webkit-line-clamp属性 .box{width: 200px;overflow : hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-l…

Grammarly安装到word里 2023/10/18

时间:2023/10/18 问题有很多种,我提供一个解决方法,下载对的版本,不要下载 for windows系统(起码我的是不嵌入在word里的),要下载for Microsoft office。官网目前可能在推for windows,所以直接下…

Angular知识点系列(5)-每天10个小知识

目录 41. Angular的路由守卫42. 处理文件的上传和下载43. Angular的动画系统44. 使用第三方库和选择评估45. 性能优化46. AOT和JIT编译47. 处理响应式布局和适配不同屏幕尺寸48. Angular的国际化(i18n)49. Angular的PWA开发50. 使用Angular Material或其…

队列的基本操作以及C语言实现

队列的基本操作: 1.Enqueue:将元素插入队列尾部。 2.Dequeue:从队列头部移除元素。 3.Front:获取队列头部元素。 4.IsEmpty:检查队列是否为空。 5.IsFull:检查队列是否已满。 代码实现: #inclu…

python web开发(四): Bootstrap

1.初步了解 别人已经写好的CSS样式&#xff0c;我们可以直接引用 下载 Link-BootStrap 解压&#xff0c;并放入到当前项目中 引用 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</tit…

day2:Node.js 环境准备

day2&#xff1a;Node.js 环境准备 文章目录 day2&#xff1a;Node.js 环境准备安装 Node.js 和 npm验证 Node.js 和 npm使用淘宝 NPM 镜像npm 包管理器的基本使用**NPM 常用命令**小结 准备一台linux服务器 [rootnode3 ~]# cat /etc/redhat-release CentOS Linux release 7.2.…

wps/word 如何让表格的标题和表格名称文本(表1-1 xxx)跨页显示(已解决)

第一步&#xff1a; 打开wps 创建一个跨页的表格表格&#xff0c;如下图 第二步 大家都知道 表格标题跨页 就是1&#xff09;在菜单表格工具 点击重复标题 或者 2&#xff09;表格属性--》行--》在各页顶端以标题行形式出现&#xff0c;详细如下图。 1&#xff09; 第一…

【APP源码】基于Typecho博客程序开发的博客社区资讯APP源码

全新博客社区资讯APP源码 Typecho后端 一款功能全面&#xff0c;用户交互良好&#xff0c;数据本地缓存&#xff0c;集成邮箱验证&#xff0c;在线投稿&#xff0c;&#xff08;内置Mardown编辑器&#xff09;&#xff0c; 快捷评论的的博客资讯APP。同时兼容H5和微信小程序。 …

提升微服务稳定性与性能:深入剖析Netflix Hystrix框架

说到 Netflix Hystrix 框架&#xff0c;一定离不开 com.netflix.hystrix.HystrixCommand&#xff0c;这个类是 Netflix 开源的 Hystrix 框架中的一个关键类&#xff0c;用于实现服务的容错和熔断功能。它主要用于将远程服务调用封装成一个独立的命令对象&#xff0c;以便于进行…

论坛介绍 | COSCon'23 云计算(C)

众多开源爱好者翘首期盼的开源盛会&#xff1a;第八届中国开源年会&#xff08;COSCon23&#xff09;将于10月28-29日在四川成都市高新区菁蓉汇举办。本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01;各位新老朋友们&#xff0c;欢迎到成都&am…

一些bug总结

今天被几个小问题和bug折磨了一天&#xff0c;来总结一下… 权限问题 用vscode连接服务器&#xff0c;如果是在root用户连接的情况下新建的文件/文件夹&#xff0c;然后切换到别的用户的时候去写的代码 可能会遇到各种问题 解决方案是更改文件或文件夹的所有权。这可以通过使用…

ubuntu 18.04 LTS交叉编译opencv 3.4.16并编译工程[全记录]

一、下载并解压opencv 3.4.16源码 https://opencv.org/releases/ 放到home路径下的Exe文件夹&#xff08;专门放用户安装的软件&#xff09;中&#xff0c;其中build是后期自建的 为了版本控制&#xff0c;保留了3.4.16&#xff0c;并增加了-gcc-arm 二、安装cmake和cmake-g…

微信小程序使用本地存储方法

微信小程序提供了本地存储的方法 wx.setStorageSync() 和 wx.getStorageSync()&#xff0c;可以用 于在用户本地存储数据。 wx.setStorageSync() wx.setStorageSync() 方法用于将数据存储到本地缓存中。该方法是同步的。 wx.setStorageSync(key, data) 参数说明&#xff1a; …

Redis:Feed流之Timeline的实现

当我们关注了用户后&#xff0c;这个用户发了动态&#xff0c;那么我们应该把这些数据推送给用户&#xff0c;这个需求&#xff0c;其实我们又把他叫做Feed流&#xff0c;关注推送也叫做Feed流&#xff0c;直译为投喂。为用户持续的提供“沉浸式”的体验&#xff0c;通过无限下…

5.Vue-在Vue框架中实现Vue的增删改查

题记 在vue框架中实现vue的增删改查&#xff0c;以下是具体操作流程和代码 编写TestView.vue文件 TestView.vue文件如下&#xff1a; <template> <div id"app"> <h1>学生列表</h1> <input type"text" v-model"searchQue…

使用 VS Code 作为 VC++ 6.0 的编辑器

使用 VS Code 作为 VC 6.0 的编辑器 由于一些众所周知的原因&#xff0c;我们不得不使用经典&#xff08;过时&#xff09;的比我们年龄还大的已有 25 年历史的 VC 6.0 来学习 C 语言。而对于现在来说&#xff0c;这个经典的 IDE 过于简陋&#xff0c;并且早已不兼容新的操作系…

KNN算法

文章目录 释义欧氏距离simple——KNNsklearn——KNN 释义 近朱者赤近墨者黑----从训练数据集中找出和待预测样本最接近的K个样本 对于分类问题&#xff0c;我们使用了多数表决法来判断目标对象的类别。 对于回归问题&#xff0c;我们使用了平均值法来判断目标对象的数值 如上…

【YOLO】语义分割和实例分割(四)

0 YOLO系列笔记 【YOLO】朴实无华的yolov5环境配置&#xff08;一&#xff09; 【YOLO】yolov5训练自己的数据集&#xff08;二&#xff09; 【YOLO】目标识别模型的导出和opencv部署&#xff08;三&#xff09; 1 前言 在之前的实践过程中&#xff0c;总结了如何使用YOLOv…

Vue3响应式原理初探

vue3响应式原理初探 为什么要使用proxy取代defineProperty使用proxy如何完成依赖收集呢&#xff1f; 为什么要使用proxy取代defineProperty 原因1&#xff1a;defineproperty无法检测到原本不存在的属性。打个&#x1f330; new Vue({data(){return {name:wxs,age:25}}})在vue…

WuThreat身份安全云-TVD每日漏洞情报-2023-10-13

漏洞名称:libcue <2.2.1 越权访问漏洞 漏洞级别:高危 漏洞编号:CVE-2023-43641,CNNVD-202310-579 相关涉及:系统-alpine_edge-libcue-*-Up to-(excluding)-2.2.1-r0- 漏洞状态:未定义 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-25092 漏洞名称:科大…