c++和python 既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?C語(yǔ)言實(shí)際上是一種“舊”和“底層”語(yǔ)言。其執(zhí)行效率僅次于匯編語(yǔ)言。它之所以古老是因?yàn)镃語(yǔ)言出現(xiàn)得很早。盡管FORTRAN和COB
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
C語(yǔ)言實(shí)際上是一種“舊”和“底層”語(yǔ)言。其執(zhí)行效率僅次于匯編語(yǔ)言。
它之所以古老是因?yàn)镃語(yǔ)言出現(xiàn)得很早。
盡管FORTRAN和COBOL比C語(yǔ)言出現(xiàn)得早,但現(xiàn)代主流操作系統(tǒng)(windows、Mac OS、Linux、IOS、Android、Unix)都是從C語(yǔ)言中誕生的。
最根本的原因是C語(yǔ)言被設(shè)計(jì)用來同時(shí)編寫匯編語(yǔ)言。從理論上講,它可以用外匯來表示。匯編語(yǔ)言是最有效的語(yǔ)言。
所以Python是用C語(yǔ)言編寫的也就不足為奇了。它與能否生成exe無關(guān)。
Exe文件是Windows平臺(tái)的專用格式。最簡(jiǎn)單的exe是com可執(zhí)行文件。EXE文件實(shí)際上由引導(dǎo)加載程序和解釋器組成。
由Python語(yǔ)言生成的代碼只能通過引導(dǎo)加載程序和解釋器作為EXE文件執(zhí)行。
因此Python生成EXE文件并不困難。只是它是否愿意提供的問題。
作為初學(xué)者,選擇什么語(yǔ)言取決于自己的基礎(chǔ)和行業(yè)的需要。不同的語(yǔ)言有不同的難度和不同的行業(yè)應(yīng)用場(chǎng)景,所以選擇要有針對(duì)性。!如果你是理工科背景,有扎實(shí)的數(shù)學(xué)基礎(chǔ)和物理基礎(chǔ),那么選擇C語(yǔ)言一定是正確的選擇。雖然C語(yǔ)言的學(xué)習(xí)不是很難,但是與Python相比,它是很難的。
作為計(jì)算機(jī)專業(yè)的學(xué)生,他們應(yīng)該聽過譚浩強(qiáng)先生的名字,而且大多數(shù)人都讀過譚浩強(qiáng)先生的杰作:C語(yǔ)言編程。據(jù)說這本書是計(jì)算機(jī)圖書的銷售記錄保持者。
無論如何,這樣一本經(jīng)典的書是值得一讀的。學(xué)習(xí)C語(yǔ)言的難點(diǎn)在于許多概念需要建立圖感,如內(nèi)存空間的應(yīng)用、指針操作等。
因此,如果您想從事web開發(fā)、大數(shù)據(jù)、機(jī)器學(xué)習(xí)等領(lǐng)域,學(xué)習(xí)Python是一個(gè)不錯(cuò)的選擇。目前,我一直在用Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法,這比Java方便得多。
Python的特點(diǎn)是簡(jiǎn)單、清晰和優(yōu)雅。使用過Python的朋友也應(yīng)該有同樣的感受:Python非常簡(jiǎn)單,Python非常慢。
如果你是非理工科專業(yè),如果你想從事Web開發(fā)(非大數(shù)據(jù)和人工智能),如果你想快速掌握一門語(yǔ)言,那么Python一定是個(gè)不錯(cuò)的選擇。使用Python來開發(fā)大數(shù)據(jù)和機(jī)器學(xué)習(xí)需要一定的數(shù)學(xué)基礎(chǔ),其中必須理解線性代數(shù)和概率論。
如果您對(duì)Python感興趣,請(qǐng)看一下我在頭版上寫的系列文章。如果你有什么問題,可以和我聯(lián)系。
c語(yǔ)言和python語(yǔ)言哪個(gè)更值得學(xué)?
在前一段時(shí)間,我一直認(rèn)為引入C編程語(yǔ)言是一個(gè)非常好的選擇。其實(shí)C語(yǔ)言更適合初學(xué)者學(xué)習(xí)。
對(duì)于C語(yǔ)言學(xué)習(xí),我建議您查看郝斌的C語(yǔ)言課程。解釋得很詳細(xì)。我學(xué)習(xí)了這個(gè)教程。
如果您使用python,入門也是一個(gè)不錯(cuò)的選擇。
Java是迄今為止使用最多的語(yǔ)言。今天我覺得可以用java開始了。但是,要開始學(xué)習(xí),您必須只選擇學(xué)習(xí)面向?qū)ο笄懊娴闹R(shí)。如果初學(xué)者一起加入面向?qū)ο蟮膶W(xué)習(xí)。你會(huì)發(fā)現(xiàn)你可以崩潰。
只有完成面向?qū)ο蟮娜^程后,非常熟悉,才能進(jìn)行面向?qū)ο蟮膶W(xué)習(xí)。
如果您有任何問題,請(qǐng)指出。
編程初學(xué)者應(yīng)該先學(xué)C 、Java還是Python?
我想我們應(yīng)該先學(xué)C,然后學(xué)python,最后學(xué)C
首先,C的語(yǔ)法很簡(jiǎn)單,但是因?yàn)樗咏讓?,你?huì)理解很多編程的精髓,比如內(nèi)存的精髓,程序操作的精髓,指針精度的精髓。關(guān)鍵是這些都不難,你可以用更多的方法理解它們。但是C語(yǔ)言只適合初學(xué)者,因?yàn)樗拈_發(fā)效率低,解決問題的時(shí)間長(zhǎng),即開發(fā)效率低(當(dāng)然實(shí)現(xiàn)效率高)。
由于C的高效率,它經(jīng)常被用來開發(fā)操作系統(tǒng),而且操作系統(tǒng)不需要C的花哨語(yǔ)言特性。當(dāng)然,大多數(shù)人都不會(huì)接觸到操作系統(tǒng)的開發(fā)
Python是瑞士軍刀。似乎它什么都能做。但如果你想擰,是瑞士軍刀還是獨(dú)立的?必須是獨(dú)立螺絲刀!但用瑞士軍刀,擰就不急了。為什么要買獨(dú)立螺絲刀?而且瑞士軍刀使用起來可能有點(diǎn)不方便,但肯定比出門買獨(dú)立螺絲刀方便多了!這是Python的最大優(yōu)勢(shì)。它有一個(gè)非常完整的圖書館,無論是官方的還是第三方的。經(jīng)過十多年的積累,它是一個(gè)巨大的集群。因?yàn)镻ython的語(yǔ)法很簡(jiǎn)單,甚至接近偽代碼,所以Python對(duì)我來說是用來解決問題的,達(dá)到目的的,其他呢?閉嘴
!C最不適合作為編程入口,因?yàn)樗囊?guī)則太復(fù)雜了,對(duì)于新手來說,學(xué)習(xí)這些東西的時(shí)候,很容易嚇人!什么是顯式構(gòu)造,什么是復(fù)制構(gòu)造,為什么析構(gòu)函數(shù)需要虛函數(shù),什么是虛基類,什么是運(yùn)算符重載規(guī)則,指針和引用之間的差異,模板的黑魔法是什么,標(biāo)準(zhǔn)庫(kù)將要做的是,它的許多特性使編程變得神奇。當(dāng)使用者使用咒語(yǔ)施展魔法時(shí),他們會(huì)有強(qiáng)烈的成就感。但是當(dāng)你對(duì)咒語(yǔ)知之甚少時(shí),一旦你犯了錯(cuò)誤,你就需要閱讀圣經(jīng),花很多時(shí)間去理解它們。
所以我建議您從C開始,先了解基本語(yǔ)法,然后再深入了解其精髓,這對(duì)您下一步學(xué)習(xí)Python很有幫助。然后學(xué)習(xí)Python并嘗試用它做一些事情。你會(huì)發(fā)現(xiàn)蟒蛇的力量。最后,學(xué)習(xí)C語(yǔ)言,雖然有人說C語(yǔ)言的魔力太復(fù)雜了,但目前市場(chǎng)上對(duì)C程序員的需求還是很大的,因?yàn)镃語(yǔ)言的開發(fā)效率比C語(yǔ)言快,運(yùn)行效率是Python和其他腳本語(yǔ)言無法比擬的,所以C語(yǔ)言是市場(chǎng)上的剛需。
C C Python哪個(gè)更適合新手?
C與C語(yǔ)言兼容,但C語(yǔ)言不能與C兼容
因此,C代碼不能直接轉(zhuǎn)換為C。
我們只能在代碼中邏輯地實(shí)現(xiàn)C的許多語(yǔ)法。
例如,將對(duì)象轉(zhuǎn)換為結(jié)構(gòu),將對(duì)象封裝的函數(shù)修改為獨(dú)立函數(shù),并添加對(duì)象參數(shù)。
移除重載,并根據(jù)需要使用不同的名稱調(diào)用非重載函數(shù)。
簡(jiǎn)而言之,如果我們堅(jiān)持將C轉(zhuǎn)換為C,那么代碼重寫的工作是不可避免的。