pythion鱼笔心得2

    23递归和迭代  斐波那契额数列的迭代实现

     1  2  3 4 5  6 7   8    9  10 11     12

     1   1  2 3 5 8 13  21 34 55 89  144

     这个函数是神的函数,我靠一个函数和神有什么关系搞笑把,黄金比例是0.618,而这个数列是以0.618为增量,黄金增量

     这个函数式强两位是 1  1  这个就是老子说的 道可,道非,1生2 2生3 3生万物

     自然中的植物的叶子也是按照这个生长,这个序列是最省能量的序列,序列是可控的

     用兔子的繁殖来举例,

     ⒈斐波那契数列中任一项的平方数都等于跟它相邻的前后两项的乘积加1或减1;
     ⒉任取相邻的四个斐波那契数,中间两数之积(内积)与两边两数之积(外积)相差1

     递归是很浪费cpu,迭代省cpu

     实现5的阶乘

     def factorial(n):

            result = n

         for i in range(1,n)

               result *=i

         return result

        number = int(input('输入'))

        result = factoral(number)

      print("%d 的阶乘是:%d" % (number,result))

________________________________________

递归调用的条件 1  调用自身,自己调用掉自己     2有正确的返回条件  缺点是很容易崩溃,消耗cpu

def facorial(n):

       if n ==1

          retrun 1

      else:

          retrun n * factorial(n-1)

number =int(input('输入:'))

result = factorial(number)

print(%d 的 阶乘:%d %(number, result))  

这是一个典型的递归 当递归到1的时候开始返回,运算是从最里一层1*2*3*4*5

——————————————————————

迭代实现 斐波那契

   def fab(n):

         n1=1

         n2=1

         n3=1

      if n <1:

        print('输入错误')

        return   -1

      while (n-2)  >0

           n3  =n2+ n1   从1+1 开始

           n1 =  n2      增加了

            n2 = n3       

           n -= 1

        retrun n3

  result = fab(20)

 if result != -1:

        print('一共有%d诞生'  % result) 

————————————————————       

递归实现

def fab(n)

:

      if n<1:

          print(‘输入有误’ )

          return -1

      if n==1 or n==2:

           retrun 1

      else:

            return fab(n-1) + fab(n-2)           递归成了 2个分支

》》》result=fab(20)

》》》if result !=-1

》》》    print ('总共有%d对小兔子'  % result)

——————————————————————————————

 24章  汉诺塔

    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')     

26  字典

       dict4[2]='替换'    如果有这个索引就会替换,如果没有就会创建新的值

       dict1={}                            创建空的字典

       dict1.formkeys((1,2,3))     添加索引   数据为空

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

        dict1.fromkeys((1,2,3),'Number')   3个索引匹配一个数据

         dict1{1:'Number',2:''Number,3:'Number'}

         dict1.formkeys((1,2,3),('one','two','three'))  后面数据参数始终是一个值

        {1:('one','two','tree'),2('one','two','tree'),3...}   这是匹配的结果

         dict1.formkeys((1,3),'数字')    只给 1和3赋值

         》》》{1:'数字',3:'数字'}    会创建新的字典,而不是修改原来的   

         dict1=dict1.fromkeys(range(32),'赞')这就会创建32个元素的字典 从0 开始

         for eachKey in dict1.keys():

                 print(eachKey)              输出每个键

          

            for eachKey in dict1.values():     查询数据

                 print(eachKey)     

        for eachKey in dict1.items():    这个就是 键值对

                 print(eachKey)     

         dict1.get(32,'没有')   get 查询   如果没有就返回没有,不设置会返回空

        》》》没有          

         31 in dict1   >>>True

          32 in dict1   >>> False

            dict1.clear()  清空

            dict1={}   这种方式 是不好 内存没清空数据还在  如果有赋值的化不会改变

             id(dict)  查询内存位置

             》》》48239624

r 是只读默认 w 创建 覆盖 x存在抛异常  a写入,末尾追加  b二进制 t 文本默认的 

http://blog.csdn.net/chun_1959/article/details/45071861 文件的操作的介绍

f.readline() 以写入模式打开,如果文件存在,则在末尾追加写入

f.seek(offset,from) 移动文件指针,form(0代表起始位置,1代表当前位置,2代表末尾,offset 表示偏移多少个字节)

f.seek(45,0)  指针从起始位置偏移45的字节

f.read() 读取全部,指针到末尾  从前往后,指针到末尾就不能读了

f.read(5)   读取5个字符

f.tell  查询当前指针的位置   字节表示  一个字符等于2字节

list(f)   列表输出所有内容

f.seek(0,0)

0          时针归零

lines =list(f)

 for each_line in lines:

        print(each_line)    这样就没行输出了,但是占的空间大

 ————————

for each_line in f:          另一种写法

      print(each_line)

f=open('E:\\test.text','w')

++++++++++++++++++

字符串操作 分割 split()

f=open('record.tet')

boy=[]

girl=[]

count=1

for each_line in f:

      if each_line[:6] !='=====':

          (role,line_spoken) = each_line.split(':',1)

           if role =='':

               boy.append()

       else:

              file_name_boy='boy_'+str(count)+'.txt'

              file_name_boy='gile_'+str(count)+'.txt'

    

              boy_file=open(file_name_boy,'w')

              boy_file=open(file_name_girle,'w')

              boy_file.writelines(boy)

             girl_file.writelines(girle)

               boy_file.close()

              girle_file.close()

             boy =[]

             girl=[]

           count +=1

file_name_boy='boy_'+str(count)+'.txt'

              file_name_boy='gile_'+str(count)+'.txt'

    

              boy_file=open(file_name_boy,'w')

              boy_file=open(file_name_girle,'w')

              boy_file.writelines(boy)

             girl_file.writelines(girle)

               boy_file.close()

              girle_file.close()


f.close()

         

           

           

      





 

 

        

         


 

     


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值