python入门完结篇(6)

news2025/1/17 1:16:51

插入: 1.使用append的方法,使用append往列表末尾新增一个元素。此处的append的是搭配列表对象来使用的,而不是作为一个独立的函数.

而 type print input len自定义函数都是独立的函数,不用搭配任何对象. 而这种需要搭配对象(变量)使用的函数(function)也叫做方法(mothod)

2.使用insert方法往列表的任意位置后来新增元素 insert(指定位置, 元素)

查找:1.用in来判定某个元素是否在列表中存在,存在即True,不存在即为False(元素 in 列表   也可以逻辑取反   元素  not in  列表)

2.使用index方法,来判定当前元素在列表中的位置,得到一个下标,(对象.index(查找的元素))若出现找不到的情况,会抛出异常

删除:1.使用pop(),删除列表中的最末尾元素.

2.使用pop还能删除任意位置的元素,pop的参数可以传一个下标过去  对象.pop(下标)

3.使用remove方法,可以按照值来删除  对象.remove(元素)

连续列表:1.将多个列表连续在一起用+针对两个列表拼接,只是针对当前列表的内容来生成一个更大的新的列表,原有的列表内容不变.

2.使用extend来进行拼接,这个拼接是把后一个列表的内容拼接到前一个列表里面里头来,会改变前一个列表的值.而且不需要单独创建一个接收变量.前一个列表.extend(后一个列表)

3.使用+=来进行拼接,但其实本质上是a=a+b浪费了很多资源,如回收和拷贝构造的时间和空间,且多了三个步骤,第1个是开一个新的大的列表,第2个是将新的大的列表覆盖原有的列表,第3个是要释放原有列表的旧值。

元组:1.创建元组,元祖的类型是tuple

元组和列表的相似体现在:

1.通过下标来访问元组中的元素下标可以从0开始到len-1结束

2.通过切片来获取元组中的一个部分

3.也可同时使用for循环等方式遍历元素

4.可以使用in判断元素是否存在

5.使用index查找元素下标。

6.使用+来拼接两个元组。

但注意:无修改类操作。(例如删除增加等)

当进行多元赋值的时候,其实本质上是元组的方式进行的。

当进行协同开发的时候,程序员a写实现了一些功能提供给程序员b来使用,a写好一些参数,让b去调用,函数要进行传参,以元组的形式传参,可以有效地避免被篡改。

元组不能修改它,为不可变对象。

不可变对象一般是可以哈希的,可变对象是一般不能进行哈希。(可变对象主要是字典、列表因为它们元素可以进行随意改变)(不可变对象主要是指int    float   string等)

字典:储存一种键值对的结构。

键值对:计算机的非常非常的重要的一种概念。

键(key)值(value) 根据键key可以快速找到value(本质其实是一种映射的关系)

在Python的字典中可以同时包含很多键值对,但要求这些键不能重复。键值对形式{key:value ,  key:value…}字典中的key和value的类型不一定都一样,字典对于key是什么类型有约束,但对于value是什么类型无约束.一般没写一行,因为不直观,一般写成这样多行更直观,最后一个键值对的逗号可有可无。 

在字典中查找有两种方式:1.可以用in来判断某个key是否在字典中存在  2.使用这个[]来根据key来获取value

对于字典来说使用in或者[]来获取value都是非常高效的.

对于列表来说用in比较低效因为要全部遍历,而使用[]是比较高效的.

在字典中新增键值对的方式:在字典中新增元素用[]来进行,例:对象[key]=value. 如果key不存在往里写,相当于新增键值对,如果key存在往里写,相当于根据key修改value.

删除:使用pop方法,根据key来删除键值对,对字典的各种操作都是围绕key来进行的.

字典被设计出的初衷不是为了遍历,而是为了增删查改,时间复杂度O(1),增删查改都是固定时间,不会因为元素多了而操作就慢了。

字典是哈希表进行增删查改操作的效率非常高,而字典的遍历则效率差一些。

遍历:1.用for循环,来遍历字典.在Python中能够保证遍历的顺序和插入的顺序保持一致

2.使用keys()、values()、items()(分别表示所有的key,所有的value,所有的键值对)

key类型的约束:不是所有类型都可以作为字典的key,因为字典本质为哈希表而表中key要求可哈希的,也就是可以计算出一个哈希值,刚好Python有一个内联函数哈希hash可以计算函数哈希值,注意字典dict和列表list是不可哈希的.

字典和列表、元组是Python当中非常常见的内置类型,相比于int string float,它们内部可以包含很多元素,所以被称之为"容器和集合类"

文件操作:   CPU 储存器  输入设备,输出设备储存器当中又有内存和硬盘之分,内存,变量就是在内存中.  文件和数据就是在硬盘中.  一般的操作流程是先打开文件,读文件,写文件,后关闭文件.打开文件操作当中有一个内联函数open('路径 ', '进行的操作 ','若是写读的操作,则这里是编译的方式encoding,若不写则默认为编译方式为utf8 ')内联函数open的返回值是文件类型变量,因为文件的内容是在硬盘上的,此处文件对象是在内存上的一个变量,后续文件操作都是拿着这个文件对象进行操作的,此处的文件对象就像一个遥控器一样专业的术语叫做句柄handle.常见的进行操作,有' r'读   ' w'写(这个显示把原有文件里面的内容全部清空,然后再写),但这个'a '写  (这个写是在原有文件内容的末尾)   关闭文件使用close  形式:对象.close()

每个程序在启动的时候都会默认打开三个文件:1.标准输入(体现在键盘)2.标准输出(体现在显示器)3.标准错误(体现在显示器)

文件资源泄露其实是一个很重要的问题.  因为文件使用完之后一定要关闭,打开文件其实是在申请一定的系统资源,  不再使用文件的时候,资源应及时释放,否则就可能造成文件资源的泄漏, 进一步导致其他大部分的代码无法顺利打开,正是因为一个系统的资源是有限的,因此一个程序能打开的文件个数也是有限的.

python当中有一个很重要的机制,垃圾回收机制GC  自动的将不使用的变量给释放掉.

虽然Python给了我们一个后手,让我们一定程度的避免了上述问题,但是也不能完全依赖自动释放机制,因为制动释放机制不一定及时,它需要判定是否为垃圾,那这需要以一定时间周期,如果在这周期内我就直接打开了所有文件,导致文件泄露了,所以不应该完全依赖他,而应该有关闭文件操作的意识。

讲讲具体操作,:1.先打开open('路径 ','w或者a')取决于之前它们俩的区别  2.变量.write('内容 ') 3.变量.close()如果文件对象已经关闭了,那就意味着系统和该文件相关的内存资源已经释放了,若强行写则会抛异常.

:1.先打开open('路径',' r')2.变量.read(数字)这个数字表示多少数字的字符(不是字节哦)注意中文和英文相似,在计算机中都是使用数字来表示字符的, 哪个数字对应哪个汉字常见的版本有:GBK  UTF8这两种编码方式.在哪里看呢?在文本记事本右下角有编码方式,如果没有的话,那就从菜单,选择文件,选择另存于就可以看到编码方式了. 读的编码方式,应与文件的编码方式一致.系统默认编码方式为GBK,UTF8是比GBK使用更广泛的编码方式.上述已经讲了如何对编码方式进行更改 也就是主动调下open的第3个参数encoding=' UTF8'这个也就是关键字参数.而open的前两个参数表示在什么路径下进行怎样的操作,这就是位置参数

2.更常见的需求是按行来读取的,最简单的办法直接for循环.for 变量 in 对象.注意打印的函数print,在末尾会自带一个斜杠n,若不想要它自带的斜杠,则可以自己设定想要末尾是什么,通过print(   ,end=' 自定义')这也就是一个关键字参数。而文本记事本中也会每行的末尾也会自带一个斜杠n.

3.还可以使用readlines方法,直接把整个文件所有内容都读出来,按照行组织的一个列表里

注意我上述所有说的方法,一定要记住这里的方法并不是语文上的方法,而是计算机里面的方法,这是要明确说明对象才能使用的。

上下文管理器:为防止未释放资源,而系统自带帮忙释放。体现在当with对应的代码块结束,就会执行对象的关闭。with open(跟上述一样   )as  对象:会自动帮对象释放资源,所以以后直接用with搭配open来打开文件.

终于终于,Python入门完全结束.很多方面也讲得很详细,各个原因也讲清楚了.真诚的希望各位把本人主页上其他的 Python依次看过来,这样你才能完完全全的知道,整个python的入门知识以及细节。

关注我,和我一起奔赴下一场山海!

12ca4fa2f0c84ff1ab12374557cf87b8.jpeg

 

 

 

 

 

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

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

相关文章

Ubuntu Mysql修改密码时遇到的问题

参考: ubuntu18.04 首次登录mysql未设置密码或忘记密码解决方法_ubuntu中mysql设置密码-CSDN博客 1. use mysql; #连接到mysql数据库 2. update mysql.user set authentication_stringpassword(123456) where userroot and Host localhost; #修改密码123456是密码…

解决iOS开发不能使用HTTP请求的问题

苹果公司在iOS9中升级了应用网络通信安全策略,默认推荐开发者使用HTTPS协议来进行网络通信,并限制HTTP协议的请求。为了解决这个问题,我们需要在info.plist文件中增加如下配置来实现广告的网络访问:(信任HTTP请求&…

【算法基础实验】图论-构建无向图

构建无向图 前提 JAVA实验环境 理论 无向图的数据结构为邻接表数组,每个数组中保存一个Bag抽象数据类型(Bag类型需要专门讲解) 实验数据 我们的实验数据是13个节点和13条边组成的无向图,由一个txt文件来保存,本…

数字旅游引领智慧化浪潮:科技创新重塑旅游体验,智慧服务打造旅游新高度

在科技飞速发展的今天,数字旅游正以其独特的魅力引领着智慧化浪潮,深刻改变着旅游行业的面貌。数字技术的广泛应用,不仅为旅游行业注入了新的活力,也极大地提升了旅游体验的品质。科技创新与智慧服务的融合,正推动着旅…

如何写好代码?

文章目录 前言内容代码应当易于理解命名注释格式循环和逻辑设计函数设计类其它(编程规范、静态检查工具)重构 前言 在软件开发领域,写好代码是至关重要的一环。不论是在学校学习的学生,刚刚毕业的应届生,还是刚步入企…

迁移学习基础知识

简介 使用迁移学习的优势: 1、能够快速的训练出一个理想的结果 2、当数据集较小时也能训练出理想的效果。 注意:在使用别人预训练的参数模型时,要注意别人的预处理方式。 原理: 对于浅层的网络结构,他们学习到的…

每日一题(错题分析)

shy的子序列的个数 这一题,我一开始就没什么思路,我就开始暴力枚举了,就是定义i,j(找i后面的),k(找j后面的),很显然这种方法超时了。所以我就想使用动态规划,但是空间又超了,我就很懵…

【漏洞复现】IP-guard WebServer 权限绕过漏洞

0x01 产品简介 IP-guard WebServer 是 IP-guard 网络安全管理系统的一部分,用于提供 Web 界面以进行用户权限管理、监控和审计。 0x02 漏洞概述 IP-guard WebServer的权限验证机制中存在设计缺陷,未授权的攻击者能够规避安全验证,通过后端接口执行文件的任意读取和删除操…

学习经验分享【33】YOLOv5 / YOLOv7 / YOLOv8 / YOLOv9 / RTDETR 基于 Pyside6 的图形化界面

大论文可以写两章关于算法创新模型,最后一章可以写对前两章提出方法进行封装,利用PyQT5搭建YOLOv5可视化界面,并打包成exe程序,构建检测平台实现简单的应用。用来凑大论文的字数和工作量,是简单又快速的方法&#xff0…

DELL PowerEdge服务器通过iDRAC升级BIOS遇到的问题

本文对PowerEdge 12G系统,也就是iDRAC 7版本升级BIOS中遇到的几个问题做个总结,对于其他版本理论上应该也是适用的。如果还遇到其他问题,可以添加VX,VX号为 StorageExpert 进行进一步的分析探讨。 第一个问题,成功下载…

【嵌入式AI开发】轻量级卷积神经网络MobileNet项目实战——文末完整源码工程文件

前言:本文介绍轻量级卷积神经网络MobileNet网络实战,包含MobileNetV1、MobileNetV2、ResNet50三个预训练模型可供选择。 实现:1.预训练MobileNet图像分类,2.调用摄像头实时MobileNet图像分类,3.MobileNet视频图像分类。 MobileNet网络理论详解:【嵌入式AI开发】轻量级卷…

keil把c语言函数转成汇编

汇编可以让开发人员从根源上理解程序的运行逻辑,本文介绍如何在keil环境下如何把一个c文件中的某一个函数,转换为汇编函数,并编译运行。 右击某个c文件,选择Option for File。。。 图1 然后把下图中的Generate Assembler SRC Fi…

Post请求中常见的Content-Type类型

Post请求中常见的Content-Type类型的结构 (1)application/x-www-form-urlencoded 这是浏览器原生的form表单类型,或者说是表单默认的类型。 下面是一个请求实例: 请求报文: 可以看得出,post将请求参数以k…

python学习笔记(常用方法)

方法1:字符串中元素大小写 1.name.title():首字母大写 2.name.upper():全部大写 3.name.lower():全部小写 # 字母大小写 nametian yang print(name.title()) # 首字母大写 print(name.upper()) # 全部大写 print(name.lower()) # 全部小写 Tian Yang TIAN YANG tia…

银行押款车远程监控系统的实际需求与特点

随着金融行业的快速发展,银行押款车的安全性问题日益受到重视。传统的押款车监控方式已经无法满足现代安全管理的需求,因此,一种结合先进技术的远程监控系统应运而生。本文旨在探讨在运钞车上安装车载摄像机和集成有GPS、无线4G网络传输模块的…

温湿度上传数据到云平台机智云

esp8266使用前的操作 固件修改 如果之前添加过 想要再次添加就把解压的文件夹删了 在重新解压一个 硬件连线 需要两个CH340(USB转TTL模块) 一个CH340模块的TX和RX分别于esp8266的RX和TX连接 3V3和GND也连接 另一个模块只需要连接一根线 就是GND连…

运筹系列91:vrp算法包PyVRP

1. 介绍 PyVRP使用HGS(hybrid genetic search)算法求解VRP类问题。在benchmark上的评测结果如下,看起来还不错: 2. 使用例子 2.1 CVRP COORDS [(456, 320), # location 0 - the depot(228, 0), # location 1(912, 0), …

Wireshark安装教程

一、下载 地址:https://www.wireshark.org/download.html打开网址后,点击相应的版本下载: 二、安装 下载完成后双击文件开始安装 点击Next 点击Noted 点击Next 点击Next 点击Next 可以点击Browse更改安装路径,默认…

Python实时聊天机器人框架之errbot使用详解

概要 在现代软件开发中,即时通讯和自动化任务的需求越来越重要。Python的Errbot库是一个强大的实时聊天机器人框架,可以帮助开发者快速构建自定义的聊天机器人应用,提供了丰富的特性和灵活的扩展能力。 安装 Errbot的安装非常简单,可以通过pip工具进行安装: pip instal…

力扣【LeetCode】258:各位相加

🎁个人主页:我们的五年 🔍系列专栏:每日一练 🌷追光的人,终会万丈光芒 前言: 【LeetCode】真的是一个好网站呀,上面的题目的太经典了,提供的方法也很很多,非…