menu

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
wechat 微信公众号:How先生polyad