从PHP转向学习Python
我之前只学过PHP这门动态语言。现在我想学Python,主要是为了拓宽我的职业机会,还有就是我喜欢编程。 :)
在学Java的时候,我用过一个网站(现在忘了网址和名字),那个网站的页面一边是PHP代码,另一边是实现同样功能的Java代码。请问有没有类似的网站可以用来学习Python呢?
还有其他的建议或者推荐吗?
谢谢!
3 个回答
这段简单的介绍是给PHP初学者的一个起点。
我不太确定是否有这样的东西,但一般来说,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;
}
提问者的问题其实很简单,但正如@Pekka提到的,这可能是一个更深层次的问题(需要更详细的回答)。是的,Python的语法确实很容易学,不需要书本,但就像其他语言一样,掌握它还是需要花费一些时间。
推荐的《Dive Into Python》这本书是不错的,虽然Python 3的版本主要是针对没有任何基础的新手(也就是说,没有现成的Python代码,没有还没移植到Python 3的库或依赖等)。可惜的是,Mark已经删除了他大部分的在线内容。这是他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开发网页应用,有几个选择,目前最受欢迎的是Django。这是一个完整的网页框架,最接近Ruby on Rails。它有模板功能、ORM(对象关系映射)、可以在各种核心组件上运行(关系数据库、网页服务器、JavaScript库等),还带有一个很棒的管理界面,功能非常强大。如果你需要更多功能,可以看看Pinax。Django的替代品是Pyramid。Pyramid/Pylons不是一个单一的框架,而是像胶水一样,把各种优秀的组件结合在一起,比如用Jinja2做模板,用SQLAlchemy做ORM,用MochiKit作为JS库等等。第三个选项,主要用于高流量、低延迟、可扩展的应用,是Google App Engine。你可以用Python(或Java、PHP、Go)编写应用,然后上传到Google,让他们的基础设施来运行你的应用。大部分开发过程和在标准的LAMP架构上开发网页应用类似,除了数据存储。这个存储基于Google的BigTable,是一个非关系型的分布式对象数据库,所以最大的挑战是要克服用关系数据库的思维方式;它也独立发布为Google Cloud Datastore。如果你更喜欢关系型的解决方案,还有一个兼容MySQL的选择叫Google Cloud SQL。BigTable也可以作为独立技术从App Engine获取,并且可以作为Google Cloud Bigtable使用。这些选项够你选择了吗?!:-)
希望这些信息对你有帮助!
附言:如果你在寻找即将到来的为期三天的Python综合课程,可以和我联系。:-)