文件的拓展及文件函数,定义函数及函数参数---day09

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.调用时,如果给实际参数,那么就使用实参来进行调用

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

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

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

原文地址:https://www.cnblogs.com/weiweivip666/p/12873576.html