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. [转帖]Jmeter 参数化

    一.Jmeter参数化概念 当使用JMeter进行测试时,测试数据的准备是一项重要的工作.若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据. 参数化是自动化测试脚本的一 ...

  2. Find 查找并且展示最近24小时内创建的文件信息

    1. 命令为: find /gscloud/tools/patchinstall/patchfiles/ -maxdepth 1 -mtime 1 |cut -c40- >/deploy/pat ...

  3. sshpass 免密码进行文件复制的方法

    1. 部分centos8 没有安装 sshpass 需要先安装 sshpass yum install sshpass 2. 需要增加一个配置文件, 避免因为 stickhost 检查 造成命令失效 ...

  4. K8S 使用loki 监控 应用日志的搭建办法

    1. 背景 这几天一直在用k8s部署分SU的测试环境,开发反馈看日志比较麻烦. 昨天晚上在家里本来想搭建ELK 发现比较重, 又说有一个比较轻量级的 loki 可以实现使用grafana进行监控和查看 ...

  5. CS231N Assignment1 SVM 笔记

    svm.ipynb 为SVM实现一个完全矢量化的损失函数 为其解析梯度实现完全矢量化表达式 使用数值梯度检查实现结果 使用验证集调整学习率和正则化 使用 SGD 优化损失函数 可视化最终学习权重 第一 ...

  6. 手写模拟Spring底层原理-Bean的创建与获取

    作者:京东物流 张鼎元 1 引言 大家好,相信大家对Spring的底层原理都有一定的了解,这里我们会针对Spring底层原理,在海量的Spring源代码中进行抽丝剥茧手动实现一个Spring简易版本, ...

  7. 对于Vue3和Ts的心得和思考

    作者:京东物流 吴云阔 1 前言 Vue3已经正式发布了一段时间了,各种生态已经成熟.最近使用taro+vue3重构冷链的小程序,经过了一段时间的开发和使用,有了一些自己的思考. 总的来说,Vue3无 ...

  8. vue3逻辑分离和页面快速展示数据

    逻辑分层 我们在使用vue3开发项目的时候, 如何进行[区域分层]呢???? 举一个简单的小粒子 一个区域有[查询逻辑.修改后的保存逻辑.新增逻辑.删除逻辑] 这个页面可能还有其他的区域.A区域.B区 ...

  9. vue中使用Object.assign导致视图不响应

    可以正常响应的 <template> <div> <ul> <li class="li-item" v-for="(item,i ...

  10. ABP vNext系列文章04---DynamicClient动态代理

    一.动态代理在ABP系统中的应用 1.它主要在做什么事件 之前开发系统想要在后台调用别的服务都是用HttpClient发起请求,在abp vnext中不需要我们这样做了, 你只要知道服务调用的接口方法 ...