Python基础自学实用笔记 (五):22、递归(分治思想) 23、字典 24、集合 25、文件

**

22.递归(分治思想)

**
例:实现累乘

def fun1(num):
   		 if num == 1:
        	return 1
   		 else:
        	return num*fun1(num- 1)

print(fun1(5))

实现斐波那契数列

汉诺塔分析:
一、 如果个数为1,则直接移动
二、 数量大于1

  1. 将n-1个从x移到y上
  2. 将第n个从x移到z上
  3. 将n-1个从y移到z上

代码实现:

	def hannuota(num,x,y,z):
    	global temp
   	 	temp += 1
    	if num == 1:
        	print(x+"->"+z)
    	else:
        	#将n-1个从x移到y上
        	hannuota(num-1,x,z,y)
        
        	#将第n个从x移到z上
        	print(x+"->"+z)
        
        	#将n-1个从y移到z上
        	hannuota(num-1,y,x,z)

	temp = 0
	hannuota(3,'x','y','z')
	print(temp)

**

23.字典

**
a = { } 或a = dict()
或:a = dict( ( (1,a),(2,b),(3,c) ) ) )
或:a = dict( 哈哈 = ‘哈’,略略 = ‘略’,嘻嘻 = ‘嘻’ ) 注意键不能加引号,相当于变量
通过a【‘哈哈’】= ‘开学’ 这种形式修改,通过 a [‘’酷酷‘’] = ‘酷’ 可以添加新项

1.fromkeys( x[,y] ) –- 新建一个字典
将值y赋给键x
在这里插入图片描述

2.keys()–输出字典的键

3.values() — 输出值

4.items()—输出项
5.gets(x[,y])-- 查找是否存在
X为键,若键存在则输出键对应的值,否则不输出(none,若设置了y则输出y)

6.clear()—清空字典
7.copy() — 复制字典
8.setdefuault(x,y)—添加键为x,值为y的项
9.字典1.update(字典2)—将2的项覆盖到1

**

24.集合

**
注意:

  1. 集合内部元素没有顺序,不能用下标读取
  2. 可以用for输出和用in & not in
  3. 可以用list(set(【1,2,3,0】))输出,但形成的列表不是按照集合的顺序排列,而是排过序
  4. 集合会自动去除重复元素

1.创建
a = {1,2,3} ----里面直接写值,不能写键

a = set( ) —可在里面加列表,如set(【1,2,3】)

2.a.add()—添加

3.a.remove() —删除

4.frozenset()—固定集合,不可更改

25.文件
1.读取类型
在这里插入图片描述

2.语法
f = open(“路径”,“读取方式”) 或 with open(“路径”,“读取方式”)as f
路径:”C:\TEXT.txt” 或 “C:/TEXT.txt”

3.方法
在这里插入图片描述
4.可以用for 将文件按行读取出来

	for lines in file:
		print(lines) 

猜你喜欢

转载自blog.csdn.net/qq_45879055/article/details/106653501