导航:首页 > 编程语言 > 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相关的资料

热点内容
不能修改的pdf 浏览:736
同城公众源码 浏览:474
一个服务器2个端口怎么映射 浏览:282
java字符串ascii码 浏览:59
台湾云服务器怎么租服务器 浏览:460
旅游手机网站源码 浏览:315
android关联表 浏览:929
安卓导航无声音怎么维修 浏览:320
app怎么装视频 浏览:423
安卓系统下的软件怎么移到桌面 浏览:80
windows拷贝到linux 浏览:753
mdr软件解压和别人不一样 浏览:886
单片机串行通信有什么好处 浏览:324
游戏开发程序员书籍 浏览:848
pdf中图片修改 浏览:275
汇编编译后 浏览:478
php和java整合 浏览:833
js中执行php代码 浏览:447
国产单片机厂商 浏览:62
苹果手机怎么设置不更新app软件 浏览:289