【15】Python100例基础练习(2

发布时间:2019-09-14 09:45:54编辑:auto阅读(1709)

    例6
    题目:斐波那契数列
    斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........
    自然中的斐波那契数列
    这个数列从第3项开始,每一项都等于前两项之和。
    程序分析:
    在数学上,费波那契数列是以递归的方法来定义:
    F0 = 0 (n=0)
    F1 = 1 (n=1)
    Fn = F[n-1]+ Fn-2
    方法1:

    def Fib(n):
        if n==1 or n==2:
            return 1
        return Fib(n-1)+Fib(n-2)
    print(Fib(10))

    方法2:输出指定个数的斐波那契数列

    def Fib(n):
        if n==1:
            return [1]
        if n==2:
            return [1,1]
        fibs=[1,1]
        for i in range(2,n):
            fibs.append(fibs[-1]+fibs[-2])
        return fibs
    #打印前十个斐波那契数列
    print(Fib(10))

    例7
    将一个列表的数据复制到另一个列表中。
    程序分析:使用列表
    方法1:简单copy

    list=['alex','A','B',1,'Name']
    list_a=list.copy()
    print("copy1 ",list_a)

    方法2:深copy与浅copy

    import copy #模块
    list = ['alex', 'A', ["QAZWSX", 11, 22, 33], 'B', 1, 'Name']
    list_deep=copy.deepcopy(list)
    list_copy=copy.copy(list)
    list[2][0]="qazwsx"
    list[1]='100'
    print(list)
    print("list_deep>>>",list_deep)  #深copy
    print("list_copy>>>",list_copy)  #浅copy

    注:
    深copy与浅copy
    共同点:不会因为列表的父层变动而变动
    不同点:子列表修改时,浅copy会跟随变动而变动,而深copy不会变动。


    例8
    输出9*9的乘法口诀表

    方法1:

    for i in range(1,10):
        for j in range(1,i+1):
            print("%d*%d=%d" % (i, j, i*j))
    ```**
    
    **方法2:**

    for i in range(1,10):
    for j in range(1,i+1):
    k=ij
    print("{}
    {}={}".format(i,j,k),end=" ") #end后面引号内留空,输出的结果不美观。
    print("")

    
    **方法3:(加法口诀)**

    for i in range(1,10):
    for j in range(1,i+1):
    k=i+j
    print("{}+{}={}".format(i,j,k),end=" ")
    print("")

    
    -----
    
    **例9**
    暂停两秒输出:
    程序分析:利用time模块
    
    **方法1:**

    import time
    my={1:'a',2:'b',3:'c',4:'e'}
    for key,value in dict.items(my):
    print(key,value)
    time.sleep(2)

    
    **方法2:**

    l=['a','b','c','d','e']
    for i in range(len(l)):
    print(l[i])
    time.sleep(2)

    
    **Time模块
    返回当前时间的时间戳(1970纪元后经过的浮点秒数)。 **
    
    -----
    
    **例10**
    暂停1s输出,并格式化当前时间。
    
    方法:

    import time

    print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
    #暂停一秒
    time.sleep(1)
    print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))

    
    
    Time模块讲解请看http://blog.csdn.net/SeeTheWorld518/article/details/48314501
    python例子-关于时间time模块 
    [](https://www.cnblogs.com/xccnblogs/p/4888198.html)
    参考:http://www.runoob.com/python3/python3-tutorial.html 整理输出

关键字