精华内容
下载资源
问答
  • 为什么我大学里东西都用上? 是我不会用吗? 还是根本没透? 还是没用的时候? 还是那时候就应该边边用? 是不是我实践能力太差不会用? 这个是怎么回事。。。。 理论和实践要靠什么打通? ps:...
    [quote="抛出异常的爱"][quote="2010-淡定"]
    为什么我大学里学的东西都用不上?
    是我不会用吗?
    还是根本没学透?
    还是没到用的时候?
    还是那时候就应该边学边用?
    是不是我实践能力太差不会用?
    这个是怎么回事。。。。
    理论和实践要靠什么打通?
    ps:有些东西确实是有用的,但就是用不起来 学以致用啊 毛病出在哪?[/quote]
    1.用不上才可以更好的学习.
    如果与现实太接近那么就太复杂了
    不纯粹,不美,不好记住最核心的问题了.

    2.你学习的东西都是纯粹的,
    所以也是很难用在实践中的.

    3.学习是为了让你知道XX不可行,YY可行.
    不能告诉你在这两条线之间的众多的路你要怎么选

    4.时时都在用.
    每当需要用常识分析的问题
    (没有前人作过或).
    常识都是在学校中学到的.
    当然大多数时候会错
    但总的方向不太错
    做一些尝试总比没办法会更好一些.

    5.学习就学习.体会理想状态.
    当你发现现实与理想有差别时你会发动你的智慧让现实更接近理想状态.
    这才是进行实践应该的目的,

    6.有人认为与现实妥协的能力才是实践的目的.
    我不这么认为.
    当然如果不妥协就会更痛苦.....就像你这个样子

    7对于怎么用起来只能说多想想办法,
    去学习更多的办法来达到(或是接近)理想状态
    满足感是不能用语言表达的.[/quote]
    展开全文
  • 作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。 在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓...它们是纯C、纯数学、纯逻辑的题目,涉及界面这些东西,很适合煅

    作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。
    在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。以前我是用VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目。它们是纯C、纯数学、纯逻辑的题目,不涉及界面这些东西,很适合煅炼你的编程能力。回到主题,首先我们要明白你的目的是什么,大概来说所谓嵌入式Linux可以分为两部分:底层系统、应用开发。如果你是想做应用开发,那么你去把C语言、数据结构、JAVA什么的学好吧。嵌入式应用开发和PC上的应用开发并没有什么特别要注意的。也许你说在嵌入式上要做些优化,是的,要优化,但是未经优化的程序和PC上的程序开发没什么差别。另外,当你有能力去优化时,你已经不用来问这个问题了。具体到某个例子,比如说开发界面,在PC上我们用VC;在嵌入式Linux里也许我们用QT也许用Android,这个时候你应该去学学QT、Android的编程。但是基础还是C或JAVA,在此基础上去熟悉它们的接口。你学过VC的话,也是要花时间去了解那些类、控件的。
    谈谈我的学习工作经历,自学liunx去中兴上班
    谈谈我的学习工作经历,自学liunx去中兴上班
    如果你的目的是想学习底层系统,这是我的专长,倒是可以说一点。在回答这个问题之前,我先回答:不少人问我,到底是学驱动还是学应用?我只能说凭兴趣,并且驱动和应用并不是截然分开的

    1. 我们说的驱动,其实并不局限于硬件的操作,还有操作系统的原理、进程的休眠唤醒调度等概念。想写出一个好的应用,想比较好的解决应用碰到的问题,这些知识你应该懂。
    2. 做应用门槛低,特别是现在的ANDROID,纯JAVA。做应用的发展路径个人认为就是业务纯熟。比如在通信行业、IPTV行业、手机行业,你了解行业的需求。所以,当领导的人,多是做应用的。
    3. 做驱动,其实我不想称为“做驱动”,而是想称为“做底层系统”,做好了这是通杀各行业。我工作几年,做过手机、IPTV、会议电视,但是这些产品对我毫无差别,因为我只做底层。他们的业务跟我没关系。当应用出现问题,他们解决不了时,我就会从内核角度给他们出主意,给他们提供工具。做底层的发展方向,个人认为是技术专家。
    4. 其实,做底层还是做应用,之间并没有一个界线,有底层经验,再去做应用,你会感觉很踏实。有了业务经验,你再了解一下底层,很快就可以组成一个团队。
      回到怎么学的问题上。嵌入式Linux底层系统包含哪些东西?不要急,举一个例子你就知道了。
    5. 电脑一开机,那些界面是谁显示的?是BIOS,它做什么?一些自检,然后从硬盘上读入windows,并启动它。类似的,这个BIOS对应于嵌入式Linux里的bootloader。这个bootloader要去Flash上读入Linux内核,并启动它。
    6. 启动windows的目的是什么?当然是上网聊天什么的了。这些上网、聊天工具在哪?在C盘、D盘上。所以, windows要先识别出C盘、D盘。在Linux下我们称为根文件系统。
    7. windows能识别出C盘、D盘,那么肯定能读写硬盘才行。这涉及的东西称为驱动程序。当然不仅仅是硬盘,还有网卡、USB等等。嵌入式Linux能从Flash上读出并执行应用程序,肯定也得有Flash的驱动程序啊,当然也不仅仅是Flash。
      先说到这里吧,嵌入式LINUX里含有bootloader,内核, 驱动程序、根文件系统这4大块。
      一、bootloader:
      它就是一个稍微复杂的裸板程序。但是要把这裸板程序看懂写好一点都不容易。Windows下好用的工具弱化了我们的编程能力。
      很多人一玩嵌入式就用ADS、KEIL。你能回答这几个问题吗?
    8. 一上电,CPU从哪里取指令执行?答:一般从Flash上指令。
    9. 但是Flash一般是只能读不能直接写的,如果我用到全局变量,这些全局变量在哪里?答:全局变量应该在内存里
    10. 那么谁把全局变量放到内存里去?答:长期用ADS、KEIL的朋友,你能回答吗?这需要“重定位”。在ADS或KEIL里,重定位的代码是制作这些工具的公司帮你写好了。你可曾去阅读过?
    11. 内存那么大,我怎么知道把“原来存在Flash上的内容”读到内存的“哪个地址去”?答:这个地址用“链接脚本”决定,在ADS里有scatter文件,KEIL里也有类似的文件。但是,你去研究过吗?
    12. 你说重定位是把程序从Flash复制到内存,那么这个程序可以读Flash啊?答:是的,要能操作Flash。当然不仅仅是这些,还有设置时钟让系统运行得更快等等。
      先自问自答到这里吧,bootloader这一个裸板程序,其实有3部分要点:
    13. 对硬件的操作
    14. 对ARM体系处理器的了解
    15. 程序的基本概念:重定位、栈、代码段数据段BSS段什么的。
      对硬件的操作,需要看原理图、芯片手册。这需要一定的硬件知识,不求你能设计硬件,但是至少能看懂; 不求能看懂模拟电路,但是要能看懂数字电路。这方面的能力我是在学校里学到的,微机原理、数字电路这2本书(书名忘了)就足够了。但是我怀疑你有无耐心把这2本书看完。我不知道现在有没有更快捷的书。想速成的话,就先放掉这块吧,不懂就问GOOGLE、发贴。另外,芯片手册是肯定要读的,别去找中文的,就看英文的。开始是非常痛苦,以后就会发现那些语法、词汇一旦熟悉后,读任何芯片手册都很容易。
      对ARM体系处理器的了解, 看杜春蕾的《ARM体系架构与编程》吧,里面讲有汇编指令,有异常模式、MMU等。也就这3块内容需要你了解。
      程序的基本概念,王道当然是去看编译原理了。可惜,这类书绝对是天书级别的,劝你若非超级天才还是别去看了。
      对于bootloader,我学习时是先看了《ARM体系架构与编程》,然后自己写程序把各个硬件的实验都做了一遍,比如GPIO、时钟、SDRAM、UART、NAND。把它们都弄清楚了,组台在一起就很容易看懂u-boot了。总结一下,看懂硬件原理图、看芯片手册,这需要你自己去找资料。
      标签:Linux(1)电子工程师(149)
      想速成的人,先跨过内核的学习,直接学习怎么写驱动。
      想成为高手,内核必须深刻了解。注意,我说的是了解,我没奢望去写出一个内核。
      要对里面的调度机制、内存管理机制、文件管理机制等等有所了解。
      推荐两本书:
    16. 通读《linux内核完全注释》,请看薄的那本(浮燥的社会讲求速度, 呵),
    17. 选读《Linux内核情景分析》,想了解哪一块就读哪一节
      三、驱动:
      驱动包含两部分:硬件本身的操作、驱动程序的框架。又是硬件,还是要看得懂原理图、读得懂芯片手册,多练吧。说到驱动框架,有一些书介绍一下。LDD3,即《Linux设备驱动》,老外写的那本,里面介绍了不少概念,值得一读。但是,它的作用也就限于介绍概念了。我基本上是入门之前用它来熟悉一下概念,入门后就扔掉了。驱动方面比较全的介绍,应该是宋宝华的《linux设备驱动开发详解》了,老实说我只看过目录,有不少人说好,这里推荐一下。要想深入了解某一块,《Linux内核情景分析》绝对是超5星级推荐。你别指望把它读完,1800多页,上下两册呢。我是某一块不清楚时,就去翻一下它。任何一部分,这书都可以讲上2、3百页,非常详细。并且是以某个目标来带你分析内核源码。它以linux 2.4为例,但是原理相通,同样适用于其它版本的linux。还有没有其他介绍?呵呵,当然有了,韦东山Linux视频第2期。《嵌入式Linux应用开发完全手册》里对驱动讲得不多,不够深入。
      四、根文件系统:
      大家有没有想过这2个问题:
    18. 对于Linux做出来的产品,有些用作监控、有些做手机、有些做平板。那么内核启动后,挂载根文件系统后,应该启动哪一个应用程序呢?答:内核不知道也不管应该启动哪一个用户程序。它只启动init这一个应用程序,它对应/sbin/init。显然,这个应用程序就要读取配置文件,根据配置文件去启动用户程序(监控、手册界面、平板界面等等),这个问题提示我们,文件系统的内容是有一些约定的,比如要有/sbin/init,要有配置文件
    19. 你写的hello,world程序,有没有想过里面用到的printf是谁实现的?答:这个函数不是你实现的,是库函数实现的。它运行时,得找到库。这个问题提示我们,文件系统里还要有库。简单的自问自答到这里,要想深入了解,可以看一下busybox的init.c,就可以知道init进程做的事情了。当然,也可以看《嵌入式Linux应用开发完全手册》里构建根文件系统那章。
      说一下我的学习经历吧。
    20. 我在学校时读的是物理电子专业,其实课程里没有教怎么设计电路,只是教了些电子电路方面的知识。PCB的设计是在实验室里自学的,只设计过2层板,现在忘记得差不多了。但是保留了看原理图、看芯片手册的能力。
    21. 选修了软件学位,对软件设计挺感兴趣,但是也只是学了C语言、数据库而已。凭着兴趣做了不少竞赛题。没能力去参加竞赛,但是把C语言练得很扎实。
    22. 在实验室、在第1家公司,就是设计些简单的PCI卡,写一下windows的驱动程序
    23. 在第2家公司,用51单片机做车载电话,开始走上纯软件的道路。
    24. 开始感到单片机的不足,辞职半年闭门学Linux,从red hat怎么操作开始。步骤就是先看《ARM体系架构与编程》,再自己写裸板程序操作硬件,接着到分析u-boot。同时看《linux内核完全注释》,对LINUX框架有所了解。在写裸板时,建议各位加强对中断的理解,内核就是用中断来完成各种功能的。
    25. 分析完u-boot,就开始进行简单的驱动编程了,这时候,能力还很弱。
    26. 开始去中兴上班,工作2年,编写各类驱动、解决各类问题(驱动问题、帮助定位应用问题),能力得到煅炼。
      总结一下:
    27. 硬件方面的书: 微机原理、数字电路,高校里的教材。毕业多年,忘名了。
    28. Linux方面的书:
      《ARM体系架构与编程》
      《嵌入式Linux应用开发完全手册》
      《Linux设备驱动》,老外写的那本
      《linux设备驱动开发详解》
      《linux内核完全注释》
      《Linux内核情景分析》
    展开全文
  • 年后上班,老板让写一个小游戏试试水,从开始现在,两天半了,估计明天完事,今天下午在整体调试的时候遇到问题了,直到刚才,才找到原因,这里说一点心里想说的。   程序员其实很苦逼的,这是一种不断进化的...
      年后上班,老板让写一个小游戏试试水,从开始到现在,两天半了,估计明天完事,今天下午在整体调试的时候遇到问题了,直到刚才,才找到原因,这里说一点心里想说的。 
            程序员其实很苦逼的,这是一种不断进化的生物,不进化意味着倒退,倒退就意味着被淘汰,最初学cocos2d,什么都不知道,我甚至不知道,搜博客,论坛,也不相信qq群,觉得都是扯淡。于是就啃书,书不像网络,更新不够快,这样的结果就是,书上的例子对于新的开发环境是不搭配的,不要告诉我说,开发环境每个版本不会变化太大,但是对于当时我这个白痴来说,变动一点,跟书上有一点不一样,我就会害怕,我害怕遇到问题不知道怎么解决,没人可以问,没有途径可以获得有用的信息,我也不知道IOS开发者文档。全凭逼自己,一点点琢磨,变通,再后来,才知道看博客,下Demo,一点点尝试,最兴奋的时候就是觉得自己掌握一个新的所谓的技术点,成功只是一个时刻,而努力的过程却是一天,一个月,甚至半年。其实最初学习的时候是不够高效的,甚至现在我觉得我学习的方式也不够高效,但是跌跌撞撞还是写了4、5款游戏,几个应用,面试通过过金山,也跟4399和玩蟹科技联系过,这都是过去了,人总是在往前走,从来不敢停留自己的脚步。我一直觉得我在进步,幅度每次都不一定,但是在进步这就很重要,自己如果感到自己在进步,那就是一种正向的能量,我觉得大家都应该尽量思考自己是不是在提升,不妨对自己提高要求,不说一日一遍,一周一变总可以吧。专注,刻苦,思考,我觉得这是一个程序员需要拥有的素质,起码这些东西适合我。 
          好了,以上本来想写一个引子,结果写了这么一大堆,下面说一下,关于需要接触新的东西该怎么做,上面说到了,只要进步,在技术这块儿就需要接触新的东西,新的思想,新的概念。我在接触新的东西的时候,每次都是一种莫名的兴奋还有害怕,兴奋自不必说,穿个新衣服还心情舒畅呢,不要说技术这个东西是生存的一种手段,害怕就是,不愿意,或者懒的处理新的陌生的可能会棘手的东西,而且事实就是这样,如果项目着急用,写好功能,在调试的时候总让人措手不及。但是记住一点,不论这个东西多不容易理解,心里面怎么说服自己放弃,都不能停下来,没有什么,因为我是打工的,这是老板的要求,这东西只能我做,而且只能靠我自己做出来,OK,这就是了,上帝之手还是自己,金手指长在每天坐在自己座位上敲代码的人的身上。别人可以信任,信任是这个时代很宝贵的东西了,我想形容它是什么膜,大家都懂,但是不能依赖!谁都有自己的事,万一在最需要的时候帮不上忙,那可以痛痛快快的哭了。首先必须抱定这个问题,我一定能解决的信心和决心,我必须明白,不论通过哪种途径,若干时间之后,这个项目必须由我推上app商店的柜台上。决心很重要,人很容易犯贱的,老板说几句暖心的话,很容易激动一小会儿,我今年23,我是的,至于老鸟是不是,我不知道,我也不关心,但是我只是跟我一样追逐梦想的人,分享自己的想法,哦,是心事,是每天码代码的心事。 
            有了决心就是途径了,开发者文档是最权威,也是最专业的,可惜我英文不好,就是能读懂整个网页,看着老外的注释方式,也跟我20多年的思考方式不同,通常我都是用博客,有很多先驱者,毕竟今年已经2014念了,很多问题,通常前辈遇到,有心人都贴出来了,选择性的借鉴就好。 
           然后就是论坛,咱们自己的论坛刚开张,人少,信息少,可以选择:泰然、csdn、cocoachina、cocos2D网、如今百度空间也有的,就是看你对自己需要信息的把握能力了。描述清楚你要写的功能效果,然后找到相关的类,接着通过这个类去延伸出它的一族,项目着急,就先找出来需要的,之后抽个时间,好好融会贯通,百度一个人叫 Himi,看看他写了很多博客,很牛的一个人,而且没有大牛的架子。 
           然后就是技术交流群,比如咱们自己的群,因为在群里,获得的信息是实时的,可能群里的兄弟们也没有接触过,或者接触过忘了,但是,可能在交流的时候,某人的一句话就让自己眼前一亮,也就解决了,前一段时间,我就是在咱们的群里解决一个问题的。 
          再就是书了,书是我最后推荐的,因为一本书是一个人开发工作几年甚至十几年的心血,非常精髓,但是如今社会节奏非常快,可能没有那个时间,去翻翻书。但是,我觉得可以沉淀自己用,沉下去,下次浮出来,就是另一个新生了。 

          对于新的东西,在调试的时候,我习惯新带旧,先把功能写出来,分开调试,然后结合在一起,因为通常,我都是一个人完成一整个项目的。这样的好处就是,方便调试,哪怕出现错误,其他模块照样能用。再有就是,如果合在一起,出了问题,千万不要慌忙的进行断点调试,尽量先屏蔽掉新接触学习之后写出来的,能不怀疑以前熟练使用的就不要怀疑,这样通常会解决问题的,然后看看新的东西的一些特性,往往就能发现自己写的程序的bug所在。当然如果是本来使用多次的 ,这次反而成了核心错误的问题,那。。。我不想说了,这简直太痛苦,前一天刚学的,一个月后又得重新开始学习,这得多累,多痛苦,先写到这里,收拾一下我的程序,然后准备跟老板说回去了,太累,周末加班,各位今晚好梦。


    文章转自   https://code.so/q/q-76

    展开全文
  • 但是,没想到上班的第一天就来了一个小翻车。在这里有同学就会有疑问了?难道是技术达标?NO NO NO。难道是遇到了BUG没有解决出来?也不是。翻车的原因就是它写的代码,让公司里面的前辈看了显得太业余了。用我们...

    最近有一个小伙伴,刚刚从培训机构毕业。整个技术学习的还是非常不错的。也成功的面试到了一家互联网公司里面。但是,没想到上班的第一天就来了一个小翻车。在这里有同学就会有疑问了?难道是技术不达标?NO NO NO。难道是遇到了BUG没有解决出来?也不是。翻车的原因就是它写的代码,让公司里面的前辈看了显得太业余了。用我们行话说代码不规范。

    代码规范这个东西,平常在学习的时候觉得没啥。有很多的同学也没有怎么注意。但是到公司里面,我们才发现,代码规范显得尤为重要。

    因为第一个,它体现的是你作为一名真正的开发工程师的功底,代码都写的不规范,你说你技术不错,鬼才信呢!

    本期小编推送2021初学者一定会用到的Python资料,含有小编自己呕心沥血整理的免费书籍/视频/在线文档和编辑器/源代码,关于Python的安装qun:850973621

    第二个,在公司中一般都是团队开发,团队开发的时候,难免你的代码同事会进行阅读。这个时候,代码不规范可以想象一下这得有多尴尬。就好比一个高材生,写出的字和一年级小学生一样。

    第三个,每家公司都有一套自己的开发标准。例如腾讯有腾讯的标准,阿里有阿里的标准。一个人不注重代码规范,当到了公司里面就会吃大亏。 所以说了这么多,正是这些小问题,才是酿成大问题的隐患!

    那什么是代码规范呢?代码规范也就是指在编写代码时,我们需要去遵循一些通用的编写方式或编写风格。注意,并不做强制性(也就是说不按规范写并不会报错),但是却是《程序员自我修养》的必学之技。

    那今天主要来聊聊 Python 编码风格指南——PEP8

    PEP8介绍

    PEP 8 的英文全称为 Style Guide for Python Code ,即 Python 编码风格规范,主要涵盖三个大的方面

    • 命名规范
    • 注释文档
    • 代码布局

    命名规范

    命名规范是我们一直在强调的,那实际上它是一个非常具有扩展性的话题,我们需要了解 主要的命令规则 以及 python 中针对 不同元素 的常用命名方式。

    • 「小驼峰命名法」:以一至多个逻辑单元构成,每个逻辑单元都可称为一个识别字,每个识别字首字母小写,其余识别字首字母大写,比如:firstName

    • 「大驼峰命名法」:与小驼峰命名法类似,区别为首字母大写。比如:FirstName

    • 「下划线命名法」:和驼峰命名法类似,区别为所有识别字均小写,识别字之间使用_连接,比如:first_name

    除此之外,还有其他形式的命名规则,比如大写 FIRSTNAME、大写结合下划线FIRST_NAME、小写 firstname 等。另外在 Python 中也有 前缀 或者 后缀 下划线、双下划线等命名方式。

    Python 常用的命名方式

    对于变量与常量:
    • 变量名 可 小写,也可使用 下划线命名;
    • 常量 应使用 全大写字母,必要时使用 下划线分隔,并且要注意在 Python 中并没有类似其他语言中const的概念,常量 仅仅是一种 约定(常量通常放置在代码顶部、或单独的模块、或特定的配置文件中)。
    • 对于 容器类变量 ,常采用 复数 名词形式;对于 映射类变量 ,常采用 key_value 的形式,其中 key、value 为键和值的实际含义。比如:information_value = {“name”:“lili”,“age”:20}
    • 对于表示 布尔值 的变量或者常量(但不仅限于这两者),常采用 has、is 作为前缀。
    对于类(和异常):
    • 类名 应使用 大驼峰命名(这里不包括一些 Python 内置的类,比如 int、list ),类和属性常采用名词,方法多采用动词或者包含动词。
    • 基类 常采用 Base 作为前缀,抽象类 常采用 Abstract 作为前缀。
    • 异常名 应使用 大驼峰命名法,当此异常表示一个错误时,应添加 Error 后缀(并不是所有异常都代表代码运行错误,比如 KeyboardInterrupt、SystemExit )。
    对于函数、方法:
    • 函数名、方法 名应使用 小写,也可使用 下划线命名(但我们仍会在一些代码中看到一些方法或者函数名称采用了驼峰命名法,甚至在 Python 的标准库中也存在这样的现象,比如在 threading 模块中,因为这些代码的出现往往早于 PEP 8 规范的诞生,同时为了向后兼容而保留,但通常这些模块都会提供相同功能的以小写加下划线命名的方法,我们应该尽可能使用这些新的方法)。
    • 实例方法 的首个参数名应为 self,类方法的首个参数应为 cls( class作为关键字不能被使用,常被cls 或 klass 替换);
    对于模块和包:
    • 模块( modules ) 名应尽可能使用 小写,在必要时可以使用下划线命名(除了 「init」 模块以外)
    • 包( packages ) 名应使用 小写,最好不要使用下划线;
    特殊格式:
    • 单下划线前缀,比如 _name ,常称为 ”伪私有属性“(也可用于私有的方法、类等),这种命名方式在 Python 中是一种表示私有属性的约定(同时注意 from … import *时不会导入这种形式的对象,并且这种伪私有变量通常会通过特定的方法来获取或者赋值),私有属性通常没有直接对外的功能,常用于记录内部状态或用于提供一些公共功能的方法内使用;
    • 单下划线后缀,比如 name_ ,常用于 避免 和 Python 的 关键字 发生冲突;
    • 双下划线前缀,比如 __name,常用于 基类避免 和 子类中的命名冲突,Python 会通过转换规则将其转换为类似_Class__name 的形式,这种方式通常称为命名修饰 name mangling 或 name decoration(这种方式通常用于多继承,应避免将这种形式用在私有属性的命名上);
    `>>> class MyClass:
    ...     __name = 1
    ...
    >>> MyClass.__name  # 无法直接访问
    Traceback (most recent call last):
      File "", line 1, in 
    AttributeError: type object 'MyClass' has no attribute '__name'
    >>> MyClass._MyClass__name
    1
    复制代码`
    • 前后双下划线,比如__name__,这是我们之前提到过的 Python 内部常用的 dunder 名称,不应自定义这类命名。

    注释编写

    注释对于代码的阅读、扩展以及维护都非常重要。在 Python 中常用的注释方式有三种,分别为块注释( Block Comments )、行内注释( Inline Comments )、文档字符串( Documentation Strings )。

    块注释( Block Comments )
    • 块注释 在代码内部比较常见,其通常由一至多个段落构成,段落之间应使用开头为 # 的空行隔开,每个段落由完整的句子构成,在每行以 # 和一个空格开始。另外,块注释和被注释代码之间应具有同级别的缩进,这样有助于区分注释和代码之间关联关系。如下代码体现出块注释:
    `@classmethod
    def fromkeys(cls, iterable, v=None):
        # There is no equivalent method for counters because the semantics
        # would be ambiguous in cases such as Counter.fromkeys('aaabbc', v=2).
        # Initializing counters to zero values isn't necessary because zero
        # is already the default value for counter lookups.  Initializing
        # to one is easily accomplished with Counter(set(iterable)).  For
        # more exotic cases, create a dictionary first using a dictionary
        # comprehension or dict.fromkeys().
        raise NotImplementedError(
            'Counter.fromkeys() is undefined.  Use Counter(iterable) instead.')
    复制代码`
    行内注释( Inline Comments )
    • 行内注释 是一种形式相对简单的注释,它和表达式或语句位于同一行,之间应通常使用两个空格隔开,注释部分应以 # 和一个空格开始。
    `one_list = []  # 创建列表
    
    复制代码`
    文档字符串( Documentation Strings )
    • 在 Python 中,最重要的注释形式便是 文档字符串。主要用于两方面:
      • 用来对模块、类、函数、方法等进行说明;
      • 可以配合一些辅助工具来自动化生成代码文档
    • 当然大家现在可能很难体会到文档字符串的重要性,但是提到开源这个词,我们就会知道,一个开源文档的质量取决于它的可读性,而可读性往往伴随着大量的说明文档。
    `def function_name():
        """docstrings"""
        pass
    复制代码`

    代码布局

    缩进与空格

    Python 在语法上使用 缩进 来确定代码块的开始和结束,对于每一级缩进,都应该是 4个空格。当然,在 Pycharm 当中,我们可以设置使用 tab 键来进行缩进。

    那需要注意,缩进本身是 强制性的,但是空格数量实际上语法并没有做限制。只不过同级代码缩进空格一致即可。

    当然,一般我们都是以 4个空格 来进行使用。

    `# 4个空格表示缩进
    def function_name():
        """docstrings"""
        pass
    
    # 8个空格表示缩进
    def function_name_two():
            """docstrings"""
            pass
    复制代码`
    代码之间的空行

    函数与类之间应该使用两个空行隔开,而类的内部的方法之间应该使用一个空行隔开,函数或方法中不同功能的代码块可使用空行隔开。

    观察以下代码空行规则:

    `class MyClass(object):
        def method_one(self):
            pass
    
        def method_two(self):
            pass
    
    def function_name():
        """docstrings"""
        pass
    
    def function_name_two():
        """docstrings"""
        pass
    复制代码`

    OK,代码规范对于我们程序员的自身修养以及专业度来说是非常重要的。同学们一定要注意每一个细节。这样才可以让自己更上一层楼。

    最后祝大家 「2021新年快乐!阖家幸福!身体健康!」

    原文链接:https://juejin.cn/post/6915293761111064589

    展开全文
  • 上班

    2008-11-12 18:10:00
    来到这里上班本来以为是要为了开发网站但是想不到是做技术支持有点郁闷俗话说以至用到的东西竟然用不上郁闷但是现在经济又不景气又不敢换工作郁闷漫漫人生路我该如何抉择??
  • 到上班时间

    2009-01-31 22:49:01
    转眼明天就要开始上班了,知道能来的人有多少咯,不过明天就能偷懒了,想起要写一篇关于计算机色彩的文章,好像再ActionScript的书上有看到的,收集一下,对于以后图片的颜色修改应该都有不错的好处. 希望明天不用...
  • 对于新手你需要知道,等价类,边界值,场景法,当然还有好几种 但是对于新手来说没啥用,如果你去一家大公司上班都有人带,把属于自己的那一份工作做好就行 一般等价类边界值就可以应付了。对于小公司来说没人带,...
  • 第一天上班学到

    2019-05-07 11:02:01
    页面搭建时候应该注意的几个点,和以前知道的东西 每个pc端页面都要考虑不同页面大小时的情况 响应式布局 手机端页面参照设计图制作时,参考的尺寸是比例,才能适应各种不同页面,图片宽度用vw,高度他会自己...
  • 这几天上班没啥事,想了想自己想要和应该的一些东西罗列出来了。 记得每次面试,hr或者技术官都会问这么一个问题:"你未来的规划是啥"?很多人的回答其实都是啥架构师,大数据人工智能,高级工程...
  • 上班,和上学的区别是很明显的。如果在往年的现在,我肯定在想着复习啊...感受自己知道的东西太少,在学校里学到东西是皮毛中的皮毛。 现在的生活,比以前来说更充实一点。因为知道了自己想要什么。 但是,现在的
  •  第一天上班的心得一: 时间过得真快,离毕业都已经差不多三年的时间了,在这期间自己学到了很多书本以外的东西。与书本上学的理论相比,觉得实践中总结出来的经验是最受用的。能力固然重要,但是人际关系也很重要...
  • 这个方法适合于每天挤车上班的同时又想挤出时间学习新东西的同学,告诉大家如何充分利用时间碎片学习新东西。如果你有闲情去瞄哪个家伙会先下车,以便于你能够快速抢占座位,还不如留点精神看书吧。前者会让你舒服的...
  • 有一个朋友更厉害,211研究生毕业,毕业后了一家航空相关的企业上班,上了两个月之后感觉工作尽如人意,于是裸辞,在出租屋里买书、刷题,只用了两个月后成功拿offer,我当时还很诧异,他从裸辞转行大概只用...
  • 关于学习的一点见解

    2020-02-07 15:57:57
    最近因为疫情的事情,无法上班,一直在看一些基础的书,看了发现有很多感触。...另外一个就是如何学习的问题,我发现这个和上学的时候是一个问题,你东西或者看到的东西真的就代表你会了,只...
  • 开始上班的第一天

    2009-01-04 22:44:48
    今天时间有点晚了,Oracle的这本书大概这个礼拜就能看完了,时候每一章写个笔记,记录下看到认为重要的地方,就当梳理一次学到东西,先记下第一个Oracle的22个基本数据类型。 今天看书的时候发现挺开心的,...
  • 明天佛山上班了,激动中

    千次阅读 2009-08-08 11:14:00
    两年来可以说一事无成,学到东西很少很少,是时候出去闯一番事业。虽然公司不大,部门还是临时组建,但我喜欢,喜欢它年轻。一样东西年轻才有冲劲,才敢博敢拼,和我一样。 古人说宁为鸡首为牛尾,说得好啊,我...
  • 有些同学觉得“大学里学不到什么东西,真正有用的东西都是在工作之后学习的。”这也曾经是我的想法,后来才知道,大错特错! 工作之后,能让你学习的时间太少了。同学们珍稀当下大学的时间吧,没事多泡泡图书馆吧。...
  • 所以,我们要更好地提高学习效率,否则,本来就充分的时间可能学习东西更少。学习就是要学习课程中的重点,抓住重点用心体会,思想上不要开小差。有时候一个问题可以分成几个小问题来学习,每次根据时间的长短...
  • 突然想到的东西

    2018-08-26 14:20:35
    现在是我现在坐在深圳大学城的图书馆里面,刚刚在ipad和手机上下载了英语单词和听力的app,突然想到如果我能早一点意识,从7月或者说8月开始就意识该多好,每天上班的路上就可以听听英语,提高一下自己的听力,...
  • 上班第一天

    2020-07-22 22:41:16
    今天对于五险一金的理念更熟悉的一些,也知道了合同之中需要签订的一些东西的细节。感觉自己对于自己的事情还是那么上心,应该了解清楚再来的。 现在的初期打算是在这里先干个一年,学习一些基础的知识,之后跳槽...
  • 其实今天也想干活的,但是迫于明天就提交测试版本...我的心情已经很明显的,一直向往着ios,并只是搞ios能赚钱,更重要的是搞ios能够学到很多东西。别的说,就说标准化吧,它的很多东西都是定死的,是这样就是...
  • 真假学习

    2019-09-26 12:19:03
    什么叫做“假学习”?...所以你永远学不到新的东西。不如看看看一则你能学到的贴子。 二、看书 买一堆书,有空看看。看书,这是典型的假学习。看书看不懂还在看,就是假学习,欺骗自己,安慰自己...
  • 最近因为疫情的关系,相信很多国内的小伙伴都逐渐开始了解在家上班的体验。在美国基本上work from home在IT公司里面算是比较常见的现象了。一般大厂每个周都会有一天被划为No Meeting Day,说只是开会日,但通常...
  • 网络协议的学习方法

    2014-12-14 16:51:29
    当年在学校还上过史美林教授/张公忠教授所讲的计算机网络体系结构课,用的是Tanabaum写的那本,考试还得了九十多分,可实际还是连TCP和UDP有什么区别都分清,就是死记背,毕业的时候基本上是忘光了,工作后等于...
  • 与互联网稍微沾点边,本科时期其实一直用java做GIS系统的开发,野路子,技术很成熟,如今研究僧即将毕业,意欲进军互联网行业,便找了一份互联网的实习,从头开始,系统的记录一下我在行业里学到东西。...
  • 最近两天都没有任务,所以一直在翻《设计模式之禅》,比《大话设计模式》要深点,比《道法自然》要浅点,是一本...看了两天,是学到了很多东西,但是还是觉得很虚。因为书上讲的时候都是用一些简单的例子,很单一。...
  • 钢琴最重要的是什么?

    千次阅读 2016-02-22 01:24:31
    对于成人钢琴来说,一大问题是时间有限,如果你是个上班族,可能有很多时间让你去学习和练习,所以你得用脑子去学习。美女老师说,你的脑子里得时时刻刻有钢琴这东西。这种潜意思的学习,你可以在脑海中想象去...
  • 医院上班后心得.doc

    2021-01-15 12:43:11
    医院上班后心得 从同级别的大医院同级别的小医院,实际情况和自己想的有出入,第一周有很多抵触,尤其是写病历分析病例,在这个医院病历查的很紧,几乎了很变态的程度,每天中午能睡觉还得在那写啊写,周末...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 801
精华内容 320
关键字:

上班学不到东西的