編譯預處理和函數區別知乎
① 零基礎學python應該學習哪些入門知識
關於零基礎怎麼樣能快速學好Python的問題,網路提問和解答的都很多,你可以網路下看看。我覺得從個人自學的角度出發,應從以下幾個方面來理解:
1 為什麼選擇學python?
據統計零基礎或非專業的人士學python的比較多,據HackerRank開發者調查報告2018年5月顯示(見圖),Python排名第一,成為最受歡迎編程語言。Python以優雅、簡潔著稱,入行門檻低,可以從事linux運維、Python Web網站工程師、Python自動化測試、數據分析、人工智慧等職位,薪資待遇呈上漲趨勢。
2 入門python需要那些准備?
2.1 心態准備。編程是一門技術,也可說是一門手藝。如同書法、繪畫、樂器、雕刻等,技藝純熟的背後肯定付出了長時間的反復練習。不要相信幾周速成,也不能急於求成。編程的世界浩瀚無邊,所以請保持一顆敬畏的心態去學習,認真對待寫下的每一行代碼,甚至每一個字元。收拾好自己的心態,向著編程的世界出發。第一步至關重要,關繫到初學者從入門到精通還是從入門到放棄。選一條合適的入門道路,並堅持走下去。
2.2 配置 Python 學習環境。選Python2 還是 Python3?入門時很多人都會糾結。二者只是程序不兼容,思想上並無大差別,語法變動也並不多。選擇任何一個入手,都沒有大影響。如果你仍然無法抉擇,那請選擇 Python3,畢竟這是未來的趨勢。
編輯器該如何選?同樣,推薦 pycharm 社區版,配置簡單、功能強大、使用起來省時省心,對初學者友好,並且完全免費!其他編輯器如:notepad++、sublimeText 3、vim 和 Emacs等不推薦了。
操作環境?Python 支持現有所有主流操作平台,不管是 windows 還是 mac 還是 linux,都能很好的運行 Python。並且後兩者都默認自帶 Python 環境。
2.3 選擇自學的書籍。我推薦的書的內容由淺入深,建議按照先後順序閱讀學習:
2.3.1《Python簡明教程》。這是一本言簡意賅的 Python 入門教程,簡單直白,沒有廢話。就算沒有基礎,你也可以像讀小說一樣,花兩天時間就可以讀完。適合入門快速了解語法。
2.3.2 廖雪峰編寫的《Python教程》。廖先生的教程涵蓋了 Python 知識的方方面面,內容更加系統,有一定深度,有一定基礎之後學習會有更多的收獲。
2.4 學會安裝包。Python中有很多擴展包,想要安裝這些包可以採用兩種方法:
2.4.1 使用pip或easy_install。
1)在網上找到的需要的包,下載下來。eg. rsa-3.1.4.tar.gz;
2)解壓縮該文件;
3)命令行工具cd切換到所要安裝的包的目錄,找到setup.py文件,然後輸入python setup.py install
2.4.2 不用pip或easy_install,直接打開cmd,敲pip install rsa。
3 提升階段需要恆心和耐力。
完成入門階段的基礎學習之後,常會陷入一個瓶頸期,通過看教程很難進一步提高編程水平。這時候,需要的是反復練習,大量的練習。可以從書上的例題、作業題開始寫,再寫小程序片段,然後寫完整的項目。我們收集了一些練習題和網站。可根據自己階段,選擇適合的練習去做。建議最好挑選一兩個系列重點完成,而不是淺嘗輒止。
3.1 多做練習。推薦網站練習:
crossin編程教室實例:相對於編程教室基礎練習著重於單一知識點,
編程實例訓練對基礎知識的融會貫通;
hackerrank:Python 部分難度循序漸進,符合學習曲線
實驗樓:提升編程水平從做項目開始;
codewar:社區型編程練習網站,內容由易到難;
leetcode:為編程面試准備,對初學者稍難;
牛客網:提供 BAT 等大廠筆試題目;
codecombat:提供一邊游戲一邊編程;
projecteuler:純粹的編程練習網站;
菜鳥教程100例:基於 py2 的基礎練習;
3.2 遇到問題多交流。
3.2.1 利用好搜索引擎。
3.2.2 求助於各大網站。推薦
stackoverflow:這是一個程序員的知識庫;
v2ex:國內非常不錯的編程社區,不僅僅是包含程序,也包含了程序員的生活;
segmentfault:一家以編程問答為主的網站;
CSDN、知乎、簡書等
3.2.3 加入相關的QQ、微信群、網路知道。不懂的可以隨時請教。
② 計算機二級c語言怎麼學
1、首先當然是要看書,這里向大家推薦譚浩強編寫的《C程序設計》,目前是第四版。這本書寫的很細致,適合零基礎學習的新手
2、看完了書當然是要動手練習,剛開始你可以寫最簡單的hallo world,當你成功的寫完一個小程序時,心中會有很大的成就感。
3、如果你發現自己有什麼不懂的,你可以去貼吧詢問,或者到知乎上詢問,相信有很多人會為你熱心的解答的。
4、如果你覺得你自己看書學習效率太低,你可以上網觀看教學視頻,向大家推薦「中國大學」這個網站,在這里你可以向名師學習,並且提出疑問,而且在學習完課程並完成作業後可以獲得該大學的證書。
5、學習編程最快的方法之一就是看別人的源代碼,學習別人是怎樣編程的,對同一個問題別人的思路是什麼?和你的思路有什麼差別?如果你想要進一步提升自己編程的水平,推薦大家去做做ACM的題。想要學好c語言,就要編程,編程,再編程!
③ c++語言最難學的是什麼
作為一個用了3年多C/C++的程序狗,我來說兩句。
說到C++的難點,其實很多地方是一言難盡的。我不敢聲稱我精通C++,我甚至覺著八成的人都不能這么說。甚至我可以確定,在我工作的過程中我肯定是沒有用過C++所有的語言特性,甚至有些語言特性到現在看來我都覺著是天書。
C++的坑太多了,簡單說幾點:
指針並不能簡單算做是C++的痛點,這個特性繼承自C,它帶來的問題很多:當你的程序莫名崩潰,你就要好好考慮下,是不是出了野指針,或者你的程序有MemoryLeak?這個對新手來說簡直是地獄,如果再混下多線程,OMG,誰能告訴我這個對象的生命周期到底應該如何管理。也許你需要make_shared,但是你要知道,半自動的內存管理要用好也是要花功夫的,而且仍然不能杜絕問題的產生。
跨平台。也許有人跟你說過 C++跨平台,一份代碼在不同的平台上都能找到編譯器來編譯。這句話本身沒錯,問題在於,有沒有人告訴過你,不同的編譯器對C++標准支持是不一樣的?C++的跨平台在我看來就是宏預處理堆砌出來的跨平台。這個對java或者C#的程序員來說,會崩潰的。你見沒見過有語言上來就重新定義自己的int,long類型的?你去看大型的C++項目,尤其是有年頭或者有歷史沿襲的,基本都這么干過。為什麼?因為早些年大家沒啥好辦法,為了讓自己的程序在不同平台上的表現盡量一致,只能自己把基本類型重定義一遍。
stl,說到這個一臉淚。stl好用嗎?很好用。stl好學嗎?一點也不好學。它的學習成本太高了,而且代碼晦澀。C++的模板庫基本都是一個德行。如果你發現你看不懂你常用的std::vector<>里的代碼,很正常,這種模板的語法習慣起來需要時間。很多人詬病stl太大,內存釋放效率低,不同平台實現不一致等等問題。關於這個不一致的問題,我們來說一下:windows平台vc自己實現了stl。linux上gnu實現了gnu stl。android平台早些年用stlport,據說是個經典的實現版本,後來換用了gnu的實現。mac上蘋果的clang用的是不是自己實現的還是直接用了gcc的不太清楚,沒有用過水果的產品做開發。那麼stl在C++上處於一種什麼地位?它就是C++的標准模板庫啊?用過java和C#的都知道,標准庫是個什麼地位。離了它們不出活啊。也許我們可以重新寫一個?ok,在java,C#上你是看不到的,但苦逼的C++眾不少人這么干過,或者早些年在stl功能簡陋的時候曾經這么干過。EA就專門針對游戲開發寫過一個EASTL,還是開源的。對於一個語言來說,標准庫如此的不統一,實在是令人頭大。
C++11 這個可以拿來所說的,總體來說不算缺點。C++11對於C++來說試一次很徹底的進化。解決了很多問題,引入了lambda,新的右值引用,新的智能指針等等。當時為什麼要列在這里呢?學習成本啊 親。我們就說引用,以前我們有普通的值引用,常量引用,現在我們多了一個右值引用。沒錯,現在右值也可以有引用了。什麼,你不清楚引用,常量,左值和右值的概念?正常,在沒有右值引用之前,我就沒在意過左值和右值的區別。現在不一樣了啊,扔給你個std::move std::forword 為了會用,你還要滾回去把左值和右值白扯清楚。
看到有人說類,補充一個。我覺著C++的類模型設計上是有問題的。而且多繼承現在的普遍觀點是這是個缺點大過優點的特性。單繼承+受限類的多繼承目前比較有市場。可以看看Java8,它就是這么乾的。還有就是支持重載必須顯式聲明為virtual,而且子類中是看不出基類中是否有virtual聲明的。這個是個有點扯淡的要求。因為在一個龐大的繼承樹中,你可能需要跟蹤到繼承樹的根節點才能知道到底是不是virtual的。個人理解可以由編譯器自行推斷,但是現有的標准並沒有這么做,不知道是為了兼容還是覺著這么做會帶來問題。我們來看一下常用的關於類的C++語言特性:多繼承,虛函數,構造函數,析構函數,拷貝構造函數,運算符重載,公有繼承私有繼承保護繼承,友元函數友元類,靜態成員。這是我能想到的,C++類的復雜度絕對是超過java和C#的。就一個多繼承時多級父類的構造和析構過程就夠新手撓頭一陣的。
大概上是這樣,這個是我說理解的C++存在的問題。如果你去知乎上搜,可以找到更多。比如ABI介面兼容問題,跨dll的內存釋放問題,自動構造析構導致你根本無法精確控制內存,不去做專門了解,你都不知道編譯器產生過幾個臨時對象,它們又在何時產生了析構。
對C的兼容,對多種編程範式的支持,新語法的不斷加入,不同編譯器標準的支持力度,平台相關性帶來的跨平台問題等等困擾著C++。它仍然是一門好語言,但並不完美,它不對你的使用做出任何的假定和限制,所以如果你濫用這些過於靈活和強大的特性,程序肯定會崩給你看的。
以上。
④ php為什麼說是最好的編程語言
嘗試網路」PHP是最好的語言」,發現指向較多的是那個關於程序員的笑話。 但是如果這個梗來自於這個笑話的話,那麼為什麼在笑話里這個程序員不說C++/python/haskell或者別的什麼語言是最好的而要說PHP是最好的呢?所以感覺似乎最早的出處不在於此。 有人知道嗎?
來看看知乎網友們是怎麼看待這場語言之爭的吧!
網友回答
網友A
「為什麼在笑話里這個程序員不說 C++ / Python / Haskell 或者別的什麼語言是最好的而要說 PHP是最好的呢?」——因為說任何其他語言「最好」都並不好笑啊。
任何掌握超過兩種以上非 PHP 編程語言且具有一定常識的程序員都會本能地意識到 PHP 的問題所在,曾經有一篇匯總性的文章在此: PHP: a fractal of bad design / fuzzy notepad (譯文版可見:五大受損, 全面解析PHP的糟糕設計,但翻譯得很爛),歷陳 PHP 破敗之處,激盪深遠。如果你沒時間去讀那篇長文,那我告訴你一個簡單的例子來說明 PHP 有多匪夷所思:PHP 的核心函數命名很不一致,有 「strptime」這樣類 C 函數的名字,有「nl2br」這樣的簡寫,卻也有「htmlspecialchars」這樣的長名。後來人們發現這種不一致並非偶然,而是當 PHP 還是只有不到一百個函數的小語言的時候,其作者決定用函數名的字元數量——來作為函數的 hash(!)。由於這個愚不可及的決定,PHP 的函數名長度要盡可能地長短有秩、均勻分布,影響一直延續至今。甚至有好事者將上述文中:
You pull out the hammer, but to your dismay, it has the claw part on both sides.這一句嚴肅對待,做了一把 PHP 錘子:
試想你走進五金從業者公會的啤酒館,看到牆上掛著從釘子到電動螺絲刀的各式工具當作陳列品,而你在端詳一陣之後指著其中的這樣一把錘子,說「啊,這是最好的工具」,你覺得酒館里的人會是什麼反應呢?
網友B
因為php和最好的語言幾乎沒有關系。。一般用來諷刺一些沒見過世面,把自己歸屬於某一種編程語言的語言教徒。
事實上每一門語言都有其設計的靈魂,有它的取捨。很難說什麼是最好的。比起做個腦殘粉總是鼓吹自己擅長的語言,不如多學幾門語言,開闊視野。
我們都喜歡分享自己的價值觀。希望被認可,希望有更多同伴。其實這也是在給身邊的人洗腦,這很正常。但有時候自己在某一領域的付出會成為枷鎖。
網友C
Windows 是最好的操作系統!
以上為純吐槽。
我看樓上還有很多還在討論PHP不是最好的語言,還好我不是程序員,只是稍微懂一點代碼,我認為之所以說這個梗,是因為PHP最普及和最流行,大多數不管懂不懂程序都知道或聽說過,所以才能引起共鳴。這就是我上面那句吐槽的含義。
如果上面那句吐槽改為:Ubuntu 是最好的操作系統!(圍觀群眾:What?)
網友D
難道不是這么來的?某女:你能讓這個論壇的人都吵起來,我今晚就跟你走.
某軟體工程師:PHP是最好的語言!
某論壇炸鍋了,各種吵架…
某女:服了你了,我們走吧 你想幹啥都行.
某軟體工程師:今天不行,我一定要說服他們,PHP必須是最好的語言
某女:…….
網友E
編程語言之爭由來已久,
但是php和java確實是最受爭議的。
自從web2.0熱起來後,java逐漸淡出了。
究其原因並不在於語言本身,
而在於用語言的人。
因為php確實簡單,門檻最低,
所以很多並不適合編程的人涌了進來,僅僅為了糊口罷了。
這些人的各種無敵言論自然讓很多專業的人呲之以鼻。
天龍八部里有個星宿派,
雖然在施毒方面有些特長,但門下弟子總的來說武藝平平,
其實江湖武功低微的人多的是,低調便是了,誰又老是盯著你呢?
然而這個新宿派卻偏偏跑出去招搖過市,胡吹本門派武功蓋世,大有傲視天下之勢,
那麼其他門派的人會怎麼看他們呢?
php就是語言江湖的星宿派。
網友F
對我來說PHP 就是最好的語言。它不是炫耀技巧、扯蛋概念的東西。完成任務才是程序員要做的事。沒什麼語言可以高效開發同時高效運行。
相關利益:寫PHP17年。
網友G
作為一個十多年老phper,看到這句話,也會笑。雖然我也會c c++ java go ,並都做有相應產品。 世界上一半以上的網站是php, bat, fb,處處有它。但這些大公司在近些年,都在試圖改造它。淘寶去php改java,網路重寫擴展,fb搞xhp等等。但結局是搞了這么些,這幾大公司卻收效甚微。比之前的性能提升不了太多。在我理解看來,無非是想提高一下b格而已。
在php的初始階段,php是連框架也沒有的。直到今天,php創始人lerdorf仍然反對mvc,因為他覺得影響了性能。在那個年代,同樣的一個應用,做java的待遇比php高一倍。因為php簡單。如果跟你說一個人花了一個星期用php寫了個論壇,跑得也還蠻好,你一點也不要驚訝,後來這個論壇還賣給了阿里。面向過程的php,成就了無數小的站點。
後來是一個框架輩出的階段,phper們終於也有了跟java一樣的mvc,待遇也慢慢接近於java了。大家明白了一件事,大項目,得有點高深的學術內涵才能忽悠的住。opp也更加規范了,你能找到的設計模式,php全都有,於是phper放言:你還敢說php不高級, 不入流? 而實際上,設計模式,真正能用到的就那麼一兩個。對於解析性語言,我只能,呵呵。
歸結一下,php,我覺得更像屌絲逆襲。 然後,笑的人有兩種,一種是屌絲的自嘲,另一種是高富帥的妒忌。
網友H
先說一下php的優點:
跟py相比,它不需要django之類的庫,原生就支持web。小白們不需要配置什麼東西,門檻就低了。而且php的語法是類C的,函數命名大部分也是類C的,大部分碼農在學校或多或少都學過C/C++,接觸php肯定要比py順手。
跟java相比,支持php的主機顯然更多。雲主機興起之前,是個虛擬主機都是lamp,都支持php。而虛擬主機是最便宜的解決方案,也就是說隨便租個虛擬主機就能跑php的網站,成本就低了。
我個人認為沒有什麼最好的語言,只有最合適的語言。php之所以在web2.0的時代異軍突起,擊敗了py,原因跟php坑不坑沒有關系,跟契機有關系,跟他在那個環境下合不合適有關系。把php的流行歸功於什麼最好的語言簡直是胡扯,也是沒動腦子。
網友H
大部分敢於說自己是最好的語言的語言,至少有一部分人是真這么認為的。
比如說C語言最好的,最差最差也有一部分C語言核心開發者有信心這么說。
但是PHP語言是一個連開發者都不敢『聲稱是最好的語言』的語言。
這是不言自明的公設,不需要證明。
小圈子有個笑話。
會不會用PHP是有一個明確判斷標準的:
只有覺得PHP是個爛語言,才有資格說「我會PHP」。
如果你連PHP有多爛都感覺不出來,請別說「我會PHP」「我會編程」。
網友J
因為php算不上一種語言。就好像說「射釘器是世界上最好的武器」一樣。
⑤ 有打算學python的新手么
Python是一種計算機程序設計語言。你可能已經聽說過很多種流行的編程語言,比如非常難學的C語言,非常流行的Java語言,適合初學者的Basic語言,適合網頁編程的JavaScript語言等等。
那Python是一種什麼語言?
首先,我們普及一下編程語言的基礎知識。用任何編程語言來開發程序,都是為了讓計算機幹活,比如下載一個MP3,編寫一個文檔等等,而計算機幹活的CPU只認識機器指令,所以,盡管不同的編程語言差異極大,最後都得「翻譯」成CPU可以執行的機器指令。而不同的編程語言,干同一個活,編寫的代碼量,差距也很大。
比如,完成同一個任務,C語言要寫1000行代碼,Java只需要寫100行,而Python可能只要20行。
所以Python是一種相當高級的語言。
你也許會問,代碼少還不好?代碼少的代價是運行速度慢,C程序運行1秒鍾,Java程序可能需要2秒,而Python程序可能就需要10秒。
那是不是越低級的程序越難學,越高級的程序越簡單?表面上來說,是的,但是,在非常高的抽象計算中,高級的Python程序設計也是非常難學的,所以,高級程序語言不等於簡單。
但是,對於初學者和完成普通任務,Python語言是非常簡單易用的。連Google都在大規模使用Python,你就不用擔心學了會沒用。
learning=input('DoyouwanttolearnPythonnow(YesorNo):')
a=str(learning)
ifa=='Yes':
print('QQ1129834903')
else:
print('Thanks!!')