執行條件:python2.7
第一種:
fib.pyx
def fib(long n):
'''returns the nth fibonacci number.'''
cdef long a=0, b=1, i
for i in range(n):
a, b = a + b, a
return a
test.py
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import pyximport; pyximport.install()
import fib
print fib.fib(15)
執行方法:
python test.py
第二種
fib.pyx
def fib(long n):
'''returns the nth fibonacci number.'''
cdef long a=0, b=1, i
for i in range(n):
a, b = a + b, a
return a
setup.py
#!/usr/bin/python
#-*-coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')
from distutils.core import setup
from cython.build import cythonize
#cythonize:編譯源**為c或c++,返回乙個distutils extension物件列表
setup(ext_modules=cythonize('fib.pyx'))
test.py
from fib import fib
print fib(9)
執行方法:
python setup.py build_ext --inplace
python test.py
第3種c1.pyx
import math
def great_circle(float lon1,float lat1,float lon2,float lat2):
cdef float radius = 3956.0
cdef float pi = 3.14159265
cdef float x = pi/180.0
cdef float a,b,theta,c
a = (90.0-lat1)*(x)
b = (90.0-lat2)*(x)
theta = (lon2-lon1)*(x)
c = math.acos((math.cos(a)*math.cos(b)) + (math.sin(a)*math.sin(b)*math.cos(theta)))
return radius*c
test.py
#!/usr/bin/env python
#encoding: utf-8
import sys #引用sys模組進來,並不是進行sys的第一次載入
sys.setdefaultencoding('utf8') ##呼叫setdefaultencoding函式
import timeit
from c1 import great_circle
num=10#表示執行多少次
# t = timeit.timer("c1.great_circle(%f,%f,%f,%f)" % (lon1,lat1,lon2,lat2),"import c1")
t = timeit.timer("c1.great_circle(%f,%f,%f,%f)" % (16,124,76,173),"import c1")
print "cython function (still using python math)", t.timeit(num), "sec"
執行方法:
cython c1.pyx
gcc -c -fpic -i/usr/include/python2.7/ c1.c
gcc -shared c1.o -o c1.so
python test.py
CRC的3種方法
一.crc16演算法 首先在原始檔標頭檔案加入錶值 cpp view plain copy print?crc16碼表 static word const wcrc16table 256 crc16碼表 static word const wcrc16table 256 然後在檔案中加入下列函式 c...
python中執行命令的3種方法小結
目前我使用到的python中執行cmd的方式有三種 1.使用os.system cmd 特點是執行的時候程式會打出cmd在linux上執行的資訊。import os os.system notepad 2.使用popen模組產生新的process 現在大部分人都喜歡使用popen。popen方法不會...
PHP定時執行任務的3種方法詳解
php定時執行的三種方式實現 具體實現 1 windows計畫任務 php很少在win伺服器上跑,具體實現也不再深究,看網上實現的原理大概是寫bat指令碼,然後讓window任務新增執行這個bat指令碼。2 linux 的指令碼實現 這裡主要使用到crontab這個命令,使用方式 複製 如下 cro...