導航:首頁 > 編程語言 > bruceeckelpython

bruceeckelpython

發布時間:2022-07-10 05:27:18

㈠ 計算機專業入門圖書

C語言程序設計

㈡ C++|語言入門看什麼書最好可以免費下載不在哪下載

1. Bjarne Stroustrup, The C++ Programming Language, 3rd Edtion,
Addison-Wesley 1997.

中文版《C++程序設計語言》第三版,機械工業出版社2001年5月出版,譯者徐寶國教授。延遲時間:4年

這是任何一個C++學習者絕對、絕對不能錯過的C++頭號經典。Nathan
Myers說:「15年之後,此書仍然是唯一一本無可替代的C++書籍。」
只要有人推薦C++書籍,此書必在其中。

這本書非常全面,非常權威,充滿了技術性極強的材料。很多地方值得反復回味與思索。作者不僅是C++之父,而且是貝爾實驗室大尺度軟體研究中心的首腦,他自己說,他所接觸和開發的軟體無論是在體積、復雜性和難度來說,根本不是外界一般軟體所能比擬的。這本書雖然是一本語言著作,但是處處反映出他對於軟體開發和程序設計的看法。所以他在書中的很多觀點雖然看上去不覺的什麼,但是當你接觸到真正挑戰的時候,就會深刻體會到其真知灼見,實非一般的專家所能比肩。Effective C++的作者Scott Meyers年初把自己的Effective STL書稿交給包括Stroustrup在內的一些專家審查,被提出了一些問題,他拿著出問題的那些部分對比這本書,最後在網上發出了這樣的感嘆:「What a show-off!」(多麼了不起啊!)。由此可見此書水準之高。

缺點也是有的,那就是比較難懂。限於篇幅,作者很多地方點到即止,內藏深意,很有點高人行事,神龍現首不現尾的感覺。不是初學者,甚至也不是我們國內大多數自以為學會了C++的「高手」能夠輕易領會的。我個人覺得浮光掠影地貌似讀懂不難,真的體會此書背後的思想就非要花上好多年了。本書的外號是: C++專家自學指南,也就是你得先是專家,然後再來讀此書自修上進。既然Scott Meyers都需要反復理解這本書,我想我說大多數人需要更長的時間和更多的功夫來領悟,應該不算是對高手們的蔑視吧。本書的描述方式比較專業化,不能作為第一本C++書。

2. Stan Lippman, Josee Lajoie, C++ Primer, 3rd Edtion, Addison-Wesley 1998. 中文版由中國電力出版社年內推出。譯者不詳。延遲時間:3年

上面說到,Stroustrup的那本書不適合作為入門書。做為一個沒有學過C++的初學者,有幾本書值得推薦,其中Andy Koenig和Babara Moo夫婦合著的Accelerated C++和Stan Lippman的Essential C++是兩本薄小精悍的名著,後者有侯捷先生的譯本。可惜在國內還沒有出版的消息。而且這兩本書並非全貌性的介紹,要說到全景展現C++而又適合初學的經典著作,非Stan Lippman的宏篇巨著C++ Primer, 3/e莫數。侯捷先生1999年推出此書的繁體譯本。在前言中,有這么一段話:

「我常被要求推薦C++程序語言的書籍,...,但如果考量的是語言的全貌性書籍,從來我只推薦兩本,一是Bjarne Stroustrup的The C++ Programming Language,另一是Stanley B. Lippman的C++ Primer。我這么說難免造成遺珠之憾,但是泰山北斗已現,又何必案牘勞形於墨翰書海之中!這兩本書都是自盤古開天以來,一路改版,斬將擎期,追奔逐北,成就一身榮光!」

此書作者Stan Lippman原來是Stroustrup的同事,世界上第一個C++編譯器CFront的實現者之一,C++ Report雜志的第二任主編,現在迪斯尼動畫做軟體技術部首腦。Josee Lajoie是C++為數不多的巾幗英雄之一,ANSI C++標准委員會核心語言子委 員會主席。

此書是一本標準的「從入門到精通」教材(而大多數使用這個名字的書實際上都名不符實),注重實例,內容全面、權威,通俗易懂。初學者哪怕沒有其他任何資料,只要能夠認真學通這本書,足以能自由使用C++,成為別人眼中的高手。而且此書 跟上面一本一樣,到處是珍寶,等待你發掘。

缺點只有一個,太厚。不過相信我,如果你因為價錢的問題遲疑不定,那麼受損失的是你,不是書商。

最後一點,我估計此書是眾人合譯,希望譯文質量過硬,不要暴殮天物。

3. Stan Lippman, Inside C++ Object Model, Addison-Wesley 1996.
中文版《深度探索C++對象模型》由華中科技大學出版社5月出版,譯者侯捷。
延遲時間:5年

名作者+名著+名譯者,你沒有任何理由錯過這本書。算起來這是國內第一次出版侯先生的譯作,大陸方由《深入淺出MFC》的原班人馬再度出擊,質量上一定不會讓人失望。關於這本書本身,侯先生在《程序員》雜志做了介紹。這是一本讓你對於C++的理解整體升級的小書,薄,也比較貴。我知道有不少人又要抱怨,但是我可以告訴你我花了一萬五千塊錢買了500本以上的計算機書籍之後得到的一個經驗:好書無價。(在我的500本書里,真正值得的不超過50本,其他的全部都是負數) 這本書里講述的內容是你在其他書上花多少錢也買不到的,跟上面的兩本書相比,切入點獨到,從另一個方向幫助你徹底對C++知其然而知其所以然。

4. Scott Meyers, Effective C++, 2nd Edition, Addison-Wesley, 1998.
中文版由清華大學出版社推出,延遲時間3年

Scott Meyers, More Effective C++, Addison-Wesley, 1996.
中文版由電力出版社推出,延遲時間5年

再說「絕對不能錯過」,我的嘴皮子都覺得發麻。但是發麻也得說,要是這兩本書你都敢放過,那我只能說我很佩服你的勇氣。這兩本書是每一份書籍推薦表上的必備。當你初步了解了C++的全貌後,它們能夠在短時間內大幅度地提高你的C++水平,然後會長期放在你的書桌床頭,引你時時參考。作者的本領在於,雖然這兩本書加起來只有C++ Primer一半的篇幅,但是每一個你遇到的C++問題,Meyers都好像未卜先知地放在了這兩本書里,你幾乎肯定可以在這兩本書中找到美妙的論述。我有幸讀到侯先生的譯本,如果讓我來評價,我覺得就算把它們倒背下來也是值得的。

有缺點么,我找不到,我給這兩本書打滿分。Scott Meyers是第一個向我展示了什麼叫「完美」的作者。我極力、極力、極力地推薦。唯一希望的是中文版的質量配得上原著。不確定的消息:

上半年侯捷先生將完成三本重要著作:
《多型與虛擬》第二版,《泛型技術》,《STL源碼剖析》,預計今年,最遲明年能夠與 大陸讀者見面。

Herb Sutter的Exceptional C++,Addison-Wesley, 2000年
據說電力出版社已經組織翻譯,估計也能在年內出版。

至於下載 可以在網路一下了

㈢ 學習編程好不好

不好學。未來發展十分不錯。
1、編程的課程比較抽象。
編程是依靠計算機進行運算,並最終得到相應結果的過程。需要將解決的問題思路、方法和手段讓計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。編程的課程比較抽象,理解起來會有點困難。
2、編程更傾向於實操。
計算機專業的人對編程更有發言權,編程的理論性東西居多,但實際上陣時,全靠實際操作。所以如果沒有老師從旁指導,很難理解為什麼代碼要這樣寫?

3、編程學習需要花費時間。
計算機專業的學生學習編程會稍微輕松一些。但是計算機零基礎的人,建議先買本《計算機組成原理》或者《微機原理》看看,了解下計算機的體系結構。學習一門技術,需要花費長時間的心思和精力。
隨著互聯網和移動互聯網的發展,企業對於程序員的需求量也越來越大。編程的前景還是非常好的。

java想要開始學習,麻煩推薦幾本好書!謝

Java2十大經典圖書全給了:

第一名:Java編程思想第二版(Thinking in java second)
包含范圍:全部。

沒說的,絕對的大師作品,當之無愧的第一。第一版時就享譽整個java界(當時網上好象也有人譯了)。國內版是京京工作室翻譯的,基本上毀了此書--錯誤術語太多。推薦高手看E文版,新手就不要先看此書了。第二版更精采,台灣的侯捷譯了此書。可以到www.csdn.net看看前幾章的中文版(不過是台灣術語)。希望國內會快些引入此書,你也可到http://www.BruceEckel.com--作者的主頁免費下載此書推薦http://www.bdelmee.easynet.be/java/index.html。有chm格式的,非常棒!BTW:這位大師最近在寫Thinking in python相信又是一本經典名著:)

第二名:Java2編程詳解(special edition java2)
包含范圍:全部

這本書會排在core java2的前面可能很多人會不同意,但是就中譯本和內容來看非常全面。適合新手成為高手。雖然國內的價位高了些(150),但基本還是值得的。該有的內容都有了,做參考書也很不錯。BTW,這個系列中的oracle8/8i使用手冊也是一本很經典的書,同樣推薦。

第三名:Java2核心技術卷一,二(core java2 volume1,2)
包含范圍:全部

這兩本我把它們看成一本不會有人有異議吧。這也是Sun的官方的書,我覺得相對來說。第二卷高級特性要比第一卷基礎知識好(第一卷又是京京工作室譯的--真影響情緒:()。內容同樣很全面,但是卷一雖說是基礎知識,同樣對新手來說不是很合適。感覺條理性不強,而且內容有些混雜,但第二卷完全可以彌補這些--精闢而細致,很適合有一定基礎的Java程序員看。

第四名:Java 2圖形設計 卷1:AWT 卷2:Swing-Graphic Java 1.2 Mastering the JFC Volume I:AWT SWING 3rd Edition
包含范圍:Java圖形設計

沒什麼說的了,盡管圖形設計不如J2EE那麼火 ,而且Win32下做應用程序也不是java的強項,但是AWT和Swing仍然是Java程序員的必修課。看這兩本就夠了,看看厚度就知道了,而且這也是Sun官方出的圖書。

第五名:J2EE構建企業系統專家級解決方案
包含范圍:J2ee

清華大學出版社 譯作者:[美]Paul J. Perrone,et al.著 張志偉等譯

又是一本極厚的書1038頁,105元。不過內容十分豐富,適合想對J2EE整體做了解的程序員,至於每項都想精就不太可能了,呵呵。畢竟在Java中思想是主要的。在這類中有本Java伺服器高級編程也很不錯,機工華章出的-wrox系列中的。
第六名: Java XML編程指南
電子工業出版社 譯作者: [美]Tom Myers,Alexander Nakhimovsky著

包含范圍:Java+XML

XML在Java中的地位也越來越重要了,而國內能看到的還有一本中國電力出的o eilly的Java和XML。最後我還是選了這本wrox的,當然你要是想好好學學XML本身,還是看看那本XML高級編程吧。wrox系列中的-機工華章出的。

第七名:書名:Jini核心技術 英文原書名: Core Jini
作者: W.Keith Edwards

包含范圍:Jini

Jini也是Java體系中很重要的部分,而且更重要的是這本可能是國內唯一的一本Jini專著-翻譯的也不錯。在我看來是當之無愧的經典,同樣是Sun的官方圖書,內容很清晰透徹。

第八名:Enterprise JavaBeans第二版 英文原書名: Enterprise JAVABEANS
作者: (美)Richard Monson-Haefel

包含范圍:EJB

O『reilly出的,ejb的重要性我不用多說了吧。盡管有人說這本譯的不好,但是同樣它是國內目前唯一的EJB專著。o eilly的書就是只講一方面或一項技術,很細,但價格也不菲,這本書的架構還可以,值得一看。

!!!!!!!!第九名:數據結構與演算法分析(Java版)
譯作者: [美]Clifford A.Shaffer著 張銘 劉曉丹譯

包含范圍:Java演算法

盡管基本上Java圖書都是講Java本身的特性。因為Java的體系太龐大了,而用Java來實現的數據結構與演算法,這本書也是唯一一本,所以盡管這本不是那麼的好但還是做以推薦。

第十名:軟體工程Java語言實現 英文原書名: Software Engineering with Java
作者: Stephen R.Schach 譯者: 袁兆山等

這本書沒什麼多說的,純理論性的東西,但軟體工程的重要也是有目共睹的,而且同樣是這個領域中唯一的一本Java書。
參考資料:第九名:數據結構與演算法分析(Java版)

㈤ 如何實現

給個例子啊?

[ZT]JAVA正則表達式
最近要對一些字元串處理,找了篇比較全的正則。
原文 http://wcjok.bokee.com/4293762.html

JAVA正則表達式
關鍵詞: 正則表達式 ?
???????????????????????????????????????
正則表達式
作為本章的結尾,我們來看一看正則表達式(regular expression)。正則表達式是JDK 1.4的新功能,但是對sed和awk這樣的Unix的標准實用工具,以及Python,Perl之類的語言來講,它早就已經成為其不可或缺的組成部分了(有人甚至認為,它還是Perl能大獲成功的最主要的原因)。單從技術角度來講,正則表達式只是一種處理字元串的工具(過去Java這個任務是交由String,StringBuffer以及StringTokenizer處理的),但是它常常和I/O一起使用,所以放到這里來講也不算太離題吧。[66]

正則表達式是一種功能強大但又非常靈活的文本處理工具。它能讓你用編程的方式來描述復雜的文本模式,然後在字元串里把它找出來。一旦你找到了這種模式,你就能隨心所欲地處理這些文本了。雖然初看起來正則表達式的語法有點讓人望而生畏,但它提供了一種精練的動態語言,使我們能用一種通用的方式來解決各種字元串 的問題,包括匹配,選擇,編輯以及校驗。

創建正則表達式
你可以從比較簡單的東西入手學習正則表達式。要想全面地掌握怎樣構建正則表達式,可以去看JDK文檔的java.util.regex的Pattern類的文檔。

字元
B 字元B
\xhh 16進制值0xhh所表示的字元
\uhhhh 16進制值0xhhhh所表示的Unicode字元
\t Tab
\n 換行符
\r 回車符
\f 換頁符
\e Escape

正則表達式的強大體現在它能定義字元集(character class)。下面是一些最常見的字元集及其定義的方式,此外還有一些預定義的字元集:

字元集
. 表示任意一個字元
[abc] 表示字元a,b,c中的任意一個(與a|b|c相同)
[^abc] 除a,b,c之外的任意一個字元(否定)
[a-zA-Z] 從a到z或A到Z當中的任意一個字元(范圍)
[abc[hij]] a,b,c,h,i,j中的任意一個字元(與a|b|c|h|i|j相同)(並集)
[a-z&&[hij]] h,i,j中的一個(交集)
\s 空格字元(空格鍵, tab, 換行, 換頁, 回車)
\S 非空格字元([^\s])
\d 一個數字,也就是[0-9]
\D 一個非數字的字元,也就是[^0-9]
\w 一個單詞字元(word character),即[a-zA-Z_0-9]
\W 一個非單詞的字元,[^\w]

如果你用過其它語言的正則表達式,那麼你一眼就能看出反斜杠的與眾不同。在其它語言里,"\\"的意思是"我只是要在正則表達式里插入一個反斜杠。沒什麼特別的意思。"但是在Java里,"\\"的意思是"我要插入一個正則表達式的反斜杠,所以跟在它後面的那個字元的意思就變了。"舉例來說,如果你想表示一個或更多的"單詞字元",那麼這個正則表達式就應該是"\\w+"。如果你要插入一個反斜杠,那就得用"\\\\"。不過像換行,跳格之類的還是只用一根反斜杠:"\n\t"。

這里只給你講一個例子;你應該JDK文檔的java.util.regex.Pattern加到收藏夾里,這樣就能很容易地找到各種正則表達式的模式了。

邏輯運算符
XY X 後面跟著 Y
X|Y X或Y
(X) 一個"要匹配的組(capturing group)". 以後可以用\i來表示第i個被匹配的組。

邊界匹配符
^ 一行的開始
$ 一行的結尾
\b 一個單詞的邊界
\B 一個非單詞的邊界
\G 前一個匹配的結束

舉一個具體一些的例子。下面這些正則表達式都是合法的,而且都能匹配"Rudolph":

Rudolph[rR]udolph[rR][aeiou][a-z]ol.*R.*
數量表示符
"數量表示符(quantifier)"的作用是定義模式應該匹配多少個字元。

Greedy(貪婪的): 除非另有表示,否則數量表示符都是greedy的。Greedy的表達式會一直匹配下去,直到匹配不下去為止。(如果你發現表達式匹配的結果與預期的不符),很有可能是因為,你以為表達式會只匹配前面幾個字元,而實際上它是greedy的,因此會一直匹配下去。
Reluctant(勉強的): 用問號表示,它會匹配最少的字元。也稱為lazy, minimal matching, non-greedy, 或ungreedy。
Possessive(佔有的): 目前只有Java支持(其它語言都不支持)。它更加先進,所以你可能還不太會用。用正則表達式匹配字元串的時候會產生很多中間狀態,(一般的匹配引擎會保存這種中間狀態,)這樣匹配失敗的時候就能原路返回了。佔有型的表達式不保存這種中間狀態,因此也就不會回頭重來了。它能防止正則表達式的失控,同時也能提高運行的效率。
Greedy Reluctant Possessive 匹配
X? X?? X?+ 匹配一個或零個X
X* X*? X*+ 匹配零或多個X
X+ X+? X++ 匹配一個或多個X
X{n} X{n}? X{n}+ 匹配正好n個X
X{n,} X{n,}? X{n,}+ 匹配至少n個X
X{n,m} X{n,m}? X{n,m}+ 匹配至少n個,至多m個X

再提醒一下,要想讓表達式照你的意思去運行,你應該用括弧把'X'括起來。比方說:

abc+
似乎這個表達式能匹配一個或若干個'abc',但是如果你真的用它去匹配'abcabcabc'的話,實際上只會找到三個字元。因為這個表達式的意思是'ab'後邊跟著一個或多個'c'。要想匹配一個或多個完整的'abc',你應該這樣:

(abc)+
正則表達式能輕而易舉地把你給耍了;這是一種建立在Java之上的新語言。

CharSequence
JDK 1.4定義了一個新的介面,叫CharSequence。它提供了String和StringBuffer這兩個類的字元序列的抽象:

interface CharSequence { charAt(int i); length(); subSequence(int start, int end); toString();}
為了實現這個新的CharSequence介面,String,StringBuffer以及CharBuffer都作了修改。很多正則表達式的操作都要拿CharSequence作參數。

Pattern和Matcher
先給一個例子。下面這段程序可以測試正則表達式是否匹配字元串。第一個參數是要匹配的字元串,後面是正則表達式。正則表達式可以有多個。在Unix/Linux環境下,命令行下的正則表達式還必須用引號。

當你創建正則表達式時,可以用這個程序來判斷它是不是會按照你的要求工作。

//: c12:TestRegularExpression.java// Allows you to easly try out regular expressions.// {Args: abcabcabcdefabc "abc+" "(abc)+" "(abc){2,}" }import java.util.regex.*;publicclass TestRegularExpression {publicstaticvoid main(String[] args) {if(args.length < 2) { System.out.println("Usage:\n" +"java TestRegularExpression " +"characterSequence regularExpression+"); System.exit(0); } System.out.println("Input: \"" + args[0] + "\"");for(int i = 1; i < args.length; i++) { System.out.println("Regular expression: \"" + args[i] + "\""); Pattern p = Pattern.compile(args[i]); Matcher m = p.matcher(args[0]);while(m.find()) { System.out.println("Match \"" + m.group() +"\" at positions " + m.start() + "-" + (m.end() - 1)); } } }} ///:~

Java的正則表達式是由java.util.regex的Pattern和Matcher類實現的。Pattern對象表示經編譯的正則表達式。靜態的compile( )方法負責將表示正則表達式的字元串編譯成Pattern對象。正如上述常式所示的,只要給Pattern的matcher( )方法送一個字元串就能獲取一個Matcher對象。此外,Pattern還有一個能快速判斷能否在input裡面找到regex的(注意,原文有誤,漏了方法名)

staticboolean matches(?regex, ?input)
以及能返回String數組的split( )方法,它能用regex把字元串分割開來。

只要給Pattern.matcher( )方法傳一個字元串就能獲得Matcher對象了。接下來就能用Matcher的方法來查詢匹配的結果了。

boolean matches()boolean lookingAt()boolean find()boolean find(int start)
matches( )的前提是Pattern匹配整個字元串,而lookingAt( )的意思是Pattern匹配字元串的開頭。

find( )
Matcher.find( )的功能是發現CharSequence里的,與pattern相匹配的多個字元序列。例如:

//: c12:FindDemo.javaimport java.util.regex.*;import com.bruceeckel.simpletest.*;import java.util.*;publicclass FindDemo {privatestatic Test monitor = new Test();publicstaticvoid main(String[] args) { Matcher m = Pattern.compile("\\w+") .matcher("Evening is full of the linnet's wings");while(m.find()) System.out.println(m.group());int i = 0;while(m.find(i)) { System.out.print(m.group() + " "); i++; } monitor.expect(new String[] {"Evening","is","full","of","the","linnet","s","wings","Evening vening ening ning ing ng g is is s full " +"full ull ll l of of f the the he e linnet linnet " +"innet nnet net et t s s wings wings ings ngs gs s " }); }} ///:~

"\\w+"的意思是"一個或多個單詞字元",因此它會將字元串直接分解成單詞。find( )像一個迭代器,從頭到尾掃描一遍字元串。第二個find( )是帶int參數的,正如你所看到的,它會告訴方法從哪裡開始找——即從參數位置開始查找。

Groups
Group是指里用括弧括起來的,能被後面的表達式調用的正則表達式。Group 0 表示整個表達式,group 1表示第一個被括起來的group,以此類推。所以;

A(B(C))D
裡面有三個group:group 0是ABCD, group 1是BC,group 2是C。

你可以用下述Matcher方法來使用group:

public int groupCount( )返回matcher對象中的group的數目。不包括group0。

public String group( ) 返回上次匹配操作(比方說find( ))的group 0(整個匹配)

public String group(int i)返回上次匹配操作的某個group。如果匹配成功,但是沒能找到group,則返回null。

public int start(int group)返回上次匹配所找到的,group的開始位置。

public int end(int group)返回上次匹配所找到的,group的結束位置,最後一個字元的下標加一。

下面我們舉一些group的例子:

//: c12:Groups.javaimport java.util.regex.*;import com.bruceeckel.simpletest.*;publicclass Groups {privatestatic Test monitor = new Test();staticpublicfinal String poem ="Twas brillig, and the slithy toves\n" +"Did gyre and gimble in the wabe.\n" +"All mimsy were the borogoves,\n" +"And the mome raths outgrabe.\n\n" +"Beware the Jabberwock, my son,\n" +"The jaws that bite, the claws that catch.\n" +"Beware the Jubjub bird, and shun\n" +"The frumious Bandersnatch.";publicstaticvoid main(String[] args) { Matcher m = Pattern.compile("(?m)(\\S+)\\s+((\\S+)\\s+(\\S+))$") .matcher(poem);while(m.find()) {for(int j = 0; j <= m.groupCount(); j++) System.out.print("[" + m.group(j) + "]"); System.out.println(); } monitor.expect(new String[]{"[the slithy toves]" +"[the][slithy toves][slithy][toves]","[in the wabe.][in][the wabe.][the][wabe.]","[were the borogoves,]" +"[were][the borogoves,][the][borogoves,]","[mome raths outgrabe.]" +"[mome][raths outgrabe.][raths][outgrabe.]","[Jabberwock, my son,]" +"[Jabberwock,][my son,][my][son,]","[claws that catch.]" +"[claws][that catch.][that][catch.]","[bird, and shun][bird,][and shun][and][shun]","[The frumious Bandersnatch.][The]" +"[frumious Bandersnatch.][frumious][Bandersnatch.]" }); }} ///:~

這首詩是Through the Looking Glass的,Lewis Carroll的"Jabberwocky"的第一部分。可以看到這個正則表達式里有很多用括弧括起來的group,它是由任意多個連續的非空字元('\S+')和任意多個連續的空格字元('\s+')所組成的,其最終目的是要捕獲每行的最後三個單詞;'$'表示一行的結尾。但是'$'通常表示整個字元串的結尾,所以這里要明確地告訴正則表達式注意換行符。這一點是由'(?m)'標志完成的(模式標志會過一會講解)。

start( )和end( )
如果匹配成功,start( )會返回此次匹配的開始位置,end( )會返回此次匹配的結束位置,即最後一個字元的下標加一。如果之前的匹配不成功(或者沒匹配),那麼無論是調用start( )還是end( ),都會引發一個IllegalStateException。下面這段程序還演示了matches( )和lookingAt( ):

//: c12:StartEnd.javaimport java.util.regex.*;import com.bruceeckel.simpletest.*;publicclass StartEnd {privatestatic Test monitor = new Test();publicstaticvoid main(String[] args) { String[] input = new String[] {"Java has regular expressions in 1.4","regular expressions now expressing in Java","Java represses oracular expressions" }; Pattern p1 = Pattern.compile("re\\w*"), p2 = Pattern.compile("Java.*");for(int i = 0; i < input.length; i++) { System.out.println("input " + i + ": " + input[i]); Matcher m1 = p1.matcher(input[i]), m2 = p2.matcher(input[i]);while(m1.find()) System.out.println("m1.find() '" + m1.group() +"' start = "+ m1.start() + " end = " + m1.end());while(m2.find()) System.out.println("m2.find() '" + m2.group() +"' start = "+ m2.start() + " end = " + m2.end());if(m1.lookingAt()) // No reset() necessary System.out.println("m1.lookingAt() start = " + m1.start() + " end = " + m1.end());if(m2.lookingAt()) System.out.println("m2.lookingAt() start = " + m2.start() + " end = " + m2.end());if(m1.matches()) // No reset() necessary System.out.println("m1.matches() start = " + m1.start() + " end = " + m1.end());if(m2.matches()) System.out.println("m2.matches() start = " + m2.start() + " end = " + m2.end()); } monitor.expect(new String[] {"input 0: Java has regular expressions in 1.4","m1.find() 'regular' start = 9 end = 16","m1.find() 'ressions' start = 20 end = 28","m2.find() 'Java has regular expressions in 1.4'" +" start = 0 end = 35","m2.lookingAt() start = 0 end = 35","m2.matches() start = 0 end = 35","input 1: regular expressions now " +"expressing in Java","m1.find() 'regular' start = 0 end = 7","m1.find() 'ressions' start = 11 end = 19","m1.find() 'ressing' start = 27 end = 34","m2.find() 'Java' start = 38 end = 42","m1.lookingAt() start = 0 end = 7","input 2: Java represses oracular expressions","m1.find() 'represses' start = 5 end = 14","m1.find() 'ressions' start = 27 end = 35","m2.find() 'Java represses oracular expressions' " +"start = 0 end = 35","m2.lookingAt() start = 0 end = 35","m2.matches() start = 0 end = 35" }); }} ///:~

㈥ python是什麼樣的編程語言

Python是什麼?

Python是一種開放源代碼的腳本編程語言,這種腳本語言特別強調開發速度和代碼的清晰程度。它可以用來開發各種程序,從簡單的腳本任務到復雜的、面向對象的應用程序都有大顯身手的地方。Python還被當作一種入門程序員最適合掌握的優秀語言,因為它免費、面向對象、擴展性強同時執行嚴格的編碼標准。

Python是免費的

Guido van Rossum於1990年開始開發Python,最初的目的無非是一個自娛的項目。作為Monty Python的飛行馬戲團節目的愛好者,他給自己開發的這種編程語言起了現在這個古怪的名字,中文意思就是大蟒。Python最初設計為一種取代 Amoeba分布式操作系統ABC的腳本語言,但不久這種新型編程語言很快就發展成可以解決相當多問題的利器,現在更引入到了多種平台。

Guido目前還是Python軟體基金會的主席。該組織按照GNU公共許可協議的要求擁有Python的知識產權和許可權。Python可以用在多種平台上,包括Windows、Macintosh和各種常見的UNIX系統。另外針對PalmOS 和微軟的Pocket PC的相應版本也在開發中。

Python品質超群

雖然Python常用來創建簡單的腳本,但它採用的編程技術可不簡單,比如面向對象編碼、套接字、線程和GUI等等。假如你是一位剛入流的程序員,這些特性顯然對你太有幫助了,因為你可以很快熟悉有益的編程語法和編碼實踐,之後再學習其他語言,比如Java或者C++等引入的技術概念就容易多了。腳本可以單獨執行,不過,你還可以通過類文件和各類對象類型以充分利用這種語言的強大功能。

Python區別於其他面向對象語言的關鍵有兩點。首先,Python強調空格和編碼結構,從而令開發者的代碼具有良好的重用性。其次,執行腳本之前無須編譯Python代碼,這就是它為什麼被當作腳本語言的原因。

Python易於擴展

Python語言有一個引人注目的優勢,它可以針對語言無法完成功能的函數調用函數庫。Python還具有有些相當有用的工具幫助開發出復雜的應用程序。其中最常用的就是Tkinker,這種工具可以實現跨平台的GUI開發。另一種wxPython工具則是對wxWindows跨平台C++框架的擴展。WxPython目前已經支持Windows和Linux平台。Python Imaging Library可以讓Python創建、打開、編輯和修改圖象,包括.gif、.jpeg和.png等。為了了解常用的Python擴展和應用,你不妨訪問下The Vaults of Parnassus。

Python自身還可以嵌入到其他編程語言中。最常見的就是[url=http://www.jython.org/]Jython[url],這是一種用Java編寫的Python解釋器。這樣你就可以同時利用兩種語言的優點。你還可以在強大的Java應用程序框架中結合Python清晰的語法來創建出依賴於兩種語言庫的應用程序。

編碼標准

嚴格的Python語法是初級程序員忽略這一強大編程語言的最主要原因。和大多數的其他面向Web腳本語言不同的是,Python的空白排版不依賴於括弧或者分號來表示語句結束,換行和佔位符用來描述代碼的可視結果。這種編程方式乍看之下令人感到厭煩,但卻對你另有莫大的好處,這就是代碼的可靠性。Python這種結構化是建立在下面的理論之上:開發者的工作時間是機構財產中最有價值的財富。一旦你習慣了編寫Python代碼的規則。實際上你就習慣了一種內建的編碼標准。這也正是大多數Python開發者所依賴的標准。

獲取Python

你可以從http://www.python.org或者各類平台上的Python版本。ActiveState網站也發布用於 Windows、Linux和Solaris等平台的Python庫。

最簡單的Python代碼

下面我們舉例說明Python。假設你目前使用的是Windows系統,而且已經安裝了Python,請首先啟動IDLE,也就是Python的GUI。現在處於Python Shell中(如果你在UNIX類型的系統上就需要鍵入 python類型指示你的Python可執行文件)。接著在">>>"提示符下鍵入:
>>>print "Hello World"

這個大家耳熟能詳的程序就在屏幕上顯示出結果,你還可以如下所示給變數賦值:
>>>myvar = 42
>>>print myvar

在上例中會顯示結果42。

如果你開發的腳本無須在Python Shell 中直接輸入Python就更有用了。程序清單A就包含了一個Hello World腳本的示例,其中編寫了if-else語句。

你可以在命令行上鍵入scriptname.py來執行自己的腳本(py是Python 腳本的標准文件擴展名)。你應該能看到正確的顯示結果。清單A中,跟著if和else之後由佔位符縮排的語句就是空白格式化的一部分。

這些很簡單的示例演示了Python清晰的語法。為了了解更多有關Python編程的信息,你不妨查看下Python網站上的初學者指南。如果你不習慣於上網瀏覽,那麼你還可以閱讀O'Reilly 和New Riders 出版的有關圖書。比如How to Think Like a Computer Scientist : Learning with Python和Python Essential Reference。

小結

不論你是一位初學編程語言以圖增長自己知識技能的入門程序員還是為了謀取更大代碼可靠性的Perl高手,你都會發現Python是一種相當靈活和強大的編程語言。它可以開發出各種各樣的應用程序,從功能齊備的郵件列表軟體到各種跨平台的GUI應用程序一應俱全。

上面用到的清單 A [re: xyb]

# List A
# (If you are on an UNIX type system you may have to modify the first line to point to
your Python executable.)

#!/usr/bin/pythonmyvar = "Hello World"if myvar == "Hello World": print myvarelse: print "myvar does not equal Hello World"

[精華] 另外,我也介紹一本書 [re: xyb]
(enthusiast)
02-09-02 11:21

Bruce Eckel的Thinking in Python,可以從這里下載。
Bruce Eckel已經出版的Thinking in Java和Thinking in C++可都是鼎鼎大名。他正在寫的有Thinking in Python和Thinking in Pattern,不知道什麼時候可以出版。

其他Bruce Eckel的著作下載目錄:Bruce Eckel's Free Electronic Books

㈦ 求初學者學JAVA語言需要那些書

Thinking In Java 孫衛琴的那本《java面向對象編程》從語言組織上總好過Thinking In Java吧。 個人覺得「入門外加提高」,Thinking in Java最合適不過了。 我覺得java核心技術也是本好書 第一名:Java編程思想第二版 包含范圍:全部。 英文名:Thinking in java second,沒說的,絕對的大師作品,當之無愧的第一,第一版時就享譽整個 java 界(當時網上好象也有人譯了),國內版是京京工作室翻譯的,基本上毀了此書,錯誤術語太多,推薦高手看E文版,新手就不要先看此書了。第二版更精采,台灣的侯捷譯了此書,可以到 www.csdn.net 看看前幾章的中文版(不過是台灣術語)。希望國內會快些引入此書,你也可到 http://www.BruceEckel.com ,作者的主頁免費下載此書推薦 http://www.bdelmee.easynet.be/java/index.html ,有 chm 格式的--非常棒!BTW:這位大師最近在寫 Thinking in Python 相信又是一本經典名著:) 第二名:Java2編程詳解 包含范圍:全部 英文名:special edition java2,這本書會排在 core java2 的前面可能很多人會不同意,但是就中譯本和內容來看非常全面,適合新手成為高手,雖然國內的價位高了些(150),但基本還是值得的--該有的內容都有了,做參考書也很不錯.BTW:這個系列中的 oracle8/8i 使用手冊也是一本很經典的書,同樣推薦。 第三名:Java2核心技術卷一,二 包含范圍:全部 英文名:core java2 volume1,2,這兩本我把它們看成一本不會有人有異議吧,這也是 Sun 的官方的書,我覺得相對來說,第二卷高級特性要比第一卷基礎知識好(第一卷又是京京工作室譯的,真影響情緒:().內容同樣很全面,但是卷一雖說是基礎知識,同樣對新手來說不是很合適,感覺條理性不強,而且內容有些混雜,但第二卷完全可以彌補這些--精闢而細致,很適合有一定基礎的 Java 程序員看。 第四名:Java 2圖形設計 卷1:AWT 卷2 包含范圍:Java圖形設計 英文名:Swing-Graphic Java 1.2 Mastering the JFC Volume I:AWT SWING 3rd Edition,沒什麼說的了,盡管圖形設計不如J2EE那麼火,而且 Win32 下做應用程序也不是 java 的強項,但是 AWT 和 Swing 仍然是 Java 程序員的必修課,看這兩本就夠了,看看厚度就知道了,而且這也是 Sun 官方出的圖書。 第五名:J2EE構建企業系統/專家級解決方案 包含范圍:J2ee 清華大學出版社譯作者:[美]Paul J. Perrone/et al.著,張志偉等譯,又是一本極厚的書1038頁,105元。不過內容十分豐富,適合想對 J2EE 整體做了解的程序員,至於每項都想精就不太可能了,呵呵。畢竟在 Java 中思想是主要的。在這類中有本 Java 伺服器高級編程也很不錯。機工華章出的,wrox系列中的。 第六名:Java XML編程指南 包含范圍Java+XML 電子工業出版社,譯作者:[美]Tom Myers/Alexander Nakhimovsky著,XML 在 Java 中的地位也越來越重要了,而國內能看到的還有一本中國電力出的 o 'reilly 的 Java 和 XML,最後我還是選了這本 wrox 的,當然你要是想好好學學 XML 本身,還是看看那本 XML 高級編程吧,wrox系列中的,機工華章出的。 第七名:書名:Jini核心技術 包含范圍:Jini 英文原書名:Core Jini,作者:W.Keith Edwards,Jini 也是 Java 體系中很重要的部分,而且更重要的是這本可能是國內唯一的一本Jini專著,翻譯的也不錯,在我看來是當之無愧的經典。同樣是 Sun 的官方圖書,內容很清晰透徹。 第八名:Enterprise JavaBeans第二版 包含范圍:EJB 英文原書名: Enterprise JAVABEANS,作者:(美)Richard Monson-Haefel,O 'reilly 出的,ejb 的重要性我不用多說了吧,盡管有人說這本譯的不好,但是同樣它是國內目前唯一的 EJB 專著,o 'reilly 的書就是只講一方面或一項技術,很細,但價格也不菲,這本書的架構還可以,值得一看。 第九名:數據結構與演算法分析(Java版) 包含范圍:Java演算法 譯作者:[美]Clifford A.Shaffer著,張銘 劉曉丹譯,盡管基本上 Java 圖書都是講 Java 本身的特性,因為 Java 的體系太龐大了,而用 Java 來實現的數據結構與演算法,這本書也是唯一一本,所以盡管這本不是那麼的好但還是做以推薦。 第十名:軟體工程Java語言實現 英文原書名:Software Engineering with Java,作者:Stephen R.Schach,譯者: 袁兆山等,這本書沒什麼多說的,純理論性的東西,但軟體工程的重要也是有目共睹的,而且同樣是這個領域中唯一的一本Java書。 補充一本:Java2編程起步,英文名:Java2:A beginner guide,譯作者:[美]Herbert Schildt著,史興華譯.寫了這么多才發現還沒有為 Java 新手選一本書,這里是指對那些一竅不通而又想學的,(不久前的我呵呵),看了幾本後--包括Java2從入門到精通、21天學通java2第二版後--還是選了這本,我覺得這本是最好的java入門書,好在哪裡,看了就知道:) 後記:這十本不一定是最好的,只是我的個人看法,難免有誤,而且 Java 的很多方面還沒有包括進去。比如JSP,wrox 有本《JSP 編程指南》但不是特別好,所以沒有把它評進去,也沒有看到太經典的 JSP 書。同樣 J2ME 也沒有好書,只有本 Palm 應用程序設計&使用,Java 語言太薄了。還有本 Java 2 平台安全技術,結構,API設計和實現,是講 Java2 安全的,同樣很薄,《Java2 類庫增補版》太貴不如去看文檔。還有Jbuilder,Websphere等應用伺服器,CORBA等其他和Java有關的方面都有些不錯的書,在此就不多寫了,不足之處請大家指出,也希望對大家有所幫助:)

記得採納啊

㈧ 「Life is short,use Python」 最初是誰在什麼情況下說的

原話是「Life is short
(You need Python)」
-- Bruce Eckel
ANSI C++ Comitee member,
author of «Thinking in C++» and «Thinking in Java»
http://sebsauvage.net/python/

㈨ 有一丁點python for s60的編程經驗,想學C++,請各位推薦下入門書籍

別聽他們的,慢慢來吧,基礎好了,你比那些所謂的牛人不要強太多,把 《C編程語言》學會,就是brian和dennis寫的那本,然後做點開發,再把《ESSENTIAL C++》學會,再做開發,兩本書加起來600頁,行了,結束了,你月薪至少該上萬了。剩下的你對什麼感興趣就看什麼。不要一開始就什麼設計模式,外部類庫,BEA通信,構架分析,CMMI培訓,什麼深層機制探究啊,C++弱點分析啊,還有C++對象模型第4章開始的那些變態內容啊,都沒有必要看,完全沒有必要,除非你感興趣,基礎啊基礎,有的人什麼都懂,讓他寫過純C合並文件的幾行代碼,不會,那C++文件流你總會把,還是不會,他說我會設計模式,我能高屋建瓴,天生就是來做領導的,細節我不需要清楚。你也許覺得誇張,我沒見過幾個把最最基礎的C和C++那麼點內容完全熟練的程序員,真是浮躁的社會,沒人願意用半年時間去搞定。

閱讀全文

與bruceeckelpython相關的資料

熱點內容
mdr軟體解壓和別人不一樣 瀏覽:884
單片機串列通信有什麼好處 瀏覽:319
游戲開發程序員書籍 瀏覽:843
pdf中圖片修改 瀏覽:268
匯編編譯後 瀏覽:474
php和java整合 瀏覽:829
js中執行php代碼 瀏覽:440
國產單片機廠商 瀏覽:57
蘋果手機怎麼設置不更新app軟體 瀏覽:284
轉行當程序員如何 瀏覽:492
蘋果id怎麼驗證app 瀏覽:864
查看手機命令 瀏覽:953
抖音反編譯地址 瀏覽:226
如何加密軟體oppoa5 瀏覽:233
java從入門到精通明日科技 瀏覽:95
拆解汽車解壓視頻 瀏覽:598
新版百度雲解壓縮 瀏覽:593
android上下拉刷新 瀏覽:880
centos可執行文件反編譯 瀏覽:839
林清玄pdf 瀏覽:271