V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
fydpfg
V2EX  ›  Python

有一定的其他语言编程经验,应该如何学习 python?

  •  
  •   fydpfg · 2015-07-11 14:31:33 +08:00 · 3200 次点击
    这是一个创建于 3458 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我对C、C++、VB很熟悉,对C#、php、Mathematica比较熟悉,对Haskell、java、lua等有一定的了解。

    现在准备学习python,在网上查了一些推荐的书籍,并没有感觉看上去就挺喜欢的。

    我学C看的K&R的《C程序设计语言》,里面对语法的解释很详细,很多人觉得好的其他入门书我反而很讨厌。C++我看的《C++ Primer》,C#看的《C#入门经典》

    我学习python主要是自己兴趣,我觉得python能让我平时更方便的用编程解决问题,而不用在意底层的细节。python库也很多。

    我不希望书中介绍判断循环函数类什么的,然后让我像用C++那样用python。如果这样的话C++就够了。我希望很快学到一些python中有特点的东西,能够方便用编程解决问题。

    还有我不喜欢从代码中自己推断语法的方式,我需要严格定义的语法,还想知道一些python和其他语言的不同之处(比如函数是传值还是传址这种问题),还有python编写大型程序的规范(就像C语言哪些东西应该放在头文件里这种)

    我也刷过一部分codecademy上的python教程,总是感觉用几个小时学判断和循环的用法,学不到什么python的特性。

    大家有没有什么推荐的学习方法和书籍?谢谢!
    12 条回复    2015-07-23 14:33:14 +08:00
    loading
        1
    loading  
       2015-07-11 14:40:59 +08:00 via Android
    别老说什么特性,对着写个东西出来,这不是考试!
    powergx
        2
    powergx  
       2015-07-11 14:44:32 +08:00
    python 好简单我看了一天语法什么,第二天就开始做后台项目了。 一个月后完工
    hahasong
        3
    hahasong  
       2015-07-11 14:48:43 +08:00
    python好简单,我花了1天扫了一遍官方的2.7文档,感觉什么都知道了。然并卵只能写一个简单的类,然后一个多星期没碰,擦。元组是啥,utf8怎么编解码,循环语法是什么。。全忘了
    lijianying10
        4
    lijianying10  
       2015-07-11 14:48:56 +08:00   ❤️ 1
    没有人能比Python作者更了解Python
    没有人能比Python坐着更懂Python的特性。
    所以还是看Manual吧,祝你好运。

    也许你想接触更多的语言,学习更多的计算机技能,但是你的下一步更多的是应该研究你以后想解决什么样的问题,毕竟语言知识工具,解决问题才是目的。

    参考链接提供:
    https://docs.python.org/3/tutorial/index.html
    https://docs.python.org/3/
    最后希望能帮到你。
    yech1990
        5
    yech1990  
       2015-07-11 15:06:54 +08:00 via Android
    买了一本 Python高级编程 反正没怎么看懂。有底层的东西,应该适合楼主的需求。 网上的资料确实只能是用来入门,不可能有深入的东西
    chengzhoukun
        6
    chengzhoukun  
       2015-07-11 15:15:53 +08:00 via Android
    看看官方文档,刷刷算法题,学几个web 框架,
    再看看再看看那些高性能网络库和框架(gevent, twisted, Toronto)。
    然后学学数据处理、数据挖掘啥的
    这些应该差不多了
    再往深入学就要学其他东西了吧,比如Python解释器的实现,各种源码分析、深入学习机器学习算法
    em70
        7
    em70  
       2015-07-11 15:29:42 +08:00
    先语法入门,然后实践,实践,实践.遇到问题再去翻书或google.

    python程序很多时候是为自己写的,减少自己的工作量,比如我有10000个文档需要从里面提取指定内容,没有什么软件能满足我这个特定需求,其他语言也可以写,但太麻烦了. 如果python写,20行代码搞定.

    最常见的python练习是写一个爬虫
    tanteng
        8
    tanteng  
       2015-07-11 20:54:46 +08:00
    有个网站,php2python,它上面有php函数对应的python的函数或实现方式,挺有用的。http://www.php2python.com
    ChangxuBlack
        9
    ChangxuBlack  
       2015-07-12 01:26:00 +08:00
    用Python的思维习惯和C++会有一些不同,这也就是国外论坛里讲的不够Pythonic。。。这东西么,多看多写,积累经验就好了。
    举个例子,比如做一个10以内整数的立方的列表,学C的人习惯这么写:
    a = []
    for i in range(1,10):
    a.append(i**3)
    而所谓Pythonic的写法是:
    a = [i**3 for i in range(1,10]

    再比如,将3个字符串转换为整数,学C的人习惯这么写:
    strs = ['123', '456', '789']
    numbers = []
    for str in strs:
    numbers.append(int(str))
    而所谓Pythonic的写法是:
    numbers = map(int, strs)

    虽然很多人觉得这是语法糖,多几行少几行无所谓,但实际上对Python来讲不同的写法会导致不同的运行效率,上面两个例子中Pythonic的写法会比for循环快很多很多。。。所以我感觉学Python主要是在学这些东西,而不仅仅是和C语法的一一对应
    mingyun
        10
    mingyun  
       2015-07-12 10:07:51 +08:00
    @tanteng 还有个phpjs,有意思
    MrEggNoodle
        11
    MrEggNoodle  
       2015-07-12 10:38:10 +08:00
    http://www.liaoxuefeng.com
    这个Blog的建议教程应该够你用了~
    jack139
        12
    jack139  
       2015-07-23 14:33:14 +08:00
    dive into python
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2558 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:53 · PVG 13:53 · LAX 21:53 · JFK 00:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.