溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python在怎樣進(jìn)行函數(shù)文件處理

發(fā)布時(shí)間:2021-12-04 17:41:02 來源:億速云 閱讀:149 作者:柒染 欄目:互聯(lián)網(wǎng)科技

python在怎樣進(jìn)行函數(shù)文件處理,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

文檔處理

# f=open('a.txt','r+') #讀寫

# f=open('a.txt','w+') #寫讀

# f=open('a.txt','a+') #追加并且讀

# f=open('a.txt','w')

# f.write('111111\n')

# f.close()

#上下文管理

# with open('a.txt','r',encoding='utf-8') as f,open('b.txt') as b_f:

#     # print(f.read())

#     print('====>')

#補(bǔ)充

# for i in range(3):

#     print(i)

#     # continue

#     if i == 1:

#         break

# else:

#     print('=============>') #當(dāng)for循環(huán)不被break打斷,就會執(zhí)行else的代碼

#

# with open('a.txt','r',encoding='utf-8') as read_f,\

#         open('aa.txt','w',encoding='utf-8') as write_f:

#

#     for line in read_f:

#         write_f.write(line)

#     else:

#         print('write successfull')

# i=0

# while i< 5:

#     print(i)

#     i+=1

#     if i == 3:

#         break

# else:

#     print('------>')

# with open('a.txt','rb') as f:

#     print(f.read().decode('utf-8'))

# with open('c.txt','wb') as f:

#     f.write('哈哈哈'.encode('utf-8'))

# f=open('sb.jpg','r',encoding='utf-8') #文本的方式讀不了二進(jìn)制文件

# print(f.read())

# with open('sb.jpg','rb') as read_f,\

#         open('sb_alex.jpg','wb') as write_f:

#     data=read_f.read()

#     write_f.write(data)

#不常用的,了解

# with open('a.txt','r',encoding='utf-8') as f:

#     print(f.read(4)) #數(shù)字指的是讀的是字符

#

# with open('a.txt','rb') as f:

#     print(f.read(1)) #數(shù)字指的是讀的是字符

# with open('a.txt','r',encoding='utf-8') as f:

#     f.seek(3) #seek內(nèi)指定的數(shù)字代表字節(jié)

#     print(f.tell()) #當(dāng)前光標(biāo)所在的位置

#     print(f.read())

# with open('aa.txt','r+',encoding='utf-8') as f:

#     # f.seek(3) #seek內(nèi)指定的數(shù)字代表字節(jié)

#     # print(f.read())

#

#     f.truncate(1)

# with open('b.txt','rb') as f:

# f.read()

# f.seek(3) #默認(rèn)情況,是以文件起始位置作為開始,往后移動3個(gè)bytes

# f.read(1)

# print(f.tell())

# f.seek(2,1) #1 代表以當(dāng)前光標(biāo)所在的位置為開始,往后移動2個(gè) bytes

# print(f.tell())

# f.seek(-1,2) #2表以當(dāng)前光標(biāo)所在的位置為開始,往后移動2個(gè) bytes

# print(f.tell())

# f.seek(0,2)

# with open('c.txt','r',encoding='utf-8') as f:

#     f.seek(0,2)

#     print('====>',f.read())

# tail -f access.log

函數(shù)

'''

沒有函數(shù)會有什么問題?

1.無組織無結(jié)構(gòu),代碼冗余

2.可讀性差

3.無法統(tǒng)一管理且維護(hù)成本高

'''

# 在python中函數(shù)分兩類:內(nèi)置函數(shù),自定義函數(shù)

#內(nèi)置函數(shù)

# sum

# max

# min

#

# a=len('hello')

# print(a)

#

# b=max([1,2,3])

# print(b)

#自定義函數(shù)

# # ******

# # ******

# # ******

# # hello world

# # ******

# # ******

# # ******

函數(shù)的參數(shù)

#從大的角度去看,函數(shù)的參數(shù)分兩種:形參(變量名),實(shí)參(值)

#定義階段

# def foo(x,y): #x=1,y=2

#     print(x)

#     print(y)

#調(diào)用階段

# foo(1,2)

#詳細(xì)的區(qū)分函數(shù)的參數(shù)分為五種:

# 位置參數(shù),關(guān)鍵字參數(shù),默認(rèn)參數(shù),可變長參數(shù)(*args,**kwargs),命名關(guān)鍵字參數(shù)

#位置參數(shù)

# def foo(x,y,z):#位置形參:必須被傳值的參數(shù)

#     print(x,y,z)

#

# # foo(1,2,3)

# foo(1,2,3) #位置實(shí)參數(shù):與形參一一對應(yīng)

#關(guān)鍵字參數(shù):key=value

def foo(x,y,z):

print(x,y,z)

# foo(z=3,x=1,y=2)

#關(guān)鍵字參數(shù)需要注意的問題:

# 1:關(guān)鍵字實(shí)參必須在位置實(shí)參后面

# 2: 不能重復(fù)對一個(gè)形參數(shù)傳值

# foo(1,z=3,y=2) #正確

# foo(x=1,2,z=3) #錯(cuò)誤

# foo(1,x=1,y=2,z=3)

#默認(rèn)參數(shù)

# def register(name,age,sex='male'): #形參:默認(rèn)參數(shù)

#     print(name,age,sex)

#

# register('asb',age=40)

# register('a1sb',39)

# register('a2sb',30)

# register('a3sb',29)

#

# register('鋼蛋',20,'female')

# register('鋼蛋',sex='female',age=19)

#默認(rèn)參數(shù)需要注意的問題:

#一:默認(rèn)參數(shù)必須跟在非默認(rèn)參數(shù)后

# def register(sex='male',name,age): #在定義階段就會報(bào)錯(cuò)

#     print(name,age,sex)

#(了解)二:默認(rèn)參數(shù)在定義階段就已經(jīng)賦值了,而且只在定義階段賦值一次

# a=100000000

# def foo(x,y=a):

#     print(x,y)

# a=0

# foo(1)

#三:默認(rèn)參數(shù)的值通常定義成不可變類型

#可變長參數(shù)

def foo(x,y,*args): #*會把溢出的按位置定義的實(shí)參都接收,以元組的形式賦值給args

print(x,y)

print(args)

#

# foo(1,2,3,4,5)

# def add(*args):

#     res=0

#     for i in args:

#         res+=i

#     return res

# print(add(1,2,3,4))

# print(add(1,2))

# def foo(x, y, **kwargs):  # **會把溢出的按關(guān)鍵字定義的實(shí)參都接收,以字典的形式賦值給kwargs

#     print(x, y)

#     print(kwargs)

# foo(1,2,a=1,name='egon',age=18)

# def foo(name,age,**kwargs):

#     print(name,age)

#     if 'sex' in kwargs:

#         print(kwargs['sex'])

#     if 'height' in kwargs:

#         print(kwargs['height'])

#

# foo('egon',18,sex='male',height='185')

# foo('egon',18,sex='male')

#命名關(guān)鍵字參數(shù)(了解)

# def foo(name,age,*,sex='male',height):

#     print(name,age)

#     print(sex)

#     print(height)

# #*后定義的參數(shù)為命名關(guān)鍵字參數(shù),這類參數(shù),必須被傳值,而且必須以關(guān)鍵字實(shí)參的形式去傳值

# foo('egon',17,height='185')

# def foo(name,age=10,*args,sex='male',height,**kwargs):

# def foo(name,age=10,*args,sex='male',height,**kwargs):

#     print(name)

#     print(age)

#     print(args)

#     print(sex)

#     print(height)

#     print(kwargs)

#

# foo('alex',1,2,3,4,5,sex='female',height='150',a=1,b=2,c=3)

# def foo(*args):

#     print(args)

# foo(1,2,3,4) # 1,2,3,4 <=====>*(1,2,3,4)

#*['A','B','C','D'],=====>'A','B','C','D'

# foo(*['A','B','C','D']) #foo('A','B','C','D')

# foo(['A','B','C','D']) #

# def foo(x,y,z):

#     print(x,y,z)

#

# # foo(*[1,2,3]) #foo(1,2,3)

# foo(*[1,2]) #foo(1,2)

# def foo(**kwargs):

#     print(kwargs)

#

# #x=1,y=2  <====>**{'y': 2, 'x': 1}

# # foo(x=1,y=2)

#

# foo(**{'y': 2, 'x': 1,'a':1}) #foo(a=1,y=2,x=1)

# def foo(x,y,z):

#     print(x,y,z)

#

# # foo(**{'z':3,'x':1,'y':2}) #foo(x=1,z=3,y=2)

# foo(**{'z':3,'x':1}) #foo(x=1,z=3)

# def foo(x,y,z):

#     print('from foo',x,y,z)

#

# def wrapper(*args,**kwargs):

#     print(args)

#     print(kwargs)

#

#

# wrapper(1,2,3,a=1,b=2)

#

# def foo(x,y,z):

#     print('from foo',x,y,z)

# def wrapper(*args,**kwargs):

#     print(args) #args=(1,2,3)

#     print(kwargs) #kwargs={'a':1,'b':2}

#     foo(*args,**kwargs) #foo(*(1,2,3),**{'a':1,'b':2}) #foo(1,2,3,b=2,a=1)

# # wrapper(1,2,3,a=1,b=2)

# wrapper(1,z=2,y=3)

# def foo(x,y,z):

#     print('from foo',x,y,z)

# def wrapper(*args,**kwargs):

#     # print(args) #args=(1,)

#     # print(kwargs) #kwargs={'y':3,'z':2}

#     foo(*args,**kwargs) #foo(*(1,),**{'y':3,'z':2}) #foo(1,z=2,y=3)

# # wrapper(1,2,3,a=1,b=2)

# wrapper(1,z=2,y=3)

#

#補(bǔ)充:函數(shù)定義階段到底干了什么事情:只檢測函數(shù)體的語法,并不會執(zhí)行

# def bar():

#     x

#     if 1 >2:

#           print('====>')

#

# bar()

函數(shù)的返回值

# def foo():

#     print('from foo')

#     return None

# res=foo()

# print(res)

'''

以三種情況返回值都為None:

沒有return

return 什么都不寫

return None

'''

# def foo():

#     print('from foo')

#     x=1

#     return x

# res=foo()

# print(res)

#return 一個(gè)值  函數(shù)調(diào)用返回的結(jié)果就是這個(gè)值

def foo():

print('from foo')

x=1

return 1,[2,3],(4,5),{}

# res=foo()

# print(res) #打印結(jié)果:(1,[2,3],(4,5),{})

# a,b,c,d=foo()

# print(d)

#return 值1,值2,值3,...   返回結(jié)果:(值1,值2,值3,...)

# t=(1,2,3)

# a,_,_=t

# print(a)

# t=(1,2,3,4,5,6,7,8,9)

# a,*_,c=t

# print(a)

# print(c)

調(diào)用函數(shù)

def foo():

print('from foo')

def bar(name):

print('bar===>',name)

#按照有參和無參可以將函數(shù)調(diào)用分兩種

foo() #定義時(shí)無參,調(diào)用時(shí)也無需傳入?yún)?shù)

bar('egon') #定義時(shí)有參,調(diào)用時(shí)也必須有參數(shù)

#按照函數(shù)的調(diào)用形式和出現(xiàn)的位置,分三種

foo() #調(diào)用函數(shù)的語句形式

def my_max(x,y):

res=x if x >y else y

return res

# res=my_max(1,2)*10000000 #調(diào)用函數(shù)的表達(dá)式形式

# print(res)

res=my_max(my_max(10,20),30) #把函數(shù)調(diào)用當(dāng)中另外一個(gè)函數(shù)的參數(shù)

print(res)

自定義函數(shù)

#為什么要定義函數(shù)?:先定義后使用,如果沒有定義而直接使用,就相當(dāng)于引用了一個(gè)不存在的變量名

# foo()

# def foo():

#     print('from foo')

# print(foo)

#函數(shù)的使用包含兩個(gè)階段:定義階段和使用階段

# 語法

# def 函數(shù)名(參數(shù)1,參數(shù)2,...):

#     """文檔注釋"""

#     函數(shù)體

#     return 值

# x=len('hello')

# print(x)

#定義函數(shù)的三種形式

#一:無參數(shù)函數(shù):如果函數(shù)的功能僅僅只是執(zhí)行一些操作而已,就定義成無參函數(shù),無參函數(shù)通常都有返回值

def print_star():

print('#'*6)

#二:定義有參函數(shù):函數(shù)的功能的執(zhí)行依賴于外部傳入的參數(shù),有參函數(shù)通常都有返回值

# def my_max(x,y):

#     res=x if x >y else y

#     return res

# 三元表達(dá)式

x=10

y=2

# if x > y:

#     print(x)

# else:

#     print(y)

#

# res=x if x > y else y

# print(res)

#三:空函數(shù)

# def auth():

#     """認(rèn)證功能"""

# auth()

def insert():

"""插入功能"""

def select():

"""查詢功能"""

def delete():

"""刪除功能"""

def update():

"""更新功能"""

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI