实例 6

题目

斐波那契数列;

分析

利用递归计算斐波那契数列,输入斐波那契数列的n位,调用递归计算出第n位的数列值;

代码

  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3. # @Time : 2018-10-3 21:10
  4. # @Author : Manu
  5. # @Site :
  6. # @File : fib.py
  7. # @Software: PyCharm
  8. def fib(num):
  9. if num <= 2:
  10. result = 1
  11. else:
  12. result = fib(num - 1) + fib(num - 2)
  13. return result
  14. while True:
  15. num = int(input('num = '))
  16. print('斐波那契数列的第 %d 个值是 %d' % (num, fib(num)))

结果

Python3 编程实例(6 - 10) - 图1

实例7

题目

将一个列表的数据复制到另一个列表中;

分析

Python复制数据有三种方式:直接赋值、浅拷贝、深拷贝;

代码

  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3. # @Time : 2018-10-4 10:20
  4. # @Author : Manu
  5. # @Site :
  6. # @File : copy.py
  7. # @Software: PyCharm
  8. import copy
  9. # 直接赋值,相当于对象引用,即就是另起一个名字
  10. print('assignment:')
  11. list1 = [1, 3, 5, 7, 9, 'Manu Ginobili', 20]
  12. list2 = list1
  13. print(list2)
  14. # 浅拷贝(copy),拷贝父对象,不拷贝子对象
  15. print('copy:')
  16. list1 = [1, 3, 5, 7, 9, 'Manu Ginobili', 20]
  17. list2 = list1.copy()
  18. list1.append(21)
  19. print(list1)
  20. print(list2)
  21. list2.append(14)
  22. print(list1)
  23. print(list2)
  24. # 深拷贝(deepcopy),完全拷贝父对象及子对象
  25. print('Deepcopy:')
  26. list1 = [1, 3, 5, 7, 9, 'Manu Ginobili', 20]
  27. list2 = copy.deepcopy(list1)
  28. list1.append('Duncan')
  29. print(list1)
  30. print(list2)
  31. list2.append('Paker')
  32. print(list1)
  33. print(list2)

结果

Python3 编程实例(6 - 10) - 图2

实例8

题目

输出 9*9 乘法口诀表

分析

两层循环,将乘法口诀表以左下三角格式打印出

代码

  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3. # @Time : 2018-10-7 18:38
  4. # @Author : Manu
  5. # @Site :
  6. # @File : multiple.py
  7. # @Software: PyCharm
  8. for i in range(1, 10):
  9. for j in range(1, i + 1):
  10. print('%d * %d = %d\t' %(i, j, i * j), end=' ')
  11. print()

结果

Python3 编程实例(6 - 10) - 图3

实例9

题目

暂停一秒输出;

分析

调用time模块中的sleep()方法即可;

代码

  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3. # @Time : 2018-10-7 18:47
  4. # @Author : Manu
  5. # @Site :
  6. # @File : wait1s.py
  7. # @Software: PyCharm
  8. import time
  9. spurs = ['Tim Duncan', 'Manu Ginobili', 'Tony Paker']
  10. for spur in spurs:
  11. print(spur)
  12. time.sleep(1)

结果

打印出结果时会有明显的停顿。
Python3 编程实例(6 - 10) - 图4

实例10

题目

暂停一秒输出,并格式化当前时间;

分析

使用time模块的strftime()方法实现;

代码

  1. #!/usr/bin/python3
  2. # -*- coding: utf-8 -*-
  3. # @Time : 2018-10-7 18:54
  4. # @Author : Manu
  5. # @Site :
  6. # @File : wait1s_format.py
  7. # @Software: PyCharm
  8. import time
  9. print('当前时间:')
  10. print(time.strftime("%Y-%m-%d %H:%M:%S %a", time.localtime()))
  11. time.sleep(1)
  12. print('等待一秒后时间:')
  13. print(time.strftime("%Y-%m-%d %H:%M:%S %a", time.localtime()))

结果

Python3 编程实例(6 - 10) - 图5