递归,字典和键笔记

有一对兔子一个月之后每个月生一对兔子 n年后会有多少对兔子(斐波那契数列)

def fun(n):

    if n == 1 or n==2:

        return 1

    else:

        return fun(n-1)+fun(n-2)

x = int(input('请输入经过了多少月'))

y = fun(x)

print('%d月共有%d对兔子'%(x,y))

    汉诺塔递归:

def hanoi(n,x,y,z):

    if n == 1:

        print(x,'-->',z)

    else:

        #将n-1个盘子借助z从x移动到y

        hanoi(n-1,x,z,y)

        #将x最底下的盘子从x移动到z

        print(x,'-->',z)

        #将y上的n-1个盘子借助x移动到z

        hanoi(n-1,y,x,z)

n = int(input('请输入汉诺塔的层数'))

hanoi(n,'x','y','z')

    字典和键

1.字典

dict1={'字符串':'字符串',......}

print(dict1['字符串'])

dict2 = {1:'one',2:'two',3:'three'}

dict2

{1:'one',2:'two',3:'three'}

dict2[2]

'two'

dict3 = dict((('f',70),('i',105),('s',115),('h',104),('c',67)))

dict3

{'f':70,'i':105,'s':115,'h':104,'c':67}

dict4 = dict(字符串1='字符串2',字符串3='字符串4')

dict4

{'字符串3':字符串4,'字符串1':字符串2}

------->字典功能可以类比linux的vi  没有则会创建

2.键

>>> dict1 = {}

>>> dict1.fromkeys((1,2,3))

{1: None, 2: None, 3: None}

>>> dict2 = {}

>>> dict2 = dict2.fromkeys(range(6),'hi')

>>> dict 2

{0: 'hi', 1: 'hi', 2: 'hi', 3: 'hi', 4: 'hi', 5: 'hi'}

keys  values  items

for eachKey in dict2.keys():

    print(eachKey)


0

1

2

3

4

5

for eachValue in dict2.values():

    print(eachValue)


hi

hi

hi

hi

hi

hi

for eachItem in dict2.items():

    print(eachItem)


(0, 'hi')

(1, 'hi')

(2, 'hi')

(3, 'hi')

(4, 'hi')

(5, 'hi')

-----查询是否在字典中-----

>>> 5 in dict2

True

>>> 7 in dict2

False

----清空字典-----

dict2.clear()

-----字典拷贝----

dict3 = dict2.copy()

--------从字典中弹出一个数------

>>> dict2 

{0: 'hi', 1: 'hi', 2: 'hi', 3: 'hi', 4: 'hi', 5: 'hi'}

>>> dict2.pop(2)    ----->指定弹出哪个位置的数

'hi'

>>> dict2.popitem()    ------>随机弹出一个位置的数

(5, 'hi')

>>>

------在字典的一个随机位置加入一个对应的值----

>>> dict2

{0: 'hi', 1: 'hi', 3: 'hi', 4: 'hi'}

>>> dict2.setdefault(9,'hello')

'hello'

>>> dict2

{0: 'hi', 1: 'hi', 3: 'hi', 4: 'hi', 9: 'hello'}

>>>

-------在字典中通过映射更新一个数据的值------

>>> dict2

{0: 'hi', 1: 'hi', 3: 'hi', 4: 'hi', 9: 'hello'}

>>> dict3 = {'9':'hi'}

>>> dict2.update(dict3)

>>> dict2

{0: 'hi', 1: 'hi', 3: 'hi', 4: 'hi', 9: 'hello', '9': 'hi'}

>>>

---------------------集合-------------------

集合中没有重复的元素

#如何创建集合

1.直接用花括号把一堆元素括起来

2.用set()函数

set1 = set([1,2,3,4,5,5])

#将列表中重复元素删除

1.直接在列表中进行追加

num1=[1,2,3,4,5,5,3,1,0]

temp = []

for each in num1:

    if each not in temp:

        temp.append(each)#如果each在temp中没有 则对temp进行追加

2.集合的方法

num1 = list(set(num1))

num2 = frozenset([1,2,3,4,5]) #不可变集合

你可能感兴趣的:(递归,字典和键笔记)