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

学得太杂了,感觉迷茫(吐槽)以及求问怎么写 Python 项目

  •  
  •   Jackhuang · 2015-11-02 18:10:43 +08:00 · 6189 次点击
    这是一个创建于 3313 天前的主题,其中的信息可能已经有所发展或是发生改变。

    笔者大三了,昨天送妹子 Kindle 被拒绝了(就是之前那个想要社工的帖子的那个妹子),最近写作业要死了。细数一下,感觉自己学了好多好多的语言,感觉想要吐了。大一 C ,大一下 C++,分数还不错,大二重新学 C++(老师喜欢讲 STL 源码,考试时,跪了 70+),在学 C++的时候又选了 JAVA(期中一会儿写 SWING ,一会儿又转去 Servlet,JSP,期末写一个搜索引擎),并且那个学期又上了一门 Web 技术概论( JS,HTML,CSS , PHP ),然后同时学数据结构(期中并查集没写出来,跪了 70+,打击超级大。)基本上觉得啥语言都入了个门,感觉生活难受死了。寒假参加 MCM ,又稍微接触了 Matlab 。之后大二下学 MySQL (范式, ACID,也是虐死我了),计算机图形学写 OpenGL,被忘记的 C++和 C 虐得不要不要的。

    在假期感觉人生艰难的时候,找了个爬虫的实习。入坑 Python ,感觉好了很多,因为总算有一个通用的解决方案了。爬虫写得很开心。对 Python 好感度超级高,并且感觉之后的作业有保证了,但是这学期图像处理学 OpenCV,感觉 Python 的 Opencv 库资料不多啊,另外一门课上 Matlab ,也不知道能不能用 Numpy + Scipy 代替,写 NLP 的 Bigram 又总是觉得模型慢得原因是语言问题。难道必须要滚回去学 C 艹了么?当年选 Java 课的原因就是因为觉得 C 艹不够通用,觉得 Java 万能,但是写个简单的文本处理都要开一个 Eclipse 。太恶心。
    现在回到 Python 的问题上来,之前写 Python 的项目都非常的短,老是觉得自己代码丑死了。请问一个标准的 Python 项目应该怎么写,例如这次作业写一个 Bigram ,在给定语料的基础上,判断测试两个句子哪一个更加正确。这应该是面向对象风格,写类,还是直接写函数就行了。谢谢了

    38 条回复    2015-11-03 22:33:02 +08:00
    junnplus
        1
    junnplus  
       2015-11-02 18:42:39 +08:00 via Android
    google python 91 个建议
    Marfal
        2
    Marfal  
       2015-11-02 18:43:45 +08:00
    想问一下 LZ 哪个学校的?
    sagnitude
        3
    sagnitude  
       2015-11-02 18:51:01 +08:00
    python 不是有个 PEP8 么

    我用 pycharm 写的时候,只要照着 IDE 的代码提示改,代码风格就还行,我在 Inspection 里打开了 PEP8 检查
    terry0314
        4
    terry0314  
       2015-11-02 18:53:00 +08:00
    学校开了 C++ Java C#然而我自己只学了 C++和 Python 其他都处于放任自流的状态...
    sagnitude
        5
    sagnitude  
       2015-11-02 19:02:14 +08:00
    大学课程的那些语言都只能是入个门、做个题,根本都算不上“学的太杂”吧。。我大学学了四年 java ,还是出来工作才真正熟悉写 java 程序的过程,打基础的时候建议你还是继续刷代码量吧,等你有好想法的时候,有代码量的基础在,能够很快很好地实现出来,我是感觉自己写的远远不够
    Jackhuang
        6
    Jackhuang  
    OP
       2015-11-02 19:11:04 +08:00 via iPhone
    @junnplus 感谢!
    Jackhuang
        7
    Jackhuang  
    OP
       2015-11-02 19:11:35 +08:00 via iPhone   ❤️ 1
    Jackhuang
        8
    Jackhuang  
    OP
       2015-11-02 19:13:07 +08:00 via iPhone
    @sagnitude 不是格式问题,我觉得是 py 写函数还是写类很纠结 。可能还是代码写太少了吧。
    solaya
        9
    solaya  
       2015-11-02 19:30:17 +08:00
    我学过 c/c++/javase/javaee/android/.net , STL 源码也看过。大三的时候发现这些不好找工作,最后去看 PHP 去了。
    UtopiaCHN
        10
    UtopiaCHN  
       2015-11-02 20:17:45 +08:00 via iPhone
    wizardforcel
        11
    wizardforcel  
       2015-11-02 20:22:56 +08:00
    公司的话,就和项目的其它代码保持风格一致。

    个人项目的话就无所谓了,你自己看着顺眼就行。
    niseceric
        12
    niseceric  
       2015-11-02 20:34:24 +08:00
    Matlab 用 numpy 稳稳的, 速度也稳稳的~
    virusdefender
        13
    virusdefender  
       2015-11-02 20:35:34 +08:00
    讲 STL 源码,期中考试就是并查集,还有 NLP 。我猜就是很牛逼的学校,果然..

    ---

    你这小项目的代码确实没法规范,不过建议是写类,每个类做一个相对独立的事情,可能几个类搞定了。

    实在不行分模块,写几个文件。

    关于写法的规范,去看 pep8 就好了
    iwj
        14
    iwj  
       2015-11-03 00:05:58 +08:00 via Android
    看了你的文字描述,我仿佛身临其境,感觉也被虐惨了,你的文字太有魔力了。回到正题,关于 Python ,我也跟你一样有困惑,比较赞同 @wizardforcel 的想法。
    honmaple
        15
    honmaple  
       2015-11-03 00:12:03 +08:00 via Android
    同大三,同学了 n 多语言,同在入坑 python
    Med
        16
    Med  
       2015-11-03 00:58:40 +08:00
    说个人项目代码风格无所谓的,扯淡吧。代码风格要慢慢培养,你要是乐意写着屎一样的代码,那也没什么好说的。 python 本来就很难重构,如果项目一开始风格就很乱,那写到后面痛苦的是自己。
    qdwang
        17
    qdwang  
       2015-11-03 01:13:18 +08:00 via Android
    原来 pku 也就是教这些东西 我放心了
    MCVector
        18
    MCVector  
       2015-11-03 01:16:57 +08:00
    哈哈 C++ 才是万能的
    MrGba2z
        19
    MrGba2z  
       2015-11-03 01:26:04 +08:00   ❤️ 1
    公司 /客户项目: 按公司 /客户的来
    个人项目及其他:我选择 pocoo 的 style

    pocoo 的 styleguide : http://www.pocoo.org/internal/styleguide/
    另外可以直接看他们的源码,能更直观的看到一些风格,习惯
    junnplus
        20
    junnplus  
       2015-11-03 01:27:23 +08:00 via Android
    竟然是 pku ,其实对于写类还是写函数,这看使用的库和习惯,一般我都会按照使用的库的习惯写法去整理代码。
    loading
        21
    loading  
       2015-11-03 06:58:17 +08:00 via Android
    私人代码先维持能跑级别,现在的创业项目哪个是因为代码质量好发家的?

    公司代码,不是有规范呢…
    vietor
        22
    vietor  
       2015-11-03 07:53:19 +08:00 via Android
    注意命名规范,其他的就靠习惯
    surefire
        23
    surefire  
       2015-11-03 08:33:35 +08:00   ❤️ 1
    撸主你有我学得杂吗?老子从汇编学到 C ,从 C 到 C++, C++又到 HTML/CSS/JS(前面是大学里的课程,后面是自学),然后工作中(非软件开发)又捣腾了一下 shell ,被发现有软件开发“潜质”后调入开发组,从此就开始撸代码了,从 Delphi 开始,然后又到 C#,再到 C++,再再到 SQL Server ,然后又来硬的, protel99 画电路板,画完电路板用 C 写 linux 驱动,写完驱动又是 MySQL ,后面又是 C#,再到 javascript ,然后 Python ,再然后又是 PostgreSQL ,再再然后就是 Java 、 shell 什么的,现在主要岗位是 Java 开发——虽然没写过几行代码,但因为工作需要偶尔用 C++写个小函数,或者 Python 做做页面分析,还要参与 js 框架预研,业余呢,我 Mac 了个数据库客户端——这样的结果就是,我“懂”很多,但没一个精通的,也不知道这样好不好,但也开阔了眼界。工作需要,我也只能默默接受。
    usapla
        24
    usapla  
       2015-11-03 09:11:28 +08:00
    @surefire 666666666 ,给大兄弟跪了,你简直要成计算机语言百科全书了。
    Jackhuang
        25
    Jackhuang  
    OP
       2015-11-03 09:20:29 +08:00 via iPhone
    @surefire 完全就是这种感觉,”懂”得多,没有精通。感伤
    每次都是因为课程要接触一个东西,还没摸熟就被扔掉了。
    inFinityzc
        26
    inFinityzc  
       2015-11-03 09:22:08 +08:00
    记得经常有《 XX Cook Book 》这种书,个人认为写代码就像是做饭,吃东西的人不在乎你用的什么工具,用的 6 不 6 ,只在乎你做的好吃不好吃。当然如果对某个工具掌握的炉火纯青,做饭的时候会得心应手,别人吃起来也会赞不绝口。
    xiqingongzi
        27
    xiqingongzi  
       2015-11-03 09:23:14 +08:00 via Android
    @surefire 牛逼,软硬一把抓
    tt0411
        28
    tt0411  
       2015-11-03 09:42:20 +08:00
    楼主已经很厉害了,我本科时候学得也很乱,后来发现要想学好一门语言或技术,还是去实习或做项目最好
    liqingcan
        29
    liqingcan  
       2015-11-03 13:47:39 +08:00 via Android
    我也这样觉得,学校大一上 c 下 c++大二上 java 下 c#,好晕。。。
    Sabermadao
        30
    Sabermadao  
       2015-11-03 16:43:00 +08:00 via Android
    我也学了好多!也是平时写写作业!没啥项目做也就忘了好多!话说 pku 是北大的意思么?大神
    bnpysse
        31
    bnpysse  
       2015-11-03 17:01:25 +08:00
    学校学的跟以后工作做项目,是两回事,基本上不用担心什么。如果真正做项目的话,你就会知道自己哪里是短板,然后再补充就可以了呀
    aljun
        32
    aljun  
       2015-11-03 21:05:46 +08:00 via iPhone
    高中 noip 搞的 c ,大一搞 web ,同时前后端一起上,比较熟的是 JavaScript 和 Python ,暑假用 django 写了个功能比较多的网站,用 flask 写了个自己的博客,同时还学习了 ruby 和 c 艹(码算法,毕竟 noip 在大学根本不够看),也觉得自己学的挺多的,但还是佩服楼主很厉害的,贴个 gayhub 多交流行么?(我是小菜) http://github.com/salamer
    aljun
        33
    aljun  
       2015-11-03 21:09:10 +08:00 via iPhone
    @surefire 码龄几年,看得我佩服不已
    aljun
        34
    aljun  
       2015-11-03 21:12:03 +08:00 via iPhone
    @Sabermadao peking university 这个英文名还算不错了,你去看北航的英文名,醉醉的
    surefire
        35
    surefire  
       2015-11-03 22:26:56 +08:00
    @usapla 到最后我还是啥也不会
    surefire
        36
    surefire  
       2015-11-03 22:28:27 +08:00
    @Jackhuang 你以后还是会觉得“有用”的,技多不压身嘛,专有专的好,广的也不是说没出路
    surefire
        37
    surefire  
       2015-11-03 22:30:07 +08:00
    @xiqingongzi 永远的门外汉,半吊子都算不上,现在想来其实觉得挺亏的,其他人都专职一个方向,只有我打杂,哪里确认哪里上,最后没有一个有竞争力的神技,所以从来不敢说自己是搞软件开发的
    surefire
        38
    surefire  
       2015-11-03 22:33:02 +08:00
    @aljun 我是半路出家,而且也不算正儿八经的码农,一直业余水平,没写过什么牛逼的东西。如果要算码龄,大学搞课程设计时算不算?那也是超十年了。但自以为水平还不如青鸟毕业的系统化。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1040 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:16 · PVG 06:16 · LAX 14:16 · JFK 17:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.