1. 程式人生 > 其它 >檔案操作與函式

檔案操作與函式

檔案操作

'''
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')