昨日內容複習
文件處理
打開文件→操作文件→關閉文件
文件是不能修改的,但可以先創建一個新文件然後刪除原文件再重命名新文件
例:
with open('你好', encoding='utf-8') as f, open('你好.bak', 'w', encoding='utf-8') as f2:
for line in f:
if '同學' in line:
line = line.replace('同學', '老師')
f2.write(line)
import os
os.remove('你好')# 刪除文件
os.rename('你好.bak', '你好')# 重命名
1.打開文件
open(‘路徑’,‘打開方式:r w a r+ w+ a+’,‘指定編碼方式’)
2.操作文件
讀:
read 一次性讀
readlines一次性讀,並且按行切分放表裏
readline 一行行讀
視頻圖片用rb打開 bytes 按字節讀
for循環讀(最好的讀取方法)
寫:
write方法
光標(文件指針):
seek:指定光標移動到某位置
tell:獲取光標當前的位置
truncate:截取文件
3.關閉文件
close
今日內容
函數
小例子
s = '你好同學'
def my_len(): #自定義函數
i = 0
for k in s:
i = i+1
print(i)
my_len()
函數特點:
1.定義了函數之後,可以在任何需要他的地方調用
2.沒有返回長度,只是單純的打印
返回值return
s = '你好同學'
def my_len():
i = 0
for k in s:
i = i+1
return i
length = my_len()
print(length)
返回值的三種情況
1.沒有返回值:默認返回NONE
沒有return
只有return,結束一個函數。注:break只結束循環不結束函數
2.返回一個值
如果一個函數中有多個return,則只運行第一個
3.返回多個值
有多少個返回值就用多少個變量接收,不能多也不能少,但可以用一個變量接收,返回元祖
例:
def func():
return 1, 2
r1, r2 = func()
print(r1, r2)
形式參數與實際參數
def my_len(s): # 形式參數
i = 0
for k in s:
i = i+1
return i
length = my_len('nih') # 實際參數
print(length)
參數
1.沒有參數
2.有一個參數
3.多個參數
例子:
def my_sum(a, b):
res = a+b
return res
resu = my_sum(1, 2)
print(resu)
默認參數
不寫就是默認值,可以隨時改
例子:
def classmate(name, sex = 'man'):
print('%s:%s' % (name, sex))
classmate('張三')
classmate('李四')
classmate('小芳', '女')
位置參數
def classmate(name, sex = 'man'):
print('%s:%s' % (name, sex))
classmate(sex='女', name='張三')
classmate('李四')
classmate('小芳', '女')
動態參數(args,默認參數,kwargs)
參數名前加*,接受的是按照位置傳參,形成元祖
例子1
def my_sum(*args):
count = 0
for i in args:
count = count + i
return count
a = my_sum(1, 2, 3)
b = my_sum(1, 2, 3, 4)
print(a, b)
**kwargs可以接收a = …類型,接收按照關鍵字傳參的值,形成字典
例子2
def func(**kwargs):
print(kwargs)
func(a=1, b=3, c=4)
func(a=1, b=3)
動態參數的另一種傳參方式
def func(*args):
print(args)
li = [1, 2, 4, 5]
func(*li)
2
def func(**kwargs):
print(kwargs)
li = {'a': 1, 'b': 2}
func(**li)