文件操作与函数

文件操作

'''
Io操作
1读
2写

函数有这么几个特性:
1函数有参数 x=f(y)--->y是函数f的参数

open()函数:
干什么的:Io操作文件
参数:
file:指的是被操作的文件
mode:通过什么方式操作文件(读还是写?)
a:追加
w:写文件内容 (如果文件里有内容清空重写)
r:读取文件内容

encoding:编码(utf-8,gdk)
写的操作
1、不管是否有文件,即使没有文件,open内部会自动创建一个文件,然后把写的内容写进去。

读的操作:
1、文件存在,那么从文件中读取数据
2、文件不存在,会报FileNotFoundError的错误信息,如[Errno 2] No such file or directory


文件操作三个步骤:
1、打开文件
2、操作文件
3、关闭文件 (文件必须要关闭,要不会出现内存泄漏)


# f=open(file='login.txt',mode='w',encoding='utf-8')
# f.write('hello python!')
# f.close()

 




# f=open(file='login.txt',mode='a',encoding='utf-8')
# f.write('hellp java!')
# f.close()

 




# f=open(file='login.txt',mode='w',encoding='utf-8')
# data='''hadoop
# spark
# hive
# hbase
# flink
# kafka
# '''
# f.writelines(data)
# f.close()


 


f=open('D:/code/testDev/Python基础学习/login.txt','r')
# # 读取文件里面所有内容
print(f.read())

f.close()

 



# # 读取文件第一行内容
# print(f.readline())
f.close()

 




# # 按行读取文件使用内容
# # for item in f.readlines():
# # print((item.strip()))
# f.close()
 

 






with上下文:
它内部可以对文件进行关闭,这样避免了操作文件忘记关闭
with open(file='login.txt',mode='w') as f:
f.write('hello python!')
 



 

 

with open ('login.txt','r') as f:#f=open('login.txt','r')
print(f.read())


 



函数

函数的概念
所谓函数,就是把重复的代码单独的分离出来,放在⼀个公共的地⽅,以后可以⼀直的进⾏调⽤,这样就可以解决
多次重复来编写。
函数定义:使用的关键字是def
for example:
def 函数名称(函数的参数):
函数表达式
函数调用:
函数写完后,必须要经过调用才可以生效,如果不调用,不会生效
调用函数的方式是:函数名称()
 
# def func():
# print('Hello 段舒元!')
#
# func()
#
#
# def name():
# print('Hello 世界!')
#
#
# name()

 

 

形势参数:函数里面的参数叫形势参数
实际参数:函数被调用的时侯,给赋予的值叫实际参数
默认参数:在定义函数的时候给形势函数指定了参数的值
动态参数:定义一个函数的时候,当函数的形势参数个数不确定,数据类型不确定的时候

参数调用注意事项
1、函数在调用的时候、可以填写形势参数,也可以不填写
2、要么都填写,要么都不填写
3、函数在调用的时候,填写的实际参数要与形势参数的顺序,个数保持一致
4、函数有形势参数的时候,调用函数必须填写实际参数

def name(a,b):
print(a*b)
name(a=3,b=6)

 


def login(username,password):
if username=='duanshuyuan' and password=='123456':
print('登录成功')
else:
print('登录失败')


login('duanshuyuan','1234567')
 

 


def login(username='duanshuyuan',password='123456'):
if username=='duanshuyuan' and password=='123456':
print('登录成功')
else:
print('登录失败')
login()

 

 

def registry():
username=input('请输入用户名:\n')
password=input('请输入密码:\n')

temp=username+','+password
with open('游戏.txt','w') as f:
f.write(temp)
registry()

 

 

 

 

 


'''
写一个函数
把注册的账号读取出来
单独输出用户名


'''
def name():
with open('游戏.txt', 'r') as f:
data=f.read().split(',')

print(data[0])

name()

 


 *:代表的是元组的数据类型
# **:代表的是字典的数据类型
# def func (*args):
# print(args)
#
#
# func([1,2,3,4])
# func((1,3))
# func({'name':'duanshuyuan'})

 



# def func(**kwargs):
# print(kwargs)
# print(type)
# func(name='duanshuyuan',age=18)
# func(**{'name':'duanshuyuan'})
# func(name='duanshuyuan')

 

 

动态参数一般用在接口测试中如


def func(*args,**kwargs):
print(kwargs)
func(payType='aLiPay',print=100)
func(payType='wxPay')
func(payType='zhaohang',print=100,city='xian')

 




posted @ 2022-03-29 18:08  段舒元  阅读(64)  评论(0)    收藏  举报