本文目錄一覽:
python是什麼樣的編程語言?
python是什麼編程的高級語言?
Python是一種面相對象、解釋型的計算機程序語言,並已成為學習數據科學、虛擬現實和人工智能的首選編程語言,其設計哲學是「優雅」,「明確」,「簡單」。易上手,及時反饋的特點成了很多入門編程世界的首選。同時Python也是一種相當高級的語言,擁有豐富和強大的第三庫,可引用各種模塊並很輕鬆的連接在一起。眾多社交網站如Reddit, 豆瓣,知乎,Dropbox, YouTube,果殼等都是由Python完成。
最初對python的印象是在紀錄片《互聯網之子》中Aaron Swartz從MIT的圖書館截取的那些文件資料用的程序就是用python寫的,當時對python心生蕩漾,但很快就灰飛煙滅,因為沒有後續聯接和交集。
個把月前我看到一個python基礎班,當時還不知道Python是什麼樣的編程語言(即使到現在也還不完全了解Python具體可以做啥),從哪裡來要去哪裡,完全不了解的情況下按了報名鍵。我自認為的優點是儘力為自己的行為買單,且只能是默默的,不可讓一時衝動太聲張,也不能恬不知恥的說那是epiphany,而是盡量去探詢已成事實的一二。
培訓班不上課,沒有講義和資料,只分配任務和引導卡片,剛開始也會心有戚戚焉,在白紙上亂畫我還得知道怎麼握筆呢,可是在鍵盤上亂敲肯定不會有驚喜,錯誤提示都看不懂,別說去修Bug。程序裝了卸,卸了裝,操作也是胡亂使用添加,電腦最終無法忍受這樣的主就自動癱瘓裝死,只得我重裝系統又如獲新生,也算如實貫徹了打小的信念「生命在於折騰」。厚着臉皮長大的人是天生被上帝眷顧着的,基本不會心生『不好意思』的念頭,不懂就問同學嘛!一個不行換另一個,哪怕被認為問了「愚蠢」的問題。匍匐着向前,只要方向對了,那也是進步吧!
就像學外語着得把身處周圍的環境變量調整過來,讓自己置身在那個世界中去感受和徜徉,身上細胞的張合大小,呼吸的進出頻率也慢慢跟上節奏。除了Python本家,編譯程序(Windows上我使用Atom, MAC使用TextWrangler)和運行終端(Windows PowerShell 或Terminal)外,接觸最多的就是 Github, Google 還有新歡Markdown (MOU)。
——-Github 是世界上最大的代碼存放網站和開源社區,副名是:最大的同性交友網站,因其界面設計很容易對號入座。儘管那原是Geek的天地,如今越來越多的其他門派弟子也加入其中,大家都帶着靈敏的嗅覺,看哪好就往裡鑽。他是協作項目最好的實現平台,支持異地,不同電腦的項目更新,特別是不同動作之前的區別和個別動靜的比較清晰可見,操作人性化。很多人在上面寫書,協作翻譯,項目管理、設計資料庫、科研項目數據及個人簡歷都放上面,還有人把自己的健身記錄也放上面。據說有公司招聘還需要看應聘者的github賬號。最最重要的是一切都是免費,只要你想。(儘管有收費的,那是針對個別私人想要數據保密的公司)。之前在別處看到github這個詞就當是熟悉的陌生人,熟悉「github”這6個字母組成的單詞,但完全不知道那是什麼樣的世界。現只是輕輕推移了那扇門,門縫裡漏出的光都覺足夠耀眼並思忖着想探尋更多。
-——Google 本不需要多提,原來也是每天在使用。可Google貌似與Python有真感情,每次搜索打Python開頭的關鍵字,出來的第一條結果往往就是正確答案且出自Google自家,比Python的官方文件還顯情真意切。
-——Markdown 人稱寫作神奇,是我刻意關注並想收入囊中的工具,想讓她陪伴着我寫下去,目前還有待開發。
如他程序Python基本命令零容錯,標點符號,大小字母,縮進都有嚴格的規定,更別提邏輯關係,循環迭代,有一處不對就報錯。對小白來說修Bug的時間會比寫程序的時間還長,修復一個bug,報出新的bug已經算是一種進步了。在編程時,若習慣了這些嚴苛的標準到不是非常難,錯一次磕一下頭,同一個錯多犯幾次,就多磕幾次,即使擦破頭皮反正不至於亡命天涯,總歸能牢記於心。當從程序世界抽離自己回到現實世界,真感覺對待其他事是不是太隨意了。至少我打這些文字的時候根本沒注意「的」和「地」的區別,逗號和句號看心情而定,習慣了新段落前不空兩格。工作中仔細的程度沒法用尺衡量,也不會有程序直接報錯,免不了能略就略,可以將就過去就不願多費心思,短期可能沒有意外,總歸長久不了,埋下的地基是作為將來向上的支撐。自從學習編程以來,已開始反思,雖還沒改進多少,可像顆釘子被扎着總覺不適,不時提醒自己。
作為一門高級語言,靈活性和包容性對第三方庫有着無限的吸引力。據說C++用200行命令,Java的40行而Python只需20行可實現同樣的功能。雖然基本命令的嚴苛像個固執的老學究,但若掌握了要領,成了武林高手,各種技巧靈活運用,自由發揮,蓋世武功盡情發揮。只要有本事,任你翻雲覆雨,去到『風所到達的地方』。
Python的一大特點是代碼只在命令運行時才會被檢查執行,即使隱藏了錯誤,若沒運行到,永遠發現不了。很像身體或任何世間體制內的事,大家只關心呵護眼見為實,真實的隱藏只被激發時才被注意到。為了掃清後顧之憂,我們使用『及時反饋』策略,就是碼幾行程序,馬上print出來,看效果如何,而不是等敲完所有的程序,才發現一團亂麻卻不知如何進行手術。這是平時學習很好借鑒的地方,走一段路得停一下檢查是不是在正確的道上,一方面可及時調整姿態,重要的是用小小的可見成果作為的漫漫前方道路的鼓勵。
如果我的回答對您有所幫助,記得點亮採納哦,謝謝啦!
python背後是一項科技運動
比較官方的說法,python是一種解釋型語言,解釋型語言是指代碼一行一行的解釋執行,就好像有個 同聲傳譯 ,你每說一句話,他都能不間斷地給你翻譯,把你說的話(意指寫好的代碼)翻譯成機器能夠理解的語言。對於機器來說,這些翻譯後的語言就是機器語言,就是指令,機器收到指令後,就會根據指令執行對應的操作。
與解釋型語言相對的,有編譯型語言,編譯型語言則通過編譯器先將代碼翻譯成機器語言,再交給機器去執行。舉個例子,我方主持了一個會議,參會的分別有英國人、俄國人和西班牙人,他們三方都帶了自己的同聲傳譯。假如是解釋型語言呢,我在開會的時候用一種每個同聲傳譯都聽得懂的的語言,也就是一種官方用語。這樣我可以不間斷地用這種語言來做交流,因為這些翻譯人員都會為這三國參會人員同步翻譯成目標語言,你應該也注意到了,解釋型語言類似於一種通用的語言。而如果是編譯型語言呢,我會讓我這邊的3個翻譯人員將我的一份中文演講稿,分別翻譯成英文版的、俄文版的和西班牙語版的,在開會的時候,我只要交給參會的國際友人去翻閱就好了。解釋型語言側重的是一種通用的、能夠實時解釋翻譯的特性,而編譯型語言側重的是有針對性、提前準備的特性。然而,在開會的時候,解釋型效率是沒有那麼高的,因為需要同聲傳譯消耗時間去做翻譯,而編譯型的效率會高些,因為翻譯工作已經在開會前做好了,只需要參會人員理解並且執行就好。
1989年的聖誕節,荷蘭程序員Guido van Rossum( 吉多·范羅蘇姆 ,以下簡稱吉多)在家休假無聊,為了打發時間,他開發了一種新的解釋型語言。可見,該程序員無聊的時候,就是寫代碼。因為作者非常喜歡 Monty Python’s Flying Circus (巨蟒劇團之飛翔的馬戲團,這是英國的一個電視喜劇),就拿python作為這個新語言的名字。我想大家不一定都知道這部喜劇,但是可能都聽說過python,可能微信在幾天前給你推過python相關的培訓廣告,可能一些學校已經將掌握python基礎概念作為一門選修課,可能你的智能家居里的操作系統有一部分核心代碼是用python實現的,可能你的手機里有一個插件也是用python實現的,python現在的應用範圍非常廣泛,功能也非常強大。
吉多之前在 荷蘭數學和計算機科學研究學會 上班,在那裡,他為ABC編程語言工作了好多年。 ABC語言長這樣的
這是一個函數,你也許看不懂,根據英文單詞,或許可以大概猜出點什麼。這裡只想讓你知道,python也差不多長這樣,相比較會更容易理解些。
ABC雖然是一門編程語言,它的定位是作為教學或原型設計的工具,是專門為學校老師或者科研人員設計的。ABC的定位決定了它受眾不是很廣泛,並且它也有使用門檻,對計算機不了解的人,沒有經過一段時間的學習,可能根本就上不了手。所以,ABC並不能作為一門通用的編程語言,在業內也無法獲得成功。雖然說ABC沒有python那麼成功,但是ABC可以說是”the mother of python”,作者在很多地方都借鑒了ABC,取其精華、取其糟粕。現如今,python是長這樣的
可能對於沒接觸過編程的人來說,它們兩不都是一樣的,不都是一堆英文字母么,我都看不懂。但是對於初學計算機課程,那些需要學習C語言的人來說,python相比較算是更容易理解了。python非常簡短,一些複雜的流程,在C語言中,可能需要幾十行代碼,但是在python中,可能就只需要幾行代碼。當然不同的業務場景,可能不是這樣的,但是普遍情況下,用python的開發效率是非常高的。python適合快速開發,適合產品快速迭代出新。
1999年1月,也就是語言面世的10年後, 吉多 向DARPA(Defense Advanced Research Projects Agency,美國國防部一個負責科研的下屬機構)申請資金。我去翻了下該申請的修訂版,修訂版在1999年8月份提交,修訂版比第一版內容更具有概括性,並且內容翔實,條理清晰,值得翻閱。
該修訂版叫 Computer Programming for Everybody ,直譯過來,就是針對每個人的計算機編程,翻譯為通俗易懂的詞——人人編程,人人編程是一種 社會 現象,每個人都有一定的編程能力,並且對計算機有一定的認識,了解軟硬件是怎麼運轉起來的,了解一些軟硬件的設計規範,能夠通過編程來表達自己的想法,能夠通過編程來配置自己的軟件,通過編程來控制自己的機器,以改善自己的生活。舉個例子,你在某寶買了一個掃地機械人,該機械人支持定義打掃路線,支持設置掃地機械人在需要更換掃把的時候,指示燈顯示指定的顏色。你知道掃地機械人可以做什麼,有什麼操作習慣,這是基於你對一些機器的理解,如果你用過很多軟件,或者參與過軟件的設計,你大概都知道一些軟件可能都有「設置」、「編輯」或「幫助」等菜單鍵。這種設計思維,或者操作習慣,都是很多軟件都有的,有了這種認識之後,你面對很多同類型的軟件、或者同類型的產品,就大概能夠知道從那裡入手,以及對它有什麼功能,都有一個初步的期待或者認識。既然大家都了解計算機了,那麼計算機的一些概念或者說是理念,可以說是屬於常識的一部分,面對一些計算機或者說智能設備,也大概知道從哪裡上手使用。我覺得這就是作者要達到的願景。
該修訂版主要有幾個目的:
在這裡,他想從推廣python開始,因為python作為一門適合快速開發的工具,既適合專家,也適合初學者,同時python有一個活躍的且不斷增長的用戶群體,這個用戶群體對他這個申請也非常感興趣,願意為之努力。python的用戶數多,說明已經在市場得到了一定的認可,並且這個用戶群體也願意為python的發展做貢獻,這對於一門編程語言來說,最好不過了。
該提案的 基本論點 部分寫得很好,他說他想普及計算機應用,但並非通過介紹新的硬件,或者新軟件這種形式,而是通過賦予每個人編程能力來實現。信息技術的發展給了人們各種強大的計算機,它們以桌面電腦、筆記本電腦或者嵌入式系統的形式存在,如果用戶在軟件設計和實現上有一個通用的認知,那將會極大地促進生產和創造,並且對未來有深遠的影響。試想一下,如果你有一種修改和配置軟件的能力,並且你可以把你的修改通過社區網站分享其他人,其他人碰到同樣的問題的話,就可以參照你的方法。這種能力在緊急的情況下是很重要的,你不必等專家來給你解決問題,你自己就可以嘗試解決這些問題。說到這裡,你有沒有想起貼吧,或者論壇,論壇有很多個板塊,不同的領域分不同的板塊,假如你想root手機(手機越獄,指解除手機廠商的限制,獲取手機的用戶最高權限,以實現對手機的某種控制),你可以到論壇上root板塊找答案,這種形式可謂跟吉多提到的是一樣的。如果你對你的手機或者電腦有更深入的了解,你可以通過編程改善你的輸入法,或者改變你的顯示器冷暖色等等,這些都是對你生活有幫助的。吉多在這裡就是想達到這種狀態,簡單點說,人人都對計算機有一定的了解,且都有處理計算機問題的能力。
為了實現這個目標,作者制定了5年計劃,這個5年計劃如下:
5年計劃循序漸進,由淺入深。1999年3月,美國國防部對此進行了回應,同意撥款給他。作者的5年計劃在1999年底開始實施,雖然想推進5年,但是只收到1年的資金支持。不過,作者還是沒有放棄這個項目,一直推進,直到他不再參與python的工作。當時美國國防部對他們提供了多少資金呢,我沒看到官方公開的數據。2013年有報道稱,DARPA向Continuum Analytics提供3百萬美元的支持,讓該公司給python開發數據處理以及數據可視化工具。具體數字是否可靠,這個尚不清楚,但管中窺豹,可見美國國防部對該項目表示認可,並提供了資金支持。Continuum Analytics有一個比較有名的工具,叫Anaconda,Anaconda可以理解為是python + 各種科學計算庫的工具箱,Anaconda官網有這麼一句話
翻譯為「Continuum Analytics的Anaconda是使用python的、領先的開源科學計算平台,我們賦予那些正在改變世界的人超能力。」
在查資料的時候,我發現了一個wiki論壇, 該論壇對該項目進行了評價,論壇列出了該項目成功的地方和失敗的地方,以及一些 社會 人士的看法。論壇這樣總結道,這個項目成功的地方在於:
這個項目失敗的地方在於:
回想自己初學python的時候,我覺得這個總結是很公正的。python確實容易入門,有編程基礎的人可能只需要一個星期就能掌握python的一些基本語法。相比C語言,python對於初學者是很友好的,很容易讓人上手。但是,要深入理解python,並沒有這麼簡單,需要花很多時間去磨練。接手一個使用python的項目,你需要花一些時間精力去熟悉,去摸透裏面的邏輯,這對於初學者來說,是無法避免的。 對於一個程序員來說,作者能想像到以後計算機的普及應用,以及用戶的認知水平,還有他能夠做什麼,通過什麼來實現,能有這些遠大的抱負,這是非常不容易的。西方世界經常說到「change the world,make the world a better place」,作者也確實做到了,他設計的python在計算機世界裏扮演者一個非常重要的角色。如果通過 科技 能夠改變世界,那麼python就是改變世界的其中一步。1980-2000年,美國對 科技 公司是政策扶持、技術擴散,這期間湧現了如IBM、HP、思科等 科技 公司,大家熟知的微軟和蘋果都是在這期間上市的。python可以說是這個 科技 運動的一個縮影,在 科技 浪潮的推動下,python得到了長足的發展。
很多 科技 或工業相關的網站會根據當年編程語言的流行度做下排名,它們會列出當年在業界最受歡迎的編程語言。其中,IEEE Spectrum 和 TIOBE 的2021年度編程語言是python,如果我還沒記錯的話,TIOBE的2020年度編程語言也是python。可見python是非常受歡迎的,用現在的話講,就是「網紅」編程語言。現在,很多計算設備上都有python的身影,小到智能家居、手機、智能手錶,大到鋰電車、工控車床、甚至穿梭機都有python的身影。你可能在瀏覽網頁的時候,右下角彈出一個「7天python入門」的廣告,可見python現在還是有很多需求,因為有需求,所以才有人去投廣告,才會有人去找培訓機構。
作者在給美國國防部的提案中寫到,他想跟高中或大學展開合作,設計一些python的課程,針對不同年級,設計不同水平的課程。現在來看,他確實是做到了,現在哈佛、密歇根大學等排名靠前的大學,都有python課程,python在這些大學的CS(計算機科學)課程中應用非常廣泛,可以說是作為CS導論的一個教學工具。在一些比較高級的課程,比如數據科學、人工智能等都可以看到python的身影,這是因為學術界以及工業界為python提供了一些處理科學計算和大數據的工具,這也歸功於美國國防部的支持。美國有許多編程夏令營,針對不同年齡段有不同的課程,並且也有許多支持python代碼的編程競賽。Google在coursera上有一個面向初學者的課程,該課程叫 Google IT Automation with Python,完成課程大約需要 8 個月,課程建議每周花5小時學習,課程結束後就可以獲得Google頒發的證書。可見,不管是工業界,還是教育界,都對python有不同程度的支持。這裡打個岔,第一版的Google搜索引擎還是用python寫的,作者也在Google工作了一段時間。
現如今,每隔一段時間,就有一個PyCon活動,這個活動匯聚世界各地的開發者,每年都有開發者來展示他們使用python的成功案例,或者表達自己對python的新功能或者缺陷的看法。可見,python用戶社區一直都是很活躍的。這讓我想到了某新能源 汽車 ,該 汽車 用戶有很高的粘性,有一位車主跟我說過,他們有一個微信群,裏面有該新能源 汽車 的高管,很多車主樂意在裏面指出問題,或者提建議,因為這些高管會對問題或者建議做出相應的反饋。用戶願意提意見,產品經理願意廣開言路,採納多方建議,實屬不易。python社區也差不多如此。
幾年前,你是否看過一個新聞,《人工智能「網紅」編程語言Python進入山東小學課本》,這是2017年澎湃網的一則新聞,裏面講了python進入了山東省小學六年級教材,作為一門「網紅」編程語言,它是否適合低齡學生,這個倒是沒細說,但是可見國內有些地方是把編程作為一種比較基礎的能力來考量。python往低齡階段滲透是否合適呢,我在翻資料的時候瞥到韓國高麗大學的一篇論文,論文講述小學生在學習python的過程中會碰到一些困難,比如經常少打了一些括號,經常拼錯單詞,經常碰到語法錯誤,以及對這些現象的看法。還有,南京師範大學有一篇報道,講述了中學生學習在學習python時,採用面向問題的學習模式,我理解是case by case的教學模式,這種模式有利於學生培養學生的計算機思維,以及幫助他們理解一些計算機相關的概念,解決計算機相關的問題。
python是否適合低齡學生呢,我覺得這個是值得討論的話題。最後還要問你一句,你會讓你的小孩學習python么,從什麼時候開始學呢?你的娃因為不知道打多少個括號嚎啕大哭時,你能幫得上忙么?你到時候需要專門請一個程序員來給你的娃做家教么?
–
財務有必要學python嗎
在即將到來的人工智能時代,編程將成為我們的創造工具,甚至是使用工具的主要方法,和打字、英語一樣,成為人人都要掌握的基本技能。
在多年前沒幾個人家裡有電腦的時候,你們能想到,如今電腦會進入各個公司,office成為人人必備的辦公軟件嘛。
未來,python這種編程能力,也會成為人人必備的技能,畢竟,現在小學生都開始學python了,高考也加入python項目了,已經開始逐漸顯露出全民學編程的趨勢啦。
會計財務都離不開和數據打交道,而且每天有大量重複性工作,所以學習Python最大的用處是:釋放大部分人力對數據的處理,解放重複勞動性工作。
另外也在評估預算的時候,爬取自己所需要的數據,來進行對比。
因此會計主要的發展方向是Python技能與數據方面的能力。
舉一個學員的例子,小芬是半審計,半管理會計。她需要進行大文件操作,一個一整年的賬目文件大概有80萬行,用excel實行起來困難,根本原因是不會用SQL,想看看能不能用python實現類似的功能。
她的需求里,需要解決的四個表都在五十萬行以上,所以儘管只是簡單的vlookup操作,在Excel裏面還是很難做。
但這個需求用python解決就沒什麼問題,除了數據量有點大,可能需要分批處理。
學會python操作excel,然後可能學一學科學計算的第三方庫就差不多了。python裏面還有其他第三方製圖的,plotpy這個第三方庫也可以製圖。
寫好代碼,點擊運行,看着電影自動處理,看完電影直接驗收成果就好啦。
眾多python培訓視頻,盡在python學習網,歡迎在線學習!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/286445.html