1.文件的拓展模式

utf-8 编码格式下,默认一个中文三个字节,一个英文或符号占用一个字节
read() 功能:读取字符的个数(里面的参数代表字符个数)
seek() 功能:调整指针的位置(里面的参数代表字节个数)
tell() 功能:当前光标左侧所有的字节数(返回的字节数) seek(0) 把光标移动到文件的开头
seek(0,2) 把光标移动到文件的末尾

  

1.1几种文件模式

r+   可读可写,不分顺序,先读后写的时候,读的时候鼠标光标在文件开头,读完后鼠标光标在末尾,然后写入
r+ 可读可写,不分顺序,先写后读的时候,要先把光标移动到文件的末尾再写,读的时候再把光标移动到文件的开头
w+ 可读可写(每次打开,都要清空重写)
a+ 可读可写(只要追加写入内容时,就会强制把光标移动到最后,读的话需要再把光标移动到文件开头读),如文件不存在默认自动创建文件

  

1.2with语法(用于省略close操作)

with open('文件名','模式','字符集编码') as 变量:
code...
cdoe...
也可同时打开多个文件:
with open('文件名','模式','字符集编码') as 变量1,open('文件名','模式','字符集编码'):
code...
code...

  

2.文件的相关函数

readline()    功能:读取一行内容,如果字符个数>当前行总个数,按照当前行进行读取,如果字符个数<当前行总个数,按照实际个数读取
readlines() 功能:将文件中的内容按照换行读取到列表当中
writelines() 功能:将内容时字符串的可迭代性数据写入到文件中,参数:内容为字符串类型的可迭代数据
truncate() 功能:把要截取的字符串提取出来,然后清空内容将提取的字符串重新写入文件中(字节)
readable() 功能:判断文件对象是否可读
writable() 功能:判断文件对象是否可写

总结:
read(字符)
readline(字符)
seek(字节)
truncate(字节)

  

3.函数

3.1函数及如何定义一个函数

功能(包裹一部分代码,实现某一个功能,达成某一目的)

特点:可以反复调用,提高代码的复用性,提升开发效率,便于后期维护

基本格式:

1.定义一个函数
def 函数名():
  code...
code...
2.调用函数
函数名()

  

3.2函数命名:

'''
函数的命名
字母数字下划线,首字符不能为数字
严格区分大小写,且不能使用关键字
函数命名有意义,且不能使用中文哦 驼峰命名法:
(1) 大驼峰命名法: 每个单词的首字符都大写 mycar => MyCar (面向对象当中,定义类class)
(2) 小驼峰命名法: 除了第一个单词小写之外,剩下每个单词首字符大写 mycar => myCar (函数,变量)
命名一个函数 通常用_拼接的形式,组装不同的单词
mycar => my_car
symmetric_difference
'''

  

3.2函数的参数:

参数的种类:
(1)形参:形式上的参数,在函数的定义处
(2)实参:实际上的参数,在函数的调用处
形参的种类:
普通(位置)形参,默认参数,普通收集参数,命名关键字参数,关键字收集参数
实参的种类:
普通实参,关键字实参
循环的原则:
调用参数时,形参和实参必须一一对应,否则报错

  

#(1) 普通形参
#函数的定义处
'''hang ,lie 是普通形参(位置形参)'''
def star(hang,lie):
i = 0
while i<hang:
j=0
while j<lie:
print('*',end='')
j+=1
print()
i+=1 # 函数的调用处
''' hang和lie身上带有默认值'''
def star(hang=10,lie=10):
i = 0
while i <hang:
j=0
while i <hang:
j=0
while j <lie:
print('*',end='')
j+=1
print()
i+=1
调用时,如果不给实际参数,默认使用自带的值进行调用
调用时,如果给实际参数,那么使用实参来进行调用
star()

  

#(3) 普通形参+默认形参
'''默认参数必须跟在普通参数的后面'''
def star(hang,lie=10):
l = 0
while i<hang:
j=0
while j<lie:
print('*',end='')
j+=1
print()
i+=1 star(20)

  

#(4) 关键字实参
def star(hang,lie=10):
i = 0
while i<hang:
j =0
while j<lie:
print('*',end='')
j+=1
print()
i+=1
#关键字实参
调用函数时,关键字实参顺序可以任意调整

  

#(5) 普通实参+关键字实参
'''关键字实参必须跟在普通实参的身后'''
def star(hang,a,b,c,lie=10):
i = 0
while i<hang:
j= 0
while j<lie:
print('*',end='')
j+=1
print()
i+=1

#调用函数
#star(haang =2,a=3,b=4,c=5,lie=6)
#star(lie=6,a=3,b=4,c=5,hang=2)
star(3,3,4,5,lie=4)

  

总结:今天主要讲了文件的拓展模式及文件相关函数和如何定义一个函数和函数中的参数的传参方式

文件拓展模式主要讲了r+,w+,a+,

r+ 可读可写,不分顺序,先读后写的时候,读的时候光标在文件开头,读完后光标在末尾,然后在末尾写入

r+ 可读可写,不分顺序,先写后读的时候,先写的时候要先把光标移动到文件末尾,然后再写,写完读的时候还需要把光标移动到文件的开头才能读

w+  可读可写(每次打开,都要清空重写)  不分顺序,不推荐使用

a+  可读可写(只要追加写入内容时,就会强制把光标移动到文件末尾,读的话还需要把光标在移动到文件的开头读。

with 语法用于省略close操作,with 可同时写打开多个文件。

文件的相关函数:

readline(字符)   功能是读取一行

readlines()   是将文件中的内容按照换行全部读取到列表当中

writelines(字符串类型的可迭代数据)   将内容是字符串的可迭代数据写入到文件中,参数:内容为字符串类型的可迭代数据

truncate(字节)   将截取的的字符串提取出来,然后清空内容将提取出来的字符串重新写入文件中,参数为字节

readable()   判断文件对象是否可读

writable()   判断文件对象是否可写

read(字符)  readline(字符)  seek(字节)  truncate(字节)

讲了如何定义一个函数

def 函数名:

  函数体

函数名()调用

函数的参数,形参(形式上的参数,用在函数定义处)和实参(实际上的参数,用在函数调用处)。

形参的种类:依次按顺序:普通形参也叫位置参数,默认参数,普通收集参数*args,命名关键字参数,关键字收集参数**kwargs

实参的种类:普通参数,关键字参数

当函数的定义处参数有默认值时:

1.调用时如果不给实际参数,就默认使用自带的值进行调用

2.调用时,如果给实际参数,那么就使用实参来进行调用

函数定义处:默认形参必须跟在普通形参的后面

函数调用时:关键字实参顺序可以任意调整

函数调用时:关键字实参必须跟在普通实参的后面

文件的拓展及文件函数,定义函数及函数参数---day09的更多相关文章

  1. javascript函数定义表达式和函数声明的区别

    在javascript中,函数有两种定义写法,函数定义表达式和函数声明,其例子分别如下所示: var test = function(x){ return x; } function test(x){ ...

  2. [转]javascript函数定义表达式和函数声明的区别

    在javascript中,函数有两种定义写法,函数定义表达式和函数声明,其例子分别如下所示: var test = function(x){ return x; } function test(x){ ...

  3. JS函数定义与匿名函数的调用

    一.函数声明.函数表达式.匿名函数 函数声明:function fnName () {…};使用function关键字 声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName ...

  4. PYTHON 学习笔记2 流程控制工具以及函数定义、匿名函数

    前言 在上一节的学习中.已经介绍了几种基本类型.包括字符串的定义,以及字符串中索引.切片.字符串拼接的使用方法.以及基本的整形数据运算.一些之前都没有了解过的运算符.比如 ** 乘方 //整数除法等. ...

  5. Python函数定义、文件操作(读写、修改)

    date:2018421 day3 一.函数定义 def  函数名(首字母大写) 增加程序可读性 #直接写函数名即可调用函数 #参数 ①.形参 ②.实参 ③.缺省参数 如果有默认值,调用的时候没有传递 ...

  6. thinkphp中定义自己的函数

    可以在前台和后台的公共文件夹中common.php中定义自己的函数,这样就可以在控制器中调用,而不需要调用对象了 /** * @name addvtorandp * @author 黄峰1664253 ...

  7. Kotlin 的函数定义和使用 (译文 转)

    Kotlin 的函数定义和使用 函数声明Kotlin 中的函数使用 fun 关键字声明 fun double(x: Int): Int {}函数用法调用函数使用传统的方法 val result = d ...

  8. 深入理解javascript函数定义与函数作用域

    最近在学习javascript的函数,函数是javascript的一等对象,想要学好javascript,就必须深刻理解函数.本人把思路整理成文章,一是为了加深自己函数的理解,二是给读者提供学习的途径 ...

  9. 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针

      您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. ...

  10. Linux Shell函数定义与调用

    一.Shell函数定义格式 shell函数定义格式,各部分说明如下: [ function ]等中括号括起来部分----表示可选(即可有可无) your_function_name部分----为函数名 ...

随机推荐

  1. SQLServer Core 序列号使用CPU限制的处理

    SQLServer Core 序列号使用CPU限制的处理 背景 有客户是SQLSERVER的数据库. 说要进行一下压测. 这边趁着最后进行一下环境的基础搭建工作. 然后在全闪的环境上面搭建了一个Win ...

  2. [转帖]jcmd命令详解

    1 基本知识 jcmd 是在 JDK1.7 以后,新增了一个命令行工具. jcmd 是一个多功能的工具,相比 jstat 功能更为全面的工具,可用于获取目标 Java 进程的性能统计.JFR.内存使用 ...

  3. 周末拾遗 xsos 的学习与使用

    周末拾遗 xsos 的学习与使用 摘要 周末陪儿子上跆拳道课. 自己一个人傻乎乎的开着笔记本想着学习点东西. 上午看到了一个sosreport的工具. 本来想学习一下. 发现xsos 应该是更好的一个 ...

  4. [转帖]012 Linux 搞懂用户权限升级 (sudo 和 su),包学会

    https://my.oschina.net/u/3113381/blog/5431540 Linux 系统中 root 账号通常用于系统的管理和维护,对操作系统的所有资源具有访问控制权限,当一个普通 ...

  5. Mysql数据库查看Database的大小的方法

    最简单的方法为: select concat(round(sum(data_length/1024/1024),2),'MB') as data from INFORMATION_SCHEMA.tab ...

  6. pytest-logging打印日志

    这里就不多介绍了,直接copy代码 日志等级分为下面五种 debug 详细信息,调试问题时使用 info 事情按预期工作 warning 警告问题 error 严重的问题,软件不能执行一些功能 cri ...

  7. Python获取内存、CPU利用率,CPU温度

    最近一个项目的需求,在软件上加入硬件实时信息,大概搜索一下,没太好的结果,所以决定自己写一篇 我的代码不难发现,都使用了psutil包,为什么呢,别的包我没太关注,纯粹是这台机的环境上有这个包 如果大 ...

  8. MySQL 之基础命令(精简笔记)

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...

  9. ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记

    任务15:oauth2 + oidc 实现 server部分 基于之前快速入门的项目(MvcCookieAuthSample): https://www.cnblogs.com/MingsonZhen ...

  10. Java-生成字符串的MD5值

    方法一:public static String getMd5(String str) { MessageDigest md5 = null; try { md5 = MessageDigest.ge ...