将python代码转化为c语言代码,提高运行效率

首先,需要安装cpython库:

pip install cython

安装完成之后,写一段简单的代码,例如下面这个利用递归求斐波那契数列的函数,然后保存为.pyx文件:

def fib(n):return 1 if n ==1 or n == 2 else fib(n - 1) + fib(n - 2)

我将它保存为fib.pyx文件
然后再创建一个文件,文件的内容如下:

from setuptools import setup
from Cython.Build import cythonizesetup(ext_modules=cythonize('fib.pyx'))

我将它重命名为translate.py文件。这个文件的作用是调用 Cython 的cythonize函数把 Python 代码转换为 C 代码。
还有一个要提醒的地方是里面的文件路径,这里是将他们放在同一个目录下。
接下来编译代码:
进入命令行,cd转入那两个文件所在的文件目录,然后输入如下指令

python translate.py build_ext --inplace

如果你的命令行出现如下错误:

就需要安装visual studio c++ 14.0
安装好了之后继续执行上面给的命令,就会成功:

成功之后再创建一个测试文件test.py:

import time
from fib import fibstart = time.time()
result = fib(20)
end = time.time()
print('斐波那契数列第20项为'+ str(result)+'耗时:'+str(end - start)+'秒')

现在我的文件目录是这样的:

下面运行test.py文件:

斐波那契数列第40项为102334155耗时:5.765635251998901秒

运行如下代码耗时为:

import timedef fib(n):return 1 if n ==1 or n == 2 else fib(n - 1) + fib(n - 2)start = time.time()
result = fib(40)
end = time.time()
print('斐波那契数列第20项为'+ str(result)+'耗时:'+str(end - start)+'秒')
斐波那契数列第40项为102334155耗时:27.247100830078125秒

另外注意:import只会从后缀为.py/.pyc/.pyo/.so/.pyd的文件中导入模块

将python代码转化为c语言代码,提高运行效率相关推荐

  1. bcs转10 c语言,小弟刚学习C语言,怎么把下段汇编代码转化为C语言程序,请高手指教!!!单片机89c52...

    已结贴√ 问题点数:20 回复次数:3 小弟刚学习C语言,怎么把下段汇编代码转化为C语言程序,请高手指教!!!单片机89c52 BIT_COUNT     DATA 07FH TIMER0       ...

  2. Golang cgo:如何在Go代码中调用C语言代码?

    如何在Go代码中调用C语言代码? Go语言是通过自带的一个叫CGO的工具来支持C语言函数调用,同时我们可以用Go语言导出C动态库接口给其它语言使用. 方式一.直接在 Go 代码中写入 C 代码 检查是 ...

  3. 基于python的unittest单元测试C语言代码

    ** 后面附带原始python代码 ** 关于单元测试Python也给我们提供了相应的模块(unittest),单元测试,并可以生成测试报告 1.了解单元测试的原理与框架 1.1 单元测试原理 单元测 ...

  4. java玫瑰花代码_玫瑰花c语言代码

    玫瑰花 c 语言代码 #include <dos.h> #include <graphics.h> #include <math.h> /* 玫瑰花 */ #def ...

  5. 牛逼c语言代码,这段c语言代码牛逼在哪?

    原标题:这段c语言代码牛逼在哪? 有人说C语言是世界上最牛逼的语言,因为操作系统就是用C语言编写的,学好了C才能更好的学习其他编程语言.为此,有人分享了下面一段代码,说是很牛逼的c语言代码,看得W3C ...

  6. rsa2048加密算法c语言代码,rsa加密算法c语言代码

    如何用C语言实现RSA算法? 上学期交的作业,已通过老师在运行时间上的测试 #include #include unsigned long prime1,prime2,ee; unsigned lon ...

  7. html语言代码游戏,常用html语言代码

    大标题代码: A part of me 透明flash特效代码: 加入背景音乐代码: type=audio/x-ms-wma LOOP="TRUE" AUTOSTART=" ...

  8. MATLAB算法实战应用案例精讲-【图像处理】数字图像海报化(附Java、python、matlab和R语言代码实现)

    目录 前言 知识储备 MATLAB支持以下几种图像文件格式: 图像类型 应用案例

  9. 按键精灵改php文件代码,如何吧按键精灵的代码转成易语言代码

    Hwnd = Plugin.Window.Find(0, "[魔域]") hwnd1 = Plugin.window.findex(hwnd, 0, 0, 0) Call 寻路(9 ...

最新文章

  1. 调剂女人身材的十种食物
  2. 图说:Word 15 阅读模式
  3. ubuntu14.04下通过.frm, .MYD,.MYI文件恢复建立mysql数据库
  4. wxWidgets:wxCmdLineParser类用法
  5. 计算机领域中,增量是什么意思?
  6. vmware linux 编译内核,VMWare编译linux内核的注意事项
  7. Cesium获取经度 ,纬度,高度
  8. 西班牙人:武磊身体无恙 可以出场比赛
  9. JS学习总结(3)——运算符/字符串
  10. vue展示日历 考勤展示_vue实现简单的日历效果
  11. python邮件发送 STMP
  12. 大学计算机基础总结与复习
  13. python随堂笔记(2)- globle全局变量的修改
  14. 1口百兆光纤收发器工业导轨式发送机接收机1百兆光1百兆电工业以太网光纤收发器
  15. echarts 饼状图展示位置 legend
  16. Deep Voice 论文
  17. poi excel密码加密
  18. android 三级级联筛选列表,写给程序员的Flutter详细教程
  19. 我们不生产代码,我们是代码的搬运工
  20. 使用DevExpress Reports和PDF Viewer创建AcroForm Designer

热门文章

  1. 五角星(for循环五条边)
  2. 当当网api获取商品详情
  3. sallen-场景法设计测试用例
  4. centos6.6安装RTL8139网卡驱动若干问题
  5. 论文阅读(17)---2022 CVPR SC2-PCR二阶相似性测度
  6. IDEA调试程序按钮初探 (Step Over/Step Into/Force Step Into/Step Out/Evaluate Expression/Resume Program/条件断点)
  7. 一个收到微信小程序内测的号,竟然300万起拍卖
  8. Sql插入藏文数据出现乱码情况
  9. 法拉第未来大股东签署最高6亿美金投资意向书;科蒂集团与支付宝达成全球旅游零售战略合作 | 美通企业日报...
  10. 荣耀智慧屏服务器无响应,荣耀智慧屏设置页面不能正常显示是什么情况?