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
mewkeisa
V2EX  ›  Python

真正从 0 开始学 Python 的感觉

  •  1
     
  •   mewkeisa · 2016-03-24 11:32:24 +08:00 · 12364 次点击
    这是一个创建于 3195 天前的主题,其中的信息可能已经有所发展或是发生改变。

    对编程的概念一无所知来着,新手级入门真的是连怎么开始写、写了怎么运行都搞不清楚。

    先马着。

    68 条回复    2016-07-20 12:55:24 +08:00
    mewkeisa
        1
    mewkeisa  
    OP
       2016-03-24 11:36:38 +08:00   ❤️ 1
    看到有人问学习方法,大家都说少 BB ,多练习 ing
    还是觉得迷惑,从哪里开始动手呢?
    Shadowalker
        2
    Shadowalker  
       2016-03-24 11:43:17 +08:00 via Android   ❤️ 1
    照着 Learn Python the Hard Way 这本书敲,英语不过关可以找它的中文版,搜索关键字带上 PDF 可以找到下载
    mhycy
        3
    mhycy  
       2016-03-24 11:47:06 +08:00   ❤️ 2
    先看计算机原理,再看 C ,不求全懂但求概念清晰。
    最后再看 Python ,遇见搞不懂的词就去查,查的过程中发散去找相关的信息。
    过程中积累的就是你的基础知识。

    至于算法、结构、面向对象之类那都是入门以后的事了。
    nonozone
        4
    nonozone  
       2016-03-24 11:49:10 +08:00   ❤️ 1
    congeec
        5
    congeec  
       2016-03-24 11:50:19 +08:00   ❤️ 1
    说实话,我刚开始学 Python 的时候觉得 Learn Python the Hard Way 有些难,冗余。最后用 A Byte of Python , 2 天搞定
    DuckJK
        6
    DuckJK  
       2016-03-24 11:58:02 +08:00   ❤️ 1
    先找本书熟悉下基本语法,然后现在你知道这个简单方法怎么用了,用它做一个东西耍耍。楼上说先学计算机原理再学 C ,我实在无力吐槽了。
    UnisandK
        8
    UnisandK  
       2016-03-24 12:52:34 +08:00   ❤️ 1
    对编程的概念一无所知?来一把游戏先
    http://codecombat.com/
    mhycy
        9
    mhycy  
       2016-03-24 13:02:51 +08:00   ❤️ 1
    @DuckJK
    当面对一个什么都不懂只懂开机玩电脑的初学者,这条路能减少以后走错路的机会。
    至于别的回复,在基础不牢的时候搞应用层以后不懂的东西只能是越来越多。

    学习技术,首先搞懂原理,只要原理懂了,以后学习就简单了。
    PS. 不要假定一个初学者的基础知识。。。遇上就懂了。
    mewkeisa
        10
    mewkeisa  
    OP
       2016-03-24 13:15:54 +08:00
    @mhycy 也许是这样,我真的对原理不了解,这样以后也许会磕磕绊绊的,问下有推荐的书籍吗?
    mewkeisa
        11
    mewkeisa  
    OP
       2016-03-24 13:20:57 +08:00
    @UnisandK 这网页我爬不爬梯子都打不开,我想,我可能是网无缘此网站……
    DuckJK
        12
    DuckJK  
       2016-03-24 13:22:56 +08:00
    @mhycy 我是这样理解的(以我的经验): 拿这个学 Python 的做例子,是要先学计算机基本原理,(稍等下,我本来是想说学习的人可能会困到计算机基本原理出不来,然后又困到 C 里面出不来),但是我突然想到每个人是不一样的,我的方法不一定对。最简单的指导原则就是按照普遍的教材来学习,然后再自己摸索。你说的也挺对的,我是这样子来的,直接学,遇到什么问题就去查什么问题,中间不能找跟这个我问题无关的资料,最后折回来。以前学汇编的时候有个原则叫知识屏蔽,或者前几天我看了 phithon 的博客。(扯远了,不扯了)
    mhycy
        13
    mhycy  
       2016-03-24 13:24:25 +08:00   ❤️ 1
    @mewkeisa
    遇到不懂的关键字就搜,搜索的时候往底层挖。
    自然而然的就会学习到足够多的碎片知识。
    碎片知识足够多了就能形成知识框架了。

    当然,书籍的话计算机原理是必不可少必须先看的。
    虽然概念可能会有点老,但是原理相通。
    mhycy
        14
    mhycy  
       2016-03-24 13:31:04 +08:00
    @DuckJK
    你这是有基础的学习方式了。
    没基础的用这个方式学习只能越学越糊涂。

    他们也许会在基本原理出不来,也有可能会在 C 里面出不来,这是正常的也是学习过程中必须要经历的。
    一旦理解了,以后的学习就有知识基础了。不然一直在应用层上学习,对于一些细节的把握会不到位。
    (举个例子:传值、传引用,这个概念没有基础的话不会理解到底层的区别,更有可能看不懂就略过去了。)

    PS. 有些初学者根本不会从身边的细节着手去理解一些事。
    tonghuashuai
        15
    tonghuashuai  
       2016-03-24 13:31:46 +08:00
    先看基础的书籍,主要培养编程思想和概念,学习 Python 语法,然后马上开始动手写,可以模仿项目,也可以自由发挥,完成一个项目后,然后再系统的学习一下高级点的书(比如 Python cookbook ),然后再系统看看标准库,第三方库等等
    mewkeisa
        16
    mewkeisa  
    OP
       2016-03-24 13:35:06 +08:00
    @mhycy 嗯嗯,好哒,我看了之后再来汇报成果。
    UnisandK
        17
    UnisandK  
       2016-03-24 13:44:19 +08:00   ❤️ 1
    @mewkeisa 它 CDN 用的是 CF 的,国内有些地方打开可能是有问题,但挂梯子都不行就有点迷了。。我这边打开是一切正常的

    我喜欢这游戏主要是因为它是一点一点让你感受编程思想的,不像语言的入门教程。可能没几篇就把 if for while 一类的基础流程控制函数都教完了。我记得我当时玩儿的时候打穿了一屏幕的关卡才拿到一本 loop 技能书(没错在之前的关卡里是写不出循环的),有底子的人玩儿起来可能感觉挺无聊,但对新手再适合不过了。
    loveuqian
        18
    loveuqian  
       2016-03-24 13:56:01 +08:00   ❤️ 1
    mewkeisa
        19
    mewkeisa  
    OP
       2016-03-24 14:02:38 +08:00
    @loveuqian 有朋友给我推荐了这个网站,但是我看了前面初级几篇,然后我就碰壁了,只能不断的找朋友问些初级问题,例如怎么才算开始写?人家回答拿记事本也能写,然后我也不懂怎么运行,什么环境什么的,就过了一个来月,人家说我怎么还在最初级状态,我在想可能我朋友已经比较懂,没法理解我这种刚入门的,我真的一点感觉都没有……
    mewkeisa
        20
    mewkeisa  
    OP
       2016-03-24 14:04:08 +08:00
    @UnisandK http://cn.codecombat.com/ 点击之后跳到这里就一直转圈圈。
    zhicheng
        21
    zhicheng  
       2016-03-24 14:09:38 +08:00
    自己学,不要问,不知道的自己查。越问越不会。
    RqPS6rhmP3Nyn3Tm
        22
    RqPS6rhmP3Nyn3Tm  
       2016-03-24 14:10:55 +08:00
    强烈推荐廖雪峰
    hitmanx
        23
    hitmanx  
       2016-03-24 14:12:03 +08:00   ❤️ 1
    @mewkeisa 你可能不太适合看文字教程。推荐去淘宝搜"python 视频教程",应该能搜出一堆各种培训班的视频教程来,几块钱一个网盘,里面几十上百 g 的资源。正版盗版的问题这儿暂且不论,挑个靠谱得视频边看边更着做就行。就不会有这么多困惑了
    tttimit
        24
    tttimit  
       2016-03-24 14:12:14 +08:00   ❤️ 1
    刚开始入门,如果之前没有背景知识,建议找个视频来开始学习,它能帮你解决 IDE ,如何编译运行程序,如何调试等基本困难。( Coursera 上面有莱斯大学的交互式 Python 编程的课程,跟着走,很简单的,但是能带给你巨大的成就感)

    等稍微入了门,为了提高效率就可以找一两本好书,开始看书,边看书边敲代码练习。书上有练习题就更好了,一定要独立做出来练习题。( Quora 上面学习 Python 推荐的是《 Learn Python the hard way 》中文就是《笨办法学 Python 》最近 Amazon 有买书打折活动,楼主可以去看看)

    在下一步,就是学习主流框架的使用,这个先要去了解你想要做的事情是 web 开发,还是科学计算,还是运维等等。确定了方向之后,就去找对应框架的官方网站,肯定有很多教程,到时候再跟教程走。(这一步的目标就是,自己使用该框架,**独立**做出来一个简化版的应用,这一点非常重要)

    总结就是:学习一门语言,首先时学习语言如何使用,下一步就是主流框架如何使用。
    echo111222
        25
    echo111222  
       2016-03-24 14:13:30 +08:00   ❤️ 1
    建议先看计算机导论…网易公开课 有 ,用 Python 讲的。
    UnisandK
        26
    UnisandK  
       2016-03-24 14:18:34 +08:00
    @mewkeisa https://codecombat.com/ 试一下 https 会不会跳过去?
    echo111222
        27
    echo111222  
       2016-03-24 14:19:10 +08:00   ❤️ 1
    强烈建议看下萧井陌的专栏,编程入门指南 1.4 !请前往知乎搜索
    wellsc
        28
    wellsc  
       2016-03-24 14:20:30 +08:00   ❤️ 1
    http://v2ex.com/t/265983#reply25 把这个帖子右边栏的书和文档过一遍,沉下心别浮躁。
    pyufftj
        29
    pyufftj  
       2016-03-24 14:24:00 +08:00
    @BXIA 他的博客的确是好。关键是幽默,逗 b ,看的人就有学的兴趣,还有他的 javascript 教程也不错啊
    wizardoz
        30
    wizardoz  
       2016-03-24 14:24:19 +08:00
    那你第一步不是学编程,而是计算机导论,反正乱七八糟的书看一些。
    先搞清楚编程是怎么回事!
    rim99
        31
    rim99  
       2016-03-24 15:52:48 +08:00   ❤️ 1
    @echo111222 +1

    写 Python 可以先用 PyCharm ,以后熟练了再学习 Atom , Sublime , Vim 之类的

    教程嘛,除了廖雪峰的,

    1. 还可以试试这个: http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html 这个有点简单,看懂了以后再用廖雪峰的扩展。
    2. 你还可以网上搜这个: Python 核心编程(第二版)
    3. 官方教程的中译版: http://python.usyiyi.cn
    rim99
        32
    rim99  
       2016-03-24 15:54:46 +08:00   ❤️ 1
    其实你要是英语过关的话,强力推荐 HtDP : http://www.ccs.neu.edu/home/matthias/HtDP2e

    鼎力推荐
    loveuqian
        33
    loveuqian  
       2016-03-24 17:15:08 +08:00
    @mewkeisa
    不会啊,上面都有一步一步教你的啊
    写代码没什么神奇的东西,能打印一个 hello world 也算开始写啊

    我相信一个月的时间,认真学的话,你这些自己的问题都不算问题
    s04
        34
    s04  
       2016-03-24 17:22:51 +08:00
    python 真的很简单,我很喜欢。相对于 java 真心感觉爽得不得了
    hdl094
        35
    hdl094  
       2016-03-24 17:38:16 +08:00   ❤️ 1
    楼上推荐了很多了。我也来推荐一个 http://interactivepython.org/runestone/static/thinkcspy/index.html
    是 think python 的交互版。从很基础的讲起的。
    hardware
        36
    hardware  
       2016-03-24 18:19:28 +08:00   ❤️ 1
    推荐 可爱的 python
    ldehai
        37
    ldehai  
       2016-03-24 18:37:02 +08:00   ❤️ 2
    @mewkeisa 先从最简单开始,几个小任务。
    1 、安装
    2 、命令行运行 python ,可以查看 python 的版本
    3 、随便什么编辑器,先敲一个最简单的 print 的例子 print 'hello world',文件命名为 test1.py
    test1.py 里面的内容就是我们常说的代码,以 py 作为文件扩展名,只是为了方便我们使用,其实你用其他扩展名也没有影响。
    4 、命令行下运行 python test1.py ,可以看到程序输出了 hello world 字符串
    这里 python 程序就是用来读取 test1.py 源代码,并且根据里面的语句来一行一行执行的。

    到了这里我觉得就算入门了。接下来你要去了解 python 的基本语法,几个比较重要的是:
    1 、条件判断语句后面以冒号结尾(:)
    2 、 python 使用缩进来表示程序的逻辑结构,没有用到大括号
    3 、引用其他的库文件是使用 import 语句,一般放在代码文件的头上,也可以放在代码行中,不过那不是好的习惯。
    5 、 python 可以写过程式的代码,也支持面向对象,就是说支持类以及继承,这样就可以最大限度的复用代码,减少冗余。

    这些了解了,就可以做具体的事情了,尽量找一些自己需要解决的简单问题,用 python 去实现。比如创建一个文件,写入内容。读取文件内容。

    再然后,可以看看 tornado ,试着用它来跑一个服务器输出 html 页面。剩下的路就让 google , stackoverflow 陪你吧
    pimin
        38
    pimin  
       2016-03-24 18:51:59 +08:00   ❤️ 1
    我也是新学 Python
    希望楼主不要在编辑器 /系统 /Python 版本等问题下纠结太多时间
    随便抓一个练习用都完全足够
    编辑器我现在用的是 sublime
    教程选择是:简明 Python 教程
    我觉得这书的好处就是入门比较快
    计划是这本书过完之后看一遍廖雪峰的 Python 教程
    然后刷一些题,再看 flask.
    如果不是特别着急,可以选择网易公开课:
    http://www.icourse163.org/learn/bit-268001?tid=1001627001#/learn/announce
    xdcr
        39
    xdcr  
       2016-03-24 19:26:58 +08:00
    找个感兴趣的东西来折腾,有动力才能坚持。
    空闲时间自学一年多,都是找谷老师,有空时刷刷手册。
    目前应该算刚进门。
    g00001
        40
    g00001  
       2016-03-24 19:28:38 +08:00
    python3 推出了快十年了都没流行起来,想想玩 python2 的骨灰级高手适应 python3 都这么难,不会 python 的适应 python 该有多难, python 的简单其实被夸大太多了。至少没有 aardio 简单方便。
    cai72738
        42
    cai72738  
       2016-03-24 20:16:18 +08:00
    留个邮箱,我们老师给我们本 PDF 教材,我觉得挺好的,给你发过去。我也正在学。不懂的地方,我们可以互相讨论。
    rim99
        43
    rim99  
       2016-03-24 21:10:35 +08:00
    isnowify
        44
    isnowify  
       2016-03-24 21:16:08 +08:00 via iPhone
    head first python
    badaciacia
        45
    badaciacia  
       2016-03-24 22:42:57 +08:00
    https://www.codecademy.com
    我从这个地址学习 python 推荐给 LZ
    woniu127
        46
    woniu127  
       2016-03-25 00:34:17 +08:00 via Android
    同 python 零基础学习,先看的笨方法学 python ,然后在网上找了些题练手巩固基础,类的运用和面向对象还不熟悉,着重巩固下。然后打算学 flask 。这两天一直在看数据结构和算法,感觉学 python 数据结构和算法可以暂且不看,先用熟 python 。
    ivvei
        47
    ivvei  
       2016-03-25 00:54:55 +08:00
    把 CSAPP 读完,计算机基础就有了。当然这个过程对于你急切学会 Python 的愿望来说不解渴,所以同时你也可以找最简单的那种 Python 教材从头开始练练手。要那种写得很细的,你无脑照着做就能出结果的。
    judyApple
        48
    judyApple  
       2016-03-25 03:20:52 +08:00
    我觉得还是先从 c++开始比较好。被 c++虐过才能体会 python 的好
    coolloves
        49
    coolloves  
       2016-03-25 06:20:03 +08:00 via iPhone
    Mark
    charlie21
        50
    charlie21  
       2016-03-25 08:11:58 +08:00
    先写 100 行代码
    再写 100 行代码
    再写 100 行代码
    再写 100 行代码
    再写 100 行代码
    ok ,你已经不是从 0 开始了
    freaks
        51
    freaks  
       2016-03-25 08:42:03 +08:00
    好多大牛不都是: Learn by doing 吗?
    BruceYuan
        52
    BruceYuan  
       2016-03-25 09:53:31 +08:00
    连缩进是什么都不知道,这才是真正的新手
    fuge
        53
    fuge  
       2016-03-25 10:02:04 +08:00
    新手连电脑都不会用
    zhang21507
        54
    zhang21507  
       2016-03-25 10:06:12 +08:00
    我也刚开始学,还只会打印 Hello Word 。
    20015jjw
        55
    20015jjw  
       2016-03-25 10:10:02 +08:00 via Android
    diveintopython 挺好 我校的 cs61a 也挺好
    Return2legacy
        56
    Return2legacy  
       2016-03-25 10:16:43 +08:00 via Android
    非专业无基础,一上来直接写了个爬虫,只是为了需求。有动力了,怎样都难不倒,看人家的范例,不懂就放狗。可能会写得很糟糕,但是起码写了,优化什么的再说。
    qizhca
        57
    qizhca  
       2016-03-25 10:22:19 +08:00
    至今没觉得自己学会了 Python ,当时要做个网页用来收集各个营业部提交的信息。大家都在说 Django 好,各种好,于是去看 Django ,发现要用 Python ,然后去看 Python ,结果发现这离我要做网站的目的好像越来越远了。。。
    于是去学会了最好的语言。。。
    不过推荐这个网站一下 runoob.com 。。 Pyhton 和 PHP 都是照着这个网站学的,也许很基础,但够入门了吧。。
    1stlulu
        58
    1stlulu  
       2016-03-25 10:43:47 +08:00   ❤️ 1
    @mhycy 您这就相当于一个人要学开车,您要人家去了解内燃机原理。
    jackie9692
        59
    jackie9692  
       2016-03-25 11:29:03 +08:00
    团队主要使用 springMvc 开发,配置繁琐,技术老大决定 python tornado 进行原型开发。由于工作安排不同(实习生没活干),只能我来做了,做了。。。谈完业务需求后,就是先找资料(视频,电子教程),技术选择(tornado 框架+SQLAlchemy ORM).整整两周时间,每天上下班地铁上闷头看教程,主要看的是 python 学习手册,文字比较啰嗦但很适合初学者,重点是掌握数据类型及基本操作,含遍历等,再就是 class 和 module 的概念, IDE 用的是 pydev+eclipse 略坑,强烈推荐 pyCharm ,另 python 自带 IDEL,非常适合练习语法,无历史记录,换行略坑(吐槽下)。有需求才有动力, python 上手很快,东西不要贪多,舍弃语法糖,相信楼主也可以的。现在在玩 python3 ,个人觉得新手直接 3 吧。
    翻看到去年给同事的培训资料,仅供参考 http://pan.baidu.com/s/1dFCuj6p
    附: https://github.com/Jackie9692/API-validator-Tornado
    mhycy
        60
    mhycy  
       2016-03-25 11:33:39 +08:00
    @1stlulu
    考驾照真的要考。。。。
    raawaa
        61
    raawaa  
       2016-03-25 12:10:02 +08:00
    http://composingprograms.com/

    面向零基础的。伯克利大学大一入门课教材。
    mars0prince
        62
    mars0prince  
       2016-03-25 14:55:54 +08:00
    找本基础书,大概了解下循环,变量,流程控制这些基本概念,就可以开始写简单的爬虫,算法了,然后再进入面向对象编程,基本都是这么过来的
    kehaoim
        63
    kehaoim  
       2016-03-25 14:59:34 +08:00
    程序员 kezhan
    hienchu
        64
    hienchu  
       2016-03-25 16:03:41 +08:00
    如果“对编程的概念一无所知来着”,先不要从语言层面下手,可以打开一个 python 的控制台,在里面事实加减乘除,打印“ hello world ”之类的例子开始。等你搞清楚计算机和计算器的区别以后,再着手学习语言。

    编程只不过是通过某些方式让计算机做你想做的事情,但首先你得明白 1.你想做什么? 2.计算机能做什么?
    sky19
        65
    sky19  
       2016-03-25 18:39:52 +08:00
    我学 Python 看的 head first Python 看完之后收了这个系列的 n 本书。
    不过学的 3.x 后来用的 2.x
    codeman
        66
    codeman  
       2016-03-25 19:27:54 +08:00
    @nonozone 我玩了好久。。。。
    mewkeisa
        67
    mewkeisa  
    OP
       2016-07-20 12:33:30 +08:00
    距离我这个新手学习 Python 已经过去了 116 天,直到最近我才搞懂一个概念:
    因为我一直使用的是 Mac 端, Mac 自带的终端是可以直接写的,在终端输入 Python3 就会进入写代码模式,然后写归写,原来还需要一个文件来运行这个代码的呀。我一直以为开始学就跟 word 一样写文字,所见即所得了。

    过去的三个月我迷失在工具的安装、如何在电脑上进入写代码的界面、如何运行的代码这些基本问题里面,现在我的电脑中安装的是 Python 3.4.3 的环境,跟着廖雪峰的博客正在进行学习。

    之前三个月都是空白,在起步的白痴问题上搞不懂,就放弃了好久,真是愧对上面认真回复我的朋友们,我对码代码一点概念都没有。

    再回来看,我会让你们的回答都变得有意义,我会时不时在这里来打卡的。嘤嘤嘤。
    mewkeisa
        68
    mewkeisa  
    OP
       2016-07-20 12:55:24 +08:00
    ------------------------------------------------------
    直接运行 py 文件

    有同学问,能不能像.exe 文件那样直接运行.py 文件呢?在 Windows 上是不行的,但是,在 Mac 和 Linux 上是可以的,方法是在.py 文件的第一行加上一个特殊的注释:

    #!/usr/bin/env python3

    print('hello, world')
    然后,通过命令给 hello.py 以执行权限:

    $ chmod a+x hello.py
    就可以直接运行 hello.py
    ------------------------------------------------------

    这一段是 http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316399410395f704750ee9440228135925a6ca1dad8000 源自教程里面的,想问下是不是在 Mac 里终端下直接写这个吗?

    $ chmod a+x hello.py

    我试了下显示 command not found 呀?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1277 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:33 · PVG 01:33 · LAX 09:33 · JFK 12:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.