将python代码转化为c语言代码,提高运行效率
将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语言代码,提高运行效率相关推荐
- bcs转10 c语言,小弟刚学习C语言,怎么把下段汇编代码转化为C语言程序,请高手指教!!!单片机89c52...
已结贴√ 问题点数:20 回复次数:3 小弟刚学习C语言,怎么把下段汇编代码转化为C语言程序,请高手指教!!!单片机89c52 BIT_COUNT DATA 07FH TIMER0 ...
- Golang cgo:如何在Go代码中调用C语言代码?
如何在Go代码中调用C语言代码? Go语言是通过自带的一个叫CGO的工具来支持C语言函数调用,同时我们可以用Go语言导出C动态库接口给其它语言使用. 方式一.直接在 Go 代码中写入 C 代码 检查是 ...
- 基于python的unittest单元测试C语言代码
** 后面附带原始python代码 ** 关于单元测试Python也给我们提供了相应的模块(unittest),单元测试,并可以生成测试报告 1.了解单元测试的原理与框架 1.1 单元测试原理 单元测 ...
- java玫瑰花代码_玫瑰花c语言代码
玫瑰花 c 语言代码 #include <dos.h> #include <graphics.h> #include <math.h> /* 玫瑰花 */ #def ...
- 牛逼c语言代码,这段c语言代码牛逼在哪?
原标题:这段c语言代码牛逼在哪? 有人说C语言是世界上最牛逼的语言,因为操作系统就是用C语言编写的,学好了C才能更好的学习其他编程语言.为此,有人分享了下面一段代码,说是很牛逼的c语言代码,看得W3C ...
- rsa2048加密算法c语言代码,rsa加密算法c语言代码
如何用C语言实现RSA算法? 上学期交的作业,已通过老师在运行时间上的测试 #include #include unsigned long prime1,prime2,ee; unsigned lon ...
- html语言代码游戏,常用html语言代码
大标题代码: A part of me 透明flash特效代码: 加入背景音乐代码: type=audio/x-ms-wma LOOP="TRUE" AUTOSTART=" ...
- MATLAB算法实战应用案例精讲-【图像处理】数字图像海报化(附Java、python、matlab和R语言代码实现)
目录 前言 知识储备 MATLAB支持以下几种图像文件格式: 图像类型 应用案例
- 按键精灵改php文件代码,如何吧按键精灵的代码转成易语言代码
Hwnd = Plugin.Window.Find(0, "[魔域]") hwnd1 = Plugin.window.findex(hwnd, 0, 0, 0) Call 寻路(9 ...
最新文章
- 调剂女人身材的十种食物
- 图说:Word 15 阅读模式
- ubuntu14.04下通过.frm, .MYD,.MYI文件恢复建立mysql数据库
- wxWidgets:wxCmdLineParser类用法
- 计算机领域中,增量是什么意思?
- vmware linux 编译内核,VMWare编译linux内核的注意事项
- Cesium获取经度 ,纬度,高度
- 西班牙人:武磊身体无恙 可以出场比赛
- JS学习总结(3)——运算符/字符串
- vue展示日历 考勤展示_vue实现简单的日历效果
- python邮件发送 STMP
- 大学计算机基础总结与复习
- python随堂笔记(2)- globle全局变量的修改
- 1口百兆光纤收发器工业导轨式发送机接收机1百兆光1百兆电工业以太网光纤收发器
- echarts 饼状图展示位置 legend
- Deep Voice 论文
- poi excel密码加密
- android 三级级联筛选列表,写给程序员的Flutter详细教程
- 我们不生产代码,我们是代码的搬运工
- 使用DevExpress Reports和PDF Viewer创建AcroForm Designer
热门文章
- 五角星(for循环五条边)
- 当当网api获取商品详情
- sallen-场景法设计测试用例
- centos6.6安装RTL8139网卡驱动若干问题
- 论文阅读(17)---2022 CVPR SC2-PCR二阶相似性测度
- IDEA调试程序按钮初探 (Step Over/Step Into/Force Step Into/Step Out/Evaluate Expression/Resume Program/条件断点)
- 一个收到微信小程序内测的号,竟然300万起拍卖
- Sql插入藏文数据出现乱码情况
- 法拉第未来大股东签署最高6亿美金投资意向书;科蒂集团与支付宝达成全球旅游零售战略合作 | 美通企业日报...
- 荣耀智慧屏服务器无响应,荣耀智慧屏设置页面不能正常显示是什么情况?