遞歸:
python默認遞歸深入100層,設置遞歸深度:
import sys
sys.setrecursionlimit(層數)
函數自身調用自身
有一個明確的結束條件
def fun(n):
if n == 1:
return 1
else:
return n * fun(n-1)
pass
print(fun(5))
斐波那契非遞歸:
def fab(n):
n1 = 1
n2 = 1
n3 = 1
if n < 1:
print("輸入有誤!")
return -1
while (n-2) > 0:
n3 = n2 + n1
n1 = n2
n2 = n3
n -= 1
pass
return n3
result = fab(12)
if result != -1:
print('總共有%d對小兔子誕生!'%result)
遞歸斐波那契:
def Tu(n):
if n == 1 or n == 2:
return 1
else:
return Tu(n-1) + Tu(n-2)
pass
print(Tu(12))
字典:
字典默認值:None
字典名 = {key:value,key:value}
dict(key=value,key=value) dict字典類型工廠函數,key爲字符串時,不可加引號
調用:
字典名[key]
keys() 拿到字典的key
values() 拿到字典的value
items() 拿到字典key和value
clear() 清空字典
copy() 拷貝
id(變量) 查看內存地址
pop(key) 彈出鍵值對
popitem() 按優先級彈出鍵值對
setdefault(key,value) 當字典裏不存在該key時,會自動添加
集合:
{數值,數值}
唯一
set(列表)
add() 集合追加數值
不可變集合 frozenset([列表])
open(路徑\文件名,打開方式) 打開文件
打開方式:
'r' 以只讀方式打開(默認)
'w' 以寫入的方式打開文件,會覆蓋已存在文件
'x' 如果文件已存在,使用此模式打開將引發異常
'a' 以寫入模式打開,如果文件存在,則在末尾追加寫入
'b' 以二進制模式打開
't' 以文本形式打開(默認)
'+' 可讀寫模式(可添加到其他模式中使用)
'U' 通用換行符支持
文件對象方法:
close() 關閉文件
read(size=-1) 從文件讀取size個字符,當未給定size或給負值時,讀取剩餘的所有字符,然後作爲字符串返回
readline() 以寫入模式打開,如果文件存在,則在末尾追加寫入
write(str) 將字符串寫入文件
writelines(seq) 向文件寫入字符串序列seq,seq應該是一個返回字符串的可
迭代對象
seek(offset,from) 在文件中移動文件指針,從from(0代表文件起始位置,1代表當前位置,2代表文件末尾)偏移offset個字節
tell() 返回當前在文件中的位置
文本分割:
file = open('duihua.txt')
boy = []
girl = []
count = 1
for each_line in file:
#判斷前6個字符是否爲=號
if each_line[:6] != '======':
#字符串分割:
(role,line_spoken) = each_line.split(':',1)
if role == '天道':
boy.append(line_spoken)
pass
if role == '鳴人':
girl.append(line_spoken)
else:
#文件分別保存
file_name_boy = 'boy_' + str(count) + '.txt'
file_name_girl = 'girl' + str(count) + '.txt'
boy_file = open(file_name_boy,'w')
girl_file = open(file_name_girl,'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
boy = []
girl = []
count += 1
pass
pass
file_name_boy = 'boy_' + str(count) + '.txt'
file_name_girl = 'girl' + str(count) + '.txt'
boy_file = open(file_name_boy,'w')
girl_file = open(file_name_girl,'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
file.close()
文本分割:
def save_file(boy,girl,count):
boy_name_file = 'boy' + str(count) + '.txt'
girl_name_file = 'girl' + str(count) + '.txt'
boy_file = open(boy_name_file,'w')
girl_file = open(girl_name_file,'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
pass
def fb_file(file_name):
f = open(file_name)
boy = []
girl = []
count = 1
for each_line in f:
if each_line[:6] != '======':
(role,line_spoken) = each_line.split(':',1)
if role == '天道':
boy.append(line_spoken)
if role == '鳴人':
girl.append(line_spoken)
else:
save_file(boy,girl,count)
boy = []
girl = []
count += 1
pass
pass
save_file(boy,girl,count)
pass
fb_file('duihua.txt')