从PHP开始学习Python

31

我在动态语言方面的经验仅限于PHP。现在我想学习Python以扩展我的职业机会,而且我也喜欢编程。 :)

在学习Java时,我使用了一个网站(现在忘记了URL/真实名称),类似于“Java for PHP developers”,其中一侧是用PHP代码编写的,另一侧是用Java代码编写的,完成相同的功能。是否有类似于Python的网站?

还有其他建议/建议吗?

谢谢


4
没想到,我今天也正想问同样的问题 :) - Pekka
8
@Pekka - 伟大的思想总是相似的(或者说“笨蛋没有自己的想法”)。:D - Amy B
@Coronatus 真的!我想我们必须保持开放,看哪一个适用:D - Pekka
5
我认为我们需要一个新的关闭原因:帖子包含短语"kthxbai"。;) - gnovice
6
最好不要参考PHP,直接通过Python教程(如http://docs.python.org/tutorial/)来学习Python会更好。尽管PHP正在改进,但在表达能力和功能方面,它仍远远落后于其他语言。你不想在Python(或Java)中被困在使用PHP的习惯用法中。 - outis
11
@outis提到你来自的语言很重要,因为对于有经验的Web开发人员来说,学习路径与完全不懂编程或来自“传统”的应用程序开发世界的人是不同的。此外,虽然我理解你的意思(我最初来自Pascal / Delphi世界,相比之下,比PHP更加严格!),但说PHP比其他语言落后太多是不公平的,特别是看看版本5和甚至更高版本5.3。它正在不断改进,并已成为开发Web应用程序的出色、可靠的工具。 - Pekka
3个回答

22

OP的问题足够简单,但正如@Pekka所提到的(或劫持的),这可能是一个更深入的问题(需要更实质性的答案)。是的,Python的语法足够容易学习,不需要书籍,但像其他任何语言一样,仍需要相当长的时间来掌握。

《Dive Into Python》的建议是有效的,尽管Python 3版本仅适用于没有负担(即没有现有Python代码,没有尚未移植到Python 3的库/依赖项等)的新手。不幸的是,马克已删除了他的大部分在线内容。这里是他的Python 3书籍的一个存档:http://www.diveintopython3.net……它是一个非常好的高级语言介绍,通过立即沉浸你进入编码位。

如果您正在寻找稍微全面一些的东西,我写了Core Python Programming,专门针对已经精通另一种高级语言(如Java、C/C++、PHP、Ruby等)的程序员,他们需要尽快、尽可能深入地学习Python……它更像是一次“深潜”而不是一次“快速潜水”。对于纯参考书籍,您可以根据需要从书架上取出,我建议使用Beazley的Python Essential Reference或Martelli的Python in a Nutshell……两本书都很好,尽管Alex的书还没有更新到最新的Python版本。不过我相信他正在努力。;-)

[2015年6月更新] 谈到在Python上开发Web应用程序,有几个选择,目前最受欢迎的是Django。它是一个全栈Web框架,是Python最接近Ruby on Rails的东西。它具有模板、ORM,可以运行在各种核心组件(RDBMS、Web服务器、JavaScript库等)上,带有惊人的管理界面,以及更多的功能。如果需要更多的功能,也可以看看Pinax。Django的替代品是Pyramid。Pyramid/Pylons不像单一的巨大框架,而更像胶水,将最好的组件绑在一起,例如Jinja2用于模板、SQLAlchemy用于ORM、MochiKit作为JS库等。第三个选择,主要用于高流量、低延迟、可扩展的应用程序是Google App Engine。您可以使用Python (或Java、PHP或Go)编写应用程序,并上传到Google,在其基础设施上运行您的应用程序。大部分开发与标准LAMP堆栈上的Web应用程序开发类似,除了数据存储。基于Google的BigTable,它是一个非关系型分布式对象数据库,因此最大的障碍是克服以关系型数据库的方式思考;也可以独立发布为Google Cloud Datastore。还有一个关系型MySQL兼容的替代品,称为Google Cloud SQL,如果您喜欢NoSQL解决方案而不是它。BigTable也可以作为App Engine的独立技术使用,并作为Google Cloud Bigtable提供。这足够多的选择了吧?!?:-)

希望这能帮到你!

附言:如果你正在寻找一门全面的Python 3天课程,可以和我聊聊。:-)


1
又一个 Python 程序员的好例子。 - Hugo Estrada
"Core Python Programming" 的链接失效了,有最新版本吗? - Lode
请尝试访问corepython.com,有关详细信息,请参见amzn.com/0132269937上的评论。 - wescpy

7
我不确定是否有这样的事情存在,但是Python通常是一种易于学习的语言。Python文档通常非常清晰易懂。从Python解释器中,您还可以使用dir()和help()方法查看方法、属性和文档,这使得在Python中探索可用选项变得容易。
以下是PHP和Python之间的一些差异示例:
Python:
x = [1, 2, 3, 4, 5]
for a in x:
    print a
print "Loop is over"

PHP:

$x = array(1, 2, 3, 4, 5);
foreach($x as $a) {
    echo $a.PHP_EOL
}
echo 'Loop is over'.PHP_EOL;

如您所见,Python不使用'{'和'}',而是使用缩进来确定for循环何时结束。

Python:

x = {'spam':'hello', 'eggs':'world'}
if x.get('spam'):
    print x['spam']

PHP:

$x = array('hello'=>'spam', 'world'=>'eggs');
if array_key_exists('hello', $x) {
    echo $x['hello'].PHP_EOL;
}

1
不是要抢占@Coronatus的问题,但更有趣的是关于高级内容的教程,例如如何组织可扩展的Web应用程序,如何构建基本的类框架等等。当你已经知道在Python中如何做“xyz”,以及在PHP中如何完成时,基本语法肯定很容易学习。 - Pekka
PHP和Python之间有很多概念可以相互转换。最初的困惑来自于Python中缩进的重要性。此外,循环和if语句也有所不同。我将编辑上面的答案,包括一些示例。 - thetaiko

6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接