Python3經典100例(②)
阿新 • • 發佈:2018-12-14
例項6
- 題目:斐波那契數列;
- 分析:利用遞迴計算斐波那契數列,輸入斐波那契數列的n位,呼叫遞迴計算出第n位的數列值;
- 程式碼:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2018-10-3 21:10
# @Author : Manu
# @Site :
# @File : fib.py
# @Software: PyCharm
def fib(num):
if num <= 2:
result = 1
else:
result = fib(num - 1) + fib(num - 2)
return result
while True:
num = int(input('num = '))
print('斐波那契數列的第 %d 個值是 %d' % (num, fib(num)))
- 結果:
例項7
- 題目:將一個列表的資料複製到另一個列表中;
- 分析:Python複製資料有三種方式:直接賦值、淺拷貝、深拷貝;
- 程式碼:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2018-10-4 10:20
# @Author : Manu
# @Site :
# @File : copy.py
# @Software: PyCharm
import copy
# 直接賦值,相當於物件引用,即就是另起一個名字
print('assignment:')
list1 = [1, 3, 5, 7, 9, 'Manu Ginobili', 20]
list2 = list1
print(list2)
# 淺拷貝(copy),拷貝父物件,不拷貝子物件
print('copy:')
list1 = [1, 3, 5, 7, 9, 'Manu Ginobili', 20]
list2 = list1.copy()
list1.append(21)
print(list1)
print(list2)
list2.append(14)
print(list1)
print(list2)
# 深拷貝(deepcopy),完全拷貝父物件及子物件
print('Deepcopy:')
list1 = [1, 3, 5, 7, 9, 'Manu Ginobili', 20]
list2 = copy.deepcopy(list1)
list1.append('Duncan')
print(list1)
print(list2)
list2.append('Paker')
print(list1)
print(list2)
- 結果:
例項8
- 題目:輸出 9*9 乘法口訣表
- 分析:兩層迴圈,將乘法口訣表以左下三角格式打印出
- 程式碼:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2018-10-7 18:38
# @Author : Manu
# @Site :
# @File : multiple.py
# @Software: PyCharm
for i in range(1, 10):
for j in range(1, i + 1):
print('%d * %d = %d\t' %(i, j, i * j), end=' ')
print()
- 結果:
例項9
- 題目:暫停一秒輸出;
- 分析:呼叫
time
模組中的sleep()
方法即可; - 程式碼:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2018-10-7 18:47
# @Author : Manu
# @Site :
# @File : wait1s.py
# @Software: PyCharm
import time
spurs = ['Tim Duncan', 'Manu Ginobili', 'Tony Paker']
for spur in spurs:
print(spur)
time.sleep(1)
- 結果(打印出結果時會有明顯的停頓):
例項10
- 題目:暫停一秒輸出,並格式化當前時間;
- 分析:使用
time
模組的strftime()
方法實現; - 程式碼:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2018-10-7 18:54
# @Author : Manu
# @Site :
# @File : wait1s_format.py
# @Software: PyCharm
import time
print('當前時間:')
print(time.strftime("%Y-%m-%d %H:%M:%S %a", time.localtime()))
time.sleep(1)
print('等待一秒後時間:')
print(time.strftime("%Y-%m-%d %H:%M:%S %a", time.localtime()))
- 結果: