Python编程基础2

文件对象:
open内建函数:通过了初始化输入、输出(I/O)操作的通用接口,成功打开文件后会返回一个文件对象,否则引发错误。file_object=open(file_name,mode=‘r’):file_name:表示我们要打开文件的路径;mode以什么样的方式打开文件。
close函数关闭文件
文件对象访问模式:
r(read):以读方式打开(文件不存在则报错)
w(write):以写方式打开(文件存在则清空,不存在则创建,覆盖写)
a(append):以追加模式打开(必要时创建新文件)
b(byte):以二进制模式打开(配合rb、wb操作)
文件输入:
文件指针:文件指针标记从那个位置开始读取数据,第一次打开文件时,通常文件指针会指向文件的开始位置,当执行了read方法后,文件指针会移动到读取内容的末尾。重新打开文件时,文件指针会重新指向文件的最开始位置。
3ca4897b46034d10a8deaefd1be7dc95.png
d6873b59e6d24495a57a0a9d23efd811.png
2708eae2b6354931a04c0703cfc153e8.png
readline按照行数读取文件内容
e391eb5f130d4026a94063b20e7e890e.png
e76ccc20d31549faa6e71c380dbb0a06.png
readlines把文件的所有的内容按行读取出来,放在列表中
7b9cacea381e4c67a05b5f180305d16b.png
bf0ff72ee9e048979d0e90631a9a5ec5.png
当文件比较大时使用read读取就会把读取的内容放在内存中,内存有可能读取不下负载严重,此时使用readline一行一行的读取到内存中
读取大文件姿势,使用readline不知道具体执行几次,此时就需要循环
796169457d214e409ed93ab52d0122d1.png
38c584ae45524b328034bed8dd48d268.png
文件输出:
write()内建方法功能与read()和readline()相反,它把含有文本数据或二进制数据块的字符串写入到文件中,写入文件时,不会自动添加行结束标志,需要程序员手工输入(\n)。
0d63910ee95a41e4b6eab34be2623819.png
52f3cca4b72f4d7f8e390fef03f80d99.png
writelines:和readlines一样,writelines()方法是针对列表的操作,它接受一个字符串列表作为参数,将它们写入文件,行结束符并不会被自动加入,如果需要必须在调用writelines()前给每行结尾加上结束符。
8ce0b7389a684ec5bd9ec5f7d04de028.png
1088001ec73741cc91105edd9eac8916.png
练习:模拟cp操作
创建cp.py文件,将/usr/bin/ls拷贝到/tmp/myls目录下,不要修改原始文件
/usr/bin/ls是二进制文件,所以需要使用rb、wb
3329b8e7a3544902a1ba09355f84c43c.png
6a4821c3d7e7447b89b55deb05d2cf56.png
with子句:用来简化代码,在将打开文件的操作放在with语句中,代码块结束后,文件将自动关闭。
8734d2014cbf4c2189767f888f426f50.png
1e5588cb65ce453eb808f851576d42fa.png
函数:对程序逻辑进行结构化或过程化的一种编程方法。把具有独立功能的代码快组织为一个小模块,在需要的时候调用。函数的使用包含两个步骤:定义函数:封装独立的功能。调用函数:享受封装的成果
创建函数:使用def语句来创建,标题行由def关键字,函数的名字,以及参数的集合(可有可没有)组成,def子句的剩余部分包括了一个虽然可选但是强烈推荐的文档字串,和必须的函数体。
def function(形式参数):
        代码块
调用函数:同大多数语言相同,Python用一对圆括号调用函数,如果没有加圆括号,只是对函数的引用。
函数的返回值:多数情况下,函数并不直接输出数据,而是向调用者返回值,函数的返回值使用return关键字,没有return函数默认返回None。
函数参数:----形式参数:函数定义时,紧跟在函数名后(圆括号内)的参数被称为形式参数,简称形参,由于它不是实际存在的变量,所以又称虚拟变量。---实际参数:在主调函数中调用一个函数时,函数名后面的圆括号中的参数称为‘实际参数’,简称实参。
定义一个函数get_sum计算两个数的和
b6eafd95e92144c481de203e235697fa.png
8dd7c62d61cd4e07aded217a03e3384a.png
当参数传递少一个参数时就会报错
94c872b62c104a6d8f67d57d57141b04.png
804669708ade493981e5d2c1de4fe1b9.png
默认参数:声明了默认值的参数,不向该参数传入值也是允许的,没有手动给形参赋值就使用默认值。当有实际参数默认参数就失效了
72075a72540841faaec77b287df38a07.png
f52d418014b24c16baa6ea11d6c5b91d.png
当给形式参数添加默认值时,有默认值的参数必须放到没有默认值参数的后面
d323875c46554f62bad8fa7f2db9cd27.png
位置参数:使用sys模块的argv列表接受。要在终端中执行
b48ea65d1253444197ccebdb0e7d85ed.png
81e81c2c875c46f6a0d2d6c80c5ad808.png
修改cp的程序,将源文件和目标文件通过参数进行传递
7ff0a053eb8b4f1881e7231db82c29c6.png
55d67d6c842c4b55abf9f191461bc654.png
函数的返回值:多数情况下,函数并不直接输出数据,而是向调用者返回值。函数的返回值使用return关键字,没有return的话函数默认返回None。
a998524ec29c46d0a025935974e58b12.png
8393abfea7f04f0a904c05b7820fab3a.png
练习:斐波那契函数
1209278da9ed4015865e86c0832230e1.png
1713185df7bd41d7b170349d6266a9d1.png
模块:模块是从逻辑上组织Python代码的形式,当代码量变得相当大的时候,最好把代码分成一些有组织的代码段,前提是保证它们的彼此互交,这些代码片段相互间有一定的联系,可能是一个包含数据成员和方法的类,也可能是一组相关但彼此独立的操作函数,一个.py文件就是一个Python模块。
导入模块(import):使用import导入模块,模块属性通过‘模块名.属性(变量)’的方式调用,模块函数通过‘模块名.函数名’的方式调用。导入模块时该模块的代码会被执行一次
b27edda54d924aa7b722421b9df57244.png
模块加载:一个模块只被加载一次,无论导入多少次,如果两个文件相互导入防止了无限的相互加载,模块加载时,顶层的代码会自动执行
模块导入的特性:模块具有一个__name__特殊属性,当模块文件直接执行时,__name__的值为'__main__',当模块被另一个文件导入时,__name__的值就是该模块的名字
8ff8afa46e4b4b5b855fe3641b0b8cac.png
c7b205e89b0a4e46a9595763db04788f.png
当__name__ == '__main__'时执行自己的函数
f4499b886edd40c4a33fedc563775fde.png
练习:编写一个能够生成8位随机密码的程序
使用random中的choice随机选择字母数字,改善程序用户可以自己决定生成多少位的密码
string模块中的string.digits和string.ascii_letters能够提供数字和字母
ed86a41fdd1d40298568c339bfa77815.png
f57dc26c918e43ce9f28b82f80cf8d83.png
3ce4d1e6ad0a469d8b93aebec71e031b.png
time模块:
时间的表达方式:时间戳timestamp:表示的是从1970年1月1日00:00开始按秒计算的偏移量。UTC (Coordinated Universal Time,世界协调时):即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。结构化时间(struct_time):由9个元素组成。
time.time模块:返回当前的时间戳
time.sleep模块:线程推迟指定的时间运行,单位为妙。
df75892570aa46f08640d102486c36f0.png
8fe178d976a04e0999d29142823fd6be.png
time.localtime(secs):将一个时间戳转换为当前时区的结构化时间。
time.gmtime(secs):和localtime方法类似,gmtime是将一个时间戳转换为UTC时区(0时区)的结构化时间。
983cc3ec6e9145a79c9347d95262bce8.png
925c2fe0e465419c92afabc2c7234a09.png
可以使用数组下标、切片和具体名称的方式来获取具体的结构化时间
234e4a5f293b45aa87621a5ea6b3a464.png
106a3f8af045457181cd3b63658e8419.png
localtime的hour会增加8小时
83b8dfc166744f6ba123e6ae3e993460.png
4c68cf6a7c2b48d28a19aa2156f48dae.png
time.mktime模块:将一个结构化时间转换为时间戳
49ccf68e8bad4f538a46c962a3bfdd15.png
fb02e7a00d0545679e184c1dc1daa348.png
time.strftime模块:将结构化时间转换为时间字符串
143e5204971a46f3aeec2806de288671.png
413b9c8c52ca451aadc70547dff3e48f.png
time.strptime模块:将时间字符串转换为结构化时间
36f32a72d87046629ddda990753652ac.png
edb8813fb36d42fc92f71e538274e9eb.png
结构化时间可以比较,越靠后的时间越大。
练习:取出指定时间段的日志
有一个日志文件,按时间先后顺序记录日志,给定时间范围(如9:00到12:00)取出该范围内的日志,自定义日志文件myweb,log
ea3facfc0caf46098c9b286cad1e9dd3.png
8c5b0a3990ae40a389d73617fd347d66.png
2d26dc8c13434ded9b20597b549a4884.png
139cbacae971466e93abde08b604588f.png
链式赋值、多元赋值、交换变量
80f709465676442787637fde3a75ee4a.png
e56bc7d01dfe43c78fc6d66d23c8a5d6.png
keyword模块:查询关键字
fd02422dac204253946580395bddd869.png
查看内建模块,选中print函数,按Ctrl鼠标点击。该builtins.py会在Python环境启动时自动导入该模块
900ef4f428204fbebab059ea2db56495.png
字符串:
字符串的拼接
d1ac5b1f3f0c4e1788b0370e9afda521.png
88ab007470a34bc783e1408e8c3c73ff.png
字符函数
506ea9a56d614fa6a7db89389864e61b.png
07521b3992a648e5b6efffd5955aadc9.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一款仅200kb好看的免费引导页源码

源码介绍: 这是一款200kb左右的引导页,超级好看,用服务器或者主机均可搭建 下载压缩包解压至根目录即可,页面内容在index.html里修改 左边图片采用的是API接口(不喜欢可以自行更换,在66/67行) 引导页压缩包放在下面了,有需要的朋友可以直接下…

【热点】老黄粉碎摩尔定律被,量产Blackwell解决ChatGPT耗电难题

6月3日,老黄又高调向全世界秀了一把:已经量产的Blackwell,8年内将把1.8万亿参数GPT-4的训练能耗狂砍到1/350; 英伟达惊人的产品迭代,直接原地冲破摩尔定律;Blackwell的后三代路线图,也一口气被…

杂谈k8s

其实看我之前的博客,k8s刚有点苗头的时候我就研究过,然后工作的时候间接接触 也自己玩过 但是用的不多就忘记了,正苦于不知道写什么,水一篇 简化容器应用程序的部署和管理 自动化部署、自动伸缩、负载均衡、存储管理、自我修复 支…

DP-Kmaens密度峰值聚类算法

我有个问题 关于 [密度值>密度阈值] 的判定这里,新进来的新数据怎么确定他的密度值?密度阈值又是怎样确定的呢?

Golang | Leetcode Golang题解之第129题求根节点到叶节点数字之和

题目: 题解: type pair struct {node *TreeNodenum int }func sumNumbers(root *TreeNode) (sum int) {if root nil {return}queue : []pair{{root, root.Val}}for len(queue) > 0 {p : queue[0]queue queue[1:]left, right, num : p.node.Left, …

RPM包方式离线部署gitlab

下载安装包 要求:可以联网,系统及版本与目标服务器一致。配置gitlab yum仓库 curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 新建包存放目录 mkdir /root/gitlab 下载gitlab及相关安装包 …

Linux之线程及线程安全详解

前言:在操作系统中,进程是资源分配的基本单位,那么线程是什么呢?线程是调度的基本单位,我们该怎么理解呢? 目录 一,线程概念理解 二,Linux里面的线程原理 三,为什么要…

《MySQL索引》学习笔记

《MySQL索引》学习笔记 MySQL的体系结构存储引擎简介InnoDB简介MyISAM简介 索引索引结构BTreeHash索引思考索引分类 索引语法SQL性能分析索引使用最左前缀法则 索引失效的情况范围查询索引列运算字符串不加引号模糊查询or连接的条件数据分布影响 SQL提示覆盖索引前缀索引单列索…

【MyBatisPlus】DML编程控制

【MyBatisPlus】DML编程控制 文章目录 【MyBatisPlus】DML编程控制1、id生成策略2、逻辑删除 1、id生成策略 id生成策略控制(TableId注解) 名称:TableId 类型:属性注解 位置:模型类中用于表示主键的属性定义上方 作…

机器学习中的集成学习

💬内容概要 1 集成学习概述及主要研究领域 2 简单集成技术  2.1 投票法  2.2 平均法  2.3 加权平均 3 高级集成技术  3.1 Bagging  3.2 Boosting  3.3 Bagging vs Boosting 4 基于Bagging和Boosting的机器学习算法  4.1 sklearn中的Bagging算法  4.2 sklea…

AI大模型探索之路-实战篇15: Agent智能数据分析平台之整合封装Tools和Memory功能代码

系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

C++基础-vector容器

目录 零. 前言: 一.简介 二. 主要特点 三. 例子 1.创建 2.添加元素 3.访问元素 4.获取大小 5.删除元素 6.扩展 begin() end() 零. 前言: 在编程中,数组通常具有固定的大小,这在某些情况下可能会带来一些限制。 当我们事先无法确切知道需要存…

topK 问题

topK 问题 topK二、实验内容三、数据结构设计四、算法设计五、运行结果六、程序源码 topK (1)实验题目 topK 问题 (2)问题描述 从大批量数据序列中寻找最大的前 k 个数据,比如从 10 万个数据中,寻找最大的…

leetcode155 最小栈

题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。i…

OpenCv之简单的人脸识别项目(特征标注页面)

人脸识别 准备八、特征标注页面1.导入所需的包2.设置窗口2.1定义窗口外观和大小2.2设置窗口背景2.2.1设置背景图片2.2.2创建label控件 3.定义两个全局变量4.定义选择图片的函数4.1函数定义和全局变量声明4.2打开文件对话框并获取文件路径4.3处理图片并创建标签4.4显示图像 5.定…

Window11端口开放防火墙

(1)打开控制面板,进入【控制面板\系统和安全\Windows Defender 防火墙】 (2)点击左侧菜单【高级设置】,进入防火墙设置页面 (3)根据需要选择【入站规则】或者【出站规则】&#xff…

【深度好文】到底什么是质量意识?如何衡量,如何提升?

大家好,我是狂师! 在软件测试中,质量意识是一个核心且至关重要的概念。相信大家,经常会听到:"这个家伙质量意识很强,某某某要提升质量意识“之类的话语。 在企业中,“质量意识”不仅关乎…

NoSQL实战(MongoDB搭建主从复制)

什么是复制集? MongoDB复制是将数据同步到多个服务器的过程; 复制集提供了数据的冗余备份并提高了数据的可用性,通常可以保证数据的安全性; 复制集还允许您从硬件故障和服务中断中恢复数据。 保障数据的安全性 数据高可用性 (2…

day30--mybatis(三)高级

一.Mybatis注解开发单表操作 1.1 MyBatis的常用注解 这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper 映射文件了。我们先围绕一些基本的CRUD来学习,再学习复杂映射多表操作。 Insert&#xff1…

【数据结构】从前序与中序遍历,或中序与后序遍历序列,构造二叉树

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持! 首先,根据先序遍历可以确定根节点E,再在中序遍历中通过E确定左树和右数 ; 设立inBegin和inEnd,通过这两个参数的游走,来进行子树的创建&a…