python Mr.How知其所以然之python代码模板
Python Mr.How知其所以然之python代码模板
原创文章,版权所有,搬运文章,转发请注明polyaD,原文链接https://polyad.github.io/tags
如有任何问题或疑惑,请在后面留言或者发邮箱留言polyaluthor@gmail.com,加微信polyad或者qq数学算法开发10群 282642152进行探讨,请备注:Mr.How。
—
- 理念
- 逻辑大纲
- 1.背景信息:作者,联系方式,更新时间,版本,主要功能,主要实现逻辑,使用示例,运行方法
- 2.主程序:包含的标准库信息,python模板,函数功能实现,主程序,调用处理信息
- 3.次模块:外部参数输入模块,时间运行模块,输出模块,输入检测模块,检测模块,测试模块
- 4.数据如何有序安全传递?数据如何存储并处理?
- 5.问题列表
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
############################################################################
#Author:polya polyaluthor@gmail.com
#DP_Fibonacci_Numbers.py
#Last updated:2019.4.10
#Version: 0.1
#Purpose: DP_Fibonacci_Numbers.py
#Main logic principle:
#
#test DP algorithm
#Usage:
# example: python DP_Fibonacci_Numbers.py
############################################################################
"""
import os
import sys
import argparse
import pandas as pd
import timeit
import math
#
#Get Argv
#get ready parameters and out help inforamtion
#############################################################################
def get_args():
parse=argparse.ArgumentParser(description='annot expression in one file')
parse.add_argument('-u','--usage',help="usage: python $0 -in 10 ")
parse.add_argument('-in','--input',type=int,help="input an int ")
#parse.add_argument('-T','--target',type=str,help="input a target value ")
args=parse.parse_args()
return vars(args)
############################################################################
#
#
#Do somthing for data
############################################################################
class Solution(object):
def __init__(self,n):
self.n = n
#base on the math of relationship: recursion
# A naive recursive solution
def get_Fibo_m1(self,n):
if n == 1 or n== 2:
result = 1
else:
result =self.get_Fibo_m1(n-1) + self.get_Fibo_m1(n-2)
return result
# A memoized solution
def get_Fibo_meo_m1(self,n):
#memo=""
memo = [None] * (n + 1)
return self.get_Fibo_meo_m1(n, memo)
# A bottom-up solution
def fib_bottom_up(self,n):
if n == 1 or n == 2:
return 1
bottom_up = [None] * (n+1)
bottom_up[1] = 1
bottom_up[2] = 1
for i in range(3, n+1):
bottom_up[i] = bottom_up[i-1] + bottom_up[i-2]
return bottom_up[n]
#Call steps for ends
############################################################################
def call_main_steps():
start = timeit.default_timer()
#######################################################################
args=get_args()
arr_m1 = int(args["input"])
#getArr = Solution(arr_m1)
getArr = Solution(arr_m1)
for i in range(1,arr_m1):
ar_m1 = getArr.get_Fibo_m1(i)
print(ar_m1)
########################################################################
stop = timeit.default_timer()
print('\n#####################The spent time of whole process ################## \n', stop - start)
start = timeit.default_timer()
getArr2 = Solution(arr_m1)
for i in range(1,arr_m1):
ar_m2 = getArr2.fib_bottom_up(i)
print(ar_m2)
########################################################################
stop = timeit.default_timer()
print('\n#####################The spent time of whole process ################## \n', stop - start)
#
#main
############################################################################
if __name__=='__main__':
call_main_steps()
- 时间模块
import timeit
def call_main_steps():
start = timeit.default_timer()
########################################################################
#running process
########################################################################
stop = timeit.default_timer()
print('\n#####################The spent time of whole process ################## \n', stop - start)
#main
############################################################################
if __name__=='__main__':
call_main_steps()
- 参数模块
import argparse # #Get Argv #get ready parameters and out help inforamtion ############################################################################# def get_args(): parse=argparse.ArgumentParser(description='annot expression in one file') parse.add_argument('-u','--usage',help="usage: python $0 -in 10 ") parse.add_argument('-in','--input',type=int,help="input an int ") #parse.add_argument('-T','--target',type=str,help="input a target value ") args=parse.parse_args() return vars(args) ############################################################################ def call_main_steps(): args=get_args() arr_m1 = int(args["input"]) #main ############################################################################ if __name__=='__main__': call_main_steps()
返回顶部
评论:
技术文章推送
知其所以然主题模块分享
微信公众号:How先生polyad