python能编译c语言吗,c++编译成python

  python能编译c语言吗,c++编译成python

  这篇文章主要介绍了如何将计算机编程语言编译成C语言,我们都知道大蟒比c慢,下面小编就来个大家分享如何将计算机编程语言编译成C语言,需要的小伙伴可以参考一下

  前言:

  文章里用的计算机编程语言环境是蟒蛇3 2019.7

  这里测试的程序是找出所有1000以内的勾股数。

  a[1,1000],b[1,1000],c[1,1000]

  足a b=c有多少种解?

  如果用普通的python去写,代码如下:

  创建一个main.py

  #编码=utf-8

  # cython: language_level=3

  导入时间

  导入皮克西波特

  pyximport.install()

  导入pyth _ triples

  定义主():

  start=time.time()

  result=python _ triples。count _ triples(1000)

  duration=time.time() -开始

  打印(结果,持续时间* 1000,毫秒)

  if __name__==__main__:

  主()

  创建pyth_triples.py

  #编码=utf-8

  # cython: language_level=3

  def count_triples(限制):

  结果=0

  对于范围(1,限值1):内的

  对于范围内的b(a1,限值1):

  对于范围(b 1,限值1):内的c

  如果c ** 2 a ** 2 b ** 2:

  破裂

  如果c ** 2==(a ** 2 b ** 2):

  结果=1

  回送结果

  这时候还没有编译成C去运行,只是从圣体容器文件导入函数去使用。

  执行结束以后,结果为881,耗时为57603毫秒,太慢了。

  现在开始,我们编译成C语言去运行,看一下效果。

  修改pyth _ triples.pyx文件,定义的变量都改为cdef int xxx=0

  #编码=utf-8

  # cython: language_level=3

  def count_triples(限制):

  cdef int结果=0

  cdef int a=0

  cdef int b=0

  cdef int c=0

  对于范围(1,限值1):内的

  对于范围内的b(a1,限值1):

  对于范围(b 1,限值1):内的c

  如果c ** 2 a ** 2 b ** 2:

  破裂

  如果c ** 2==(a ** 2 b ** 2):

  结果=1

  回送结果

  创建setup.py (这一步其实可以不做,因为这只是把编译结果写入本地磁盘,给我们展示生成的C语言代码长什么样)

  #编码=utf-8

  # cython: language_level=3

  从distutils.core导入设置

  来自Cython .建立进口渠道

  # set python home=d : \ anaconda 3

  #康达激活

  # python设置。py build _ ext-在位

  设置(

  ext _ modules=cytonize( python _ triples。pyx’)

  )

  依次在pycharm的终端执行以下命令:

  set PYTHONHOME=D:\Anaconda3

  康达激活

  python设置。py build _ ext-在位

  这将生成c文件和一些不知道什么文件

  执行main.py以后,结果不变,实行时间由原来的57603毫秒减少到35毫秒左右,相差1600多倍。

  如果用爪哇去跑这套代码

  Java代码:

  公共类三元组测试{

  公共静态void main(String[] args) {

  长启动时间=系统。当前时间毫秒();

  系统。出去。println(count _ triples(1000));

  结束时间长=系统。当前时间毫秒();

  System.out.println(运行时间: (结束时间-开始时间)毫秒;

  }

  public static int count _ triples(int limit){

  int result=0;

  for(int a=1;a=极限;a ) {

  for(int b=a 1;b=极限;b ) {

  for(int c=b 1;c=极限;c ) {

  if (Math.pow(c,2) Math.pow(a,2) Math.pow(b,2)) {

  打破;

  }

  if (Math.pow(c,2)==Math.pow(a,2) Math.pow(b,2)) {

  结果=1;

  }

  }

  }

  }

  返回结果;

  }

  }

  执行时间是130毫秒左右。

  到此这篇关于如何将计算机编程语言编译成C语言的文章就介绍到这了,更多相关将计算机编程语言编译成C语言内容请搜索盛行信息技术软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行信息技术软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: