Python 板


LINE

就我的感觉: Python: 直观(也直译) 很多模组可供使用(较易上手 例如import ),"不用重新做轮子" C/C++: 算得快, 可以做很多基层的事(例如 指标、指标的指标、很难理解的东西 但会用很方便) 所以我就结合Python的 使用方便性 跟 C++的 运算速度 这样使用Python运算大量资料时(其实是给C++算) 也能很快 我写了一个简单档案compare_Py_C.py 程式会将输入的 整数i 加1加1的慢慢加100000000次 然後输出结果 (例如 useC(20) 将会输出 100000020) ---以下有误 请见推文--- /*特别一提 100000000 早已超过C的整数范围 可是算出来 答案还是对的0.0*/ /*不过这里只比较速度 所以先不理它吧 囧 */ ---以上有误 请见推文--- 里面有二个函式 目的一样 但一个用C++ 一个用Python: def usePython(i): from time import time start=time() for j in range(100000000): i+=1 end=time() return end-start def useC(i): from time import time start=time() import spam #这是spam.pyd 动态函式库(不知道有没有讲错) i=spam.useC(i) #这是spam.pyd里 定义的函式 end=time() return end-start 同样是在Python Shell底下测试(因为Python比较易用(对我来说)) 得到的时间比约为 至少 500倍 (快50秒 : 不到0.1秒) 所以当程式计算量大的时候 计算部份交给C算是不错的选择 至於怎麽用C++写Python的extending 再complie成pyd档案 在官网有一个简单的例子: http://docs.python.org/extending/extending.html (我用的为extending部份 embedding没用到) 但是处理大量资料的时候 大部份会使用Python的 Sequence (list、tuple等) 所以怎麽传Sequence给C的Array 跟 怎麽把算完的结果(也许是C的Array) 传回给Python显示(或拿来继续使用) 就变得很重要 我找了n个网站 把我认为比较好的推荐给大家 http://superjared.com/entry/anatomy-python-c-module/ 简单的费氏数列 例子 但我从里面学到 如何回传Python的list (方法意外的简单给我很大的打击 囧) http://0rz.tw/kEs1x 这篇的目的应该是连结既有的C函式 会学到如何从Python输入Sequence给C的array 以上分享给版友 有错欢迎指正(十分感谢) 也欢迎一起讨论 也希望有在写类似这样程式架构的版友 可以分享一下心得 PS.我对reference count怎麽解释 跟它在Python、C之间有什麽关系 目前还是一头雾水...有人有推荐什麽好的网站吗?? 官网有看过 不过感觉还不够基本... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.63.180
1F:推 bobhsiao:1亿没超过int的范围 04/13 19:47
2F:→ KSJ:C 的是-32768~32767 C++的是2^32/2(我是用C++写) 感谢指错:) 04/13 20:40
※ 编辑: KSJ 来自: 140.112.63.180 (04/13 20:42)
3F:推 StubbornLin:你可以用boost.python 04/14 00:11
4F:推 sbrhsieh:C的int使用的byte数也是depend on编译器.不一定得是2byte 04/14 00:12
5F:→ StubbornLin:http://0rz.tw/AbvoP 04/14 00:12
6F:→ StubbornLin:用来包物件给python用会轻松很多 04/14 00:13
7F:→ StubbornLin:又或着你有另一个选择 使用ctypes来直接引用dll 04/14 00:13
8F:→ StubbornLin:http://0rz.tw/TS7Z0 04/14 00:14
9F:推 sbrhsieh:上面连结的文章中,把 SWIG 笔误成 SWING 04/14 00:40
10F:推 StubbornLin:感谢 已修正 04/14 01:39
11F:→ KSJ:感谢提供资讯 试着阅读中 04/14 01:52
12F:推 bizkit:有try过挂psyco跑看看吗? 04/22 09:41
13F:推 rdmtb:跑个1~1000000000,从早上到现在还没好,orz......, 05/27 16:36
14F:→ rdmtb:大概是电脑太旧了. 05/27 16:36







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP