学习python的第三天笔记
18、024
递归:汉诺塔
def hanoi(n,x,y,z):
if n == 1:
print(x,'->',z)
else:
hanoi(n-1,x,z,y)#将前n-1个盘子从x移动到y上
print(x,'->',z)#将最底下的一个盘子从x移动到z上
hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上
n = int(input('请输入汉诺塔的层数:'))
hanoi(n,'x','y','z')
19、025
值(value)
字典是印射存在的,例如:dict1 = {'小明':'我爱你','小米':'为发烧而生','小马':'爱老虎油'}
print('小米说:',dict1['小米'])
小米说: 为发烧而生
字典的创建方式,例如:dict2 = dict((('a',65),('b',66),('c',67)))
dict3 = dict(小米='为发烧而生',小新='为你而改变')
字典的修改,例如:dict3['小新'] = '信你个鬼'
dict3
{'小米': '为发烧而生', '小新': '信你个鬼'}
如果索引的是没有的,会直接添加入字典里。
20、026
字典
#.fromkeys(())可以添加值,例如:dict1={}
dict1.fromkeys((1,2,3),'number')
{1: 'number', 2: 'number', 3: 'number'}
#.keys()就是只打印前面那个元素,例如:dict1=dict1.fromkeys((1,2,3),'number')
for eachkey in dict1.keys():
print(eachkey)
1
2
3
#.values()可以打印后一个元素,例如:for eachvalues in dict1.values():
print(eachvalues)
number
number
number
#.items()可以打印整一个项,例如:for eachitems in dict1.items():
print(eachitems)
(1, 'number')
(2, 'number')
(3, 'number')
#.get()在查询字符不在字典时可以返回None,例如:print(dict1.get(4))
None
#.clear()可以清空字典中的内容。
#.copy()可以用于复制字典。
#.popitem()可以随机弹出字典中的整个项,例如:dict1.popitem()
{1: 'number', 2: 'number'}
#.setdefault()可以添加到字典里去,例如:dict1.setdefault('小白','傻')
{1: 'number', 2: 'number', '小白': '傻'}
21、027
集合(set)
集合中所有元素都是唯一的,若有重复会被系统清除。
#.add()可以添加元素到集合里
#.remove()可以删除集合中的元素
frozen(冻结)用于建立不可变的集合。例如:num1 = frozenset([1,2,3,4,5])
22、028
open()
打开模式下可执行操作的类型有:
‘r’:以只读的方式打开文件
‘w’:以写入的方式打开文件,会覆盖以存在的文件
‘x’:如果文件已经存在,使用此模式打开会发生异常
‘a’:以写入模式打开,如果文件存在,则在末尾追加写入
‘b’:以二进制模式打开文件
‘t’:以文本模式打开(默认)
‘+’:可读写模式(可添加其他模式中使用)
‘U’:通用换行符支持
当在python中打开文件时可用.seek()来点位,例如:f = open('E:\\text.txt')
f.seek(0,0)#将指针定位于0的位置上
23、029
分析文件任务(两个人的对话);
f = open('text.txt')
boy = []
girl = []
count = 1
for each_line in f:
if each_line[:6] != '======':#判断迭代的是否是等于号
(role,line_spoken) = each_line.split(':',1)#分段,将冒号两边进行分段
if role == '小P':
boy.append(line_spoken)#添加到boy的列表中
if role == '小B':
girl.append(line_spoken)#添加到girl的列表中
else:
file_name_boy = 'boy_' + str(count) + '.txt'#根据每段对话创建boy_count.txt文件
file_name_girl = 'gril_' + str(count) + '.txt'#根据每段对话创建girl_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 = []
girl = []
count +=1
#由于等号只有段,而对话有三段,在for循环后加一段用于将最后一段对话进行分析
file_name_boy = 'boy_' + str(count) + '.txt'
file_name_girl = 'gril_' + 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)
f.close()
24、030
模块
只有导入模块才能使用模块中的函数,导入模块要用import 模块
OS模块:
25、031
pickle模块
存放数据,例如:city = {'澳门':1,'香港':2,'台湾':3}
import pickle
pickle_file = open('city_data.pkl','wb')#创建二进制文件
pickle_dump(city,pickle_file)#将city数据保存到二进制文件中
pickle_file.close()#关闭文件
导入数据到程序中,例如:
import pickle
pickle_file = open('city_data.pkl','rb')
city = pickle.loca(pickle_file )