亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的混合語言編程及其實現(xiàn)研究

        2022-07-01 17:01:29盧紹兵
        科技資訊 2022年14期
        關(guān)鍵詞:數(shù)據(jù)分析

        盧紹兵

        摘??要:Python屬于ABC語言替代品,能夠為語言編程提供高效、高級的數(shù)據(jù)結(jié)構(gòu),有效面對對象進(jìn)行編程操作。Python編程語言的設(shè)計風(fēng)格一般比較清晰統(tǒng)一,這使得Python編程語言能夠簡單易懂,維護(hù)起來也十分便利,所以被很多大眾所接受和喜歡,應(yīng)用推廣速度比較快。Python是目前一種常用的腳本語言,在混合語言編程的軟件開發(fā)中具有很好的應(yīng)用效果。該文對Python編程語言進(jìn)行論述,研究Python編程語言的語言風(fēng)格、語言優(yōu)點等,并探究其在混合語言編程中的應(yīng)用和實現(xiàn)。

        關(guān)鍵詞:Python???混合語言編程???數(shù)據(jù)分析???軟件

        中圖分類號:?TP313????文獻(xiàn)標(biāo)識碼:A???文章編號:1672-3791(2022)07(b)-0000-00

        Research?on?Mixed?language?Programming?Based?on?Python?and?Its?Implementation

        LU?Shaobing

        (Yunnan?business?college,?Kunming,?Yunnan?Province,??651701?China)

        Abstract:?Python?is?an?alternative?to?ABC?language,?which?can?provide?efficient?and?advanced?data?structure?for?language?programming?and?effectively?program?objects.?The?design?style?of?Python?programming?language?is?generally?clear?and?unified,?which?makes?python?programming?language?easy?to?understand?and?convenient?to?maintain.?Therefore,?it?is?accepted?and?liked?by?many?people,?and?its?application?and?promotion?speed?is?relatively?fast.?Python?is?a?commonly?used?scripting?language,?which?has?a?good?application?effect?in?the?software?development?of?mixed?language?programming.?This?paper?discusses?the?python?programming?language,?studies?the?language?style?and?language?advantages?of?Python?programming?language,?and?explores?its?application?and?implementation?in?mixed?language?programming.

        Key?Words:?Python;?Mixed?language?programming;?Data?analysis;?Software

        1.1語言風(fēng)格

        Python屬于ABC語言替代品,能夠為語言編程提供高效、高級的數(shù)據(jù)結(jié)構(gòu),有效面對對象進(jìn)行編程操作[1]。Python編程語言的設(shè)計風(fēng)格一般比較清晰統(tǒng)一,這使得Python編程語言能夠簡單易懂,維護(hù)起來也十分便利,所以被很多大眾所接受和喜歡,應(yīng)用推廣速度比較快[2]。Python編程語言開發(fā)以特定的問題為基礎(chǔ),選擇最有效的方式來解決問題[3]。Python編程語言具有一定的限制性,在編程中,不良的編程習(xí)慣會造成編程不能通過編譯[4]。例如:IF語句的下一行不向右縮進(jìn),在Python編程語言中,縮進(jìn)規(guī)是至關(guān)重要的一部分,相對于其他語言來說,Python編程語言最突出的特點是模塊界限,這主要是每行的首字符位置來決定的,但是其他語言,例如C語言等,則是通過“{}”來對于模塊界限進(jìn)行確定。

        1.2語言優(yōu)點

        Python編程語言的優(yōu)點比較多,使用Python編程語言簡單易學(xué),Python編程語言可以免費使用,編程速度快,具有一定的可移植性和解釋性,具備一定的拓展性和可嵌入性[5]。

        Python編程語言是一種簡單的思想語言,具有良好閱讀基礎(chǔ)的Python編程員在對Python編程的閱讀中,就像是在閱讀英語一樣,可以幫助編程員把握關(guān)鍵問題,解決問題,而不是研究語言本身。因為Python編程語言具有一定的簡單性,清楚明了,容易理解,所以學(xué)習(xí)Python編程語言難度也相對低一些,在Python編程語言中,包含說明文檔,能夠幫助理解[6]。Python編程語言底層通過C語言編寫,很多標(biāo)準(zhǔn)款、第三方庫都是借助C語言進(jìn)行編寫,所以運行速度比較快。此外,Python編程語言也是FLOSS的重要祖晨部分,應(yīng)用這可以自由發(fā)布軟件拷貝,對相應(yīng)源代碼進(jìn)行閱讀和改動,且能夠?qū)⑵鋺?yīng)用到軟件中。開源本質(zhì)讓Python編程語言可以被移植到更多的平臺中。Python編程語言是編譯性語言,能夠?qū)⒃次募D(zhuǎn)換到用戶計算機(jī)所使用的語言中。這一過程通過編譯器和不同標(biāo)記、選項等共同完成。在對程度進(jìn)行運行中,連接軟件對用戶程序復(fù)制和內(nèi)存運行都有一定幫助。借助Python編程語言編寫的程序不需要進(jìn)行二進(jìn)制編譯就可以在源代碼中進(jìn)行相應(yīng)程序的運行。計算機(jī)內(nèi)部,Python編程語言解釋器可以將源代碼進(jìn)行轉(zhuǎn)換,使其成為字節(jié)碼中間形式,再將其翻譯成計算機(jī)語言運行,能夠讓Python編程語言應(yīng)用變得更加簡單,程序移植也更加簡單。Python編程語言支持面向過程編輯,也能夠支持面向?qū)ο缶幊?,在向過程中語言中,程序通過過程或使用重用代碼函數(shù)構(gòu)建。在面向?qū)ο笳Z言中,Python編程語言包含功能和數(shù)據(jù)組合對象。Python編程語言的可拓展性能夠讓語言嵌入到其他語言中,可以提供必要的基本功能。

        2.基于Python的混合語言編程

        2.1混合語言編程軟件結(jié)構(gòu)框架

        Python編程語言應(yīng)用到混合語言編程中,一種是進(jìn)行拓展,另一種是通過嵌入來實現(xiàn)。其中,拓展是通過從C語言實現(xiàn)對Python的拓展,需要從相應(yīng)編程語言中進(jìn)行對應(yīng)模塊功能的調(diào)取和應(yīng)用。而嵌入的實現(xiàn)主要是通過Python解釋器來實現(xiàn)的,通過Python解釋器在相應(yīng)程序中應(yīng)用來實現(xiàn),這樣相應(yīng)的應(yīng)用程序可以解釋Python的腳本程序,確保編程目標(biāo)的實現(xiàn)。

        2.2典型程序結(jié)構(gòu)

        在C語言源程序中,Python拓展模塊具備一定的代表性,例如:Python.h頭文件,文件在Python的所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)以及函數(shù)原型都可以進(jìn)行定義;但是同時也需要定義一個例外對象,這一個對象主要是針對例外對象來說的。這一模塊主要是對函數(shù)的實現(xiàn)方式進(jìn)行定義,通過函數(shù)來將參數(shù)表示的Python對象進(jìn)行轉(zhuǎn)換,使其如何C語言程序的格式要求,在處理好格式后,轉(zhuǎn)換成Python對象,最后傳回Python解釋器。如果這一過程中出現(xiàn)異常問題,則可以借助已經(jīng)設(shè)定的例外對象實現(xiàn)返回。在源程序中,需要對拓展模塊定義的函數(shù)名以及函數(shù)實現(xiàn)對應(yīng)關(guān)系列表,以此來實現(xiàn)相應(yīng)拓展模塊的函數(shù)初始化操作。除了一般的手工代碼編寫途徑,還能選擇通過自動化工作來實現(xiàn),可以借助SWIG,通過對現(xiàn)有的代碼進(jìn)行掃描,自動生成需要的代碼,這樣做也可以在一定程度上促進(jìn)遺留代碼轉(zhuǎn)化效率提升?,F(xiàn)階段,SWIG在很多大型科學(xué)計算項目開發(fā)中都有很好的應(yīng)用效果。相對于一般模塊化的拓展來說,Python中嵌入應(yīng)用程序,可以結(jié)合具體的嵌入目的差異來實現(xiàn),為用戶提供多種選擇,這些嵌入還會對應(yīng)用程序?qū)S猛卣巩a(chǎn)生影響,所以,嵌入的實現(xiàn)相對更為繁瑣,其主要原理則是通過Python提供的C?API來實現(xiàn)數(shù)據(jù)格式轉(zhuǎn)化,借助例外處理的方式來實現(xiàn)程序設(shè)計目標(biāo)。

        2.3?Python與C/C++實現(xiàn)混合編程的程序設(shè)計要點

        Python自身存在一定的不足,Ctypes?是一個為?Python?準(zhǔn)備的外部函數(shù)庫。它提供兼容C的數(shù)據(jù)類型,并允許調(diào)用DLL或共享庫中的函數(shù)。通過它,可以使用純粹的?Python?包裝這些函數(shù)庫。下面就分享一部分Python與C/C++實現(xiàn)混合編程的程序設(shè)計:

        在vs2017新建一個空文件testpy3,新建文件test.c和math_test.py

        //test.c

        #include?<Python.h>

        int?main(int?argc,?char?*argv[])

        {

        //設(shè)定參數(shù)值

        int?a=3;

        int?b=6;

        //初始化

        Py_SetProgramName(argv[0]);

        Py_Initialize();

        //測試python3的打印語句

        PyRun_SimpleString("print('Hello?Python!')\n");

        //執(zhí)行import語句,把當(dāng)前路徑加入路徑中,為了找到math_test.py

        PyRun_SimpleString("import?os,sys");

        PyRun_SimpleString("sys.path.append('./')");

        //測試打印當(dāng)前路徑

        PyRun_SimpleString("print(os.getcwd())");

        PyObject?*pModule;

        PyObject?*pFunction;

        PyObject?*pArgs;

        PyObject?*pRetValue;

        //import?math_test

        pModule?=?PyImport_ImportModule("math_test");

        if(!pModule){

        printf("import?python?failed?。。躰");

        return?-1;

        }

        //對應(yīng)math_test.py中的def?add_func(a,b)函數(shù)

        pFunction?=?PyObject_GetAttrString(pModule,?"add_func");

        if(!pFunction){

        printf("get?python?function?failed?。。。躰");

        return?-1;

        }

        if(!pModule){

        printf("import?python?failed?。。躰");

        return?-1;

        }

        Py_Finalize();

        //方便查看

        while(1);

        return?0;

        }

        通過Python與C/C++實現(xiàn)混合編程,用C或C++改寫關(guān)鍵部分,可以提高運行速度。

        參考文獻(xiàn)

        [1] 劉曜碩.Python與R語言混合編程方法的實踐[J].電子技術(shù)與軟件工程,2021(5):40-41.

        [2] 韓婷,劉暢,趙若晗,等.基于C語言和MATLAB的混合編程在醫(yī)學(xué)圖像處理課程中的應(yīng)用[J].軟件,2018,39(10):26-29.

        [3]? 宮薇薇,齊向春,裴世廉.?Python與R語言混合編程方法的研究和應(yīng)用[J].?計算機(jī)應(yīng)用與軟件,2018,35(1):28-31.

        [4] 潘俊男.三種語言在N體模擬中的計算效率比較研究[D].?大理:大理大學(xué),2021.

        [5] 劉正.?積木式python編程系統(tǒng)的研究與實現(xiàn)[D].?北京:北京郵電大學(xué),2020.

        [6] 耿穎.使用Python語言的GUI可視化編程設(shè)計[J].?單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2019,19(2):20-22,44.

        猜你喜歡
        數(shù)據(jù)分析
        我校如何利用體育大課間活動解決男生引體向上這個薄弱環(huán)節(jié)
        體育時空(2016年8期)2016-10-25 18:02:39
        Excel電子表格在財務(wù)日常工作中的應(yīng)用
        淺析大數(shù)據(jù)時代背景下的市場營銷策略
        新常態(tài)下集團(tuán)公司內(nèi)部審計工作研究
        中國市場(2016年36期)2016-10-19 04:31:23
        淺析大數(shù)據(jù)時代對企業(yè)營銷模式的影響
        基于讀者到館行為數(shù)據(jù)分析的高校圖書館服務(wù)優(yōu)化建議
        科技視界(2016年22期)2016-10-18 14:37:36
        亚洲成在人线av| 无码人妻丰满熟妇区免费| 亚洲一区自拍高清亚洲精品| 欧美熟妇精品一区二区三区| 最新日韩av在线不卡| 午夜视频手机在线免费观看| 日韩av无码社区一区二区三区| 国产sm调教视频在线观看| 国产偷国产偷高清精品 | 极品美女扒开粉嫩小泬图片| 国产国语熟妇视频在线观看| 国产亚洲精品日韩综合网| 长腿丝袜在线观看国产| 狠狠cao日日橹夜夜十橹| 少妇人妻偷人精品免费视频| 在线无码国产精品亚洲а∨| 国产亚洲精品综合在线网站| 少妇高潮av久久久久久| 女女女女bbbbbb毛片在线| 国产一级淫片a免费播放口| 日韩不卡一区二区三区色图| 亚洲日韩激情无码一区| 区二区欧美性插b在线视频网站| 超级少妇一区二区三区| 精彩视频在线观看一区二区三区| 女人被狂躁c到高潮视频| 五十路熟久久网| 性色av手机在线观看| 人妻少妇偷人精品久久性色av| 18禁裸男晨勃露j毛免费观看| 国产精品中文第一字幕| 国产韩国一区二区三区| 精品人妻少妇嫩草av无码专区| 久久精品国产精品亚洲毛片 | 免费的日本一区二区三区视频 | 久久久久亚洲av无码专区首 | 日韩国产一区二区三区在线观看 | 欧美黑人xxxx又粗又长| 精品视频在线观看免费无码| 国产精品一品二区三区| 亚洲国产一二三精品无码|