python基础1--小结篇
如果有别的编程语言基础,python属于极好上手的一门语言。应用上,用“自取所需”来描述,最为贴切。
首先,放上一些推荐。
安装上:
1、python3.5.1(推荐官网直接下载,自带IDLE),安装不麻烦,记得增加环境变量即可
2、编辑器:sublime 其实,并没有使用很多,但是推荐的人超多 ,破解版网上很多,按资源下载即可
3、IDE: 强推 pycharm 对JetBrains软件执着的热爱 方便又美观 网上能找到找到注册码,学生用edu邮箱可以免费使用,当然,支持正版!
熟悉上:
语言学习秉持一句话:无论多简单的代码,坚持自己敲一遍~
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
这是廖雪峰的教程网址,对python的学习,笔者以这份教程加上 O'Reilly系列的 introduction python 共同学习,基本所有代码都自己敲过一遍。以下是对于一些关键点做一些整理。虽然,很多细碎的知识点仍旧不是很清楚。
首先在初步学习之后,贴出python个人体会较深的几个特点:
1、简单
Python是一门简单而文字简约的语言。阅读好的Python程序感觉就像阅读英语,尽管是非常严格的英语。Python的这种伪代码特性是其最大强项之一,它可让你专注于解决问题的办法而不是语言本身。
2、容易学习
正如你即将看到的,Python非常容易上手。就像刚刚提到的,Python具有格外简单的语法。
3、免费开源
Python是一个FLOSS(自由/自由与开源软件)的例子。在一些简单的条款之下,你可以自由地分发这个软件的拷贝,阅读其源代码,修改它,或者将其 一部分用到新的自由程序中。FLOSS是基于共享知识社区的概念,这是Python如此好的原因之一——它是由那些希望看到更好的Python的社区创建 和不断改进的。
4、高级语言
当你使用Python编写程序时,你永远不需要担心低级细节,比如你的程序管理内存的使用等
5、面向对象
Python同时支持面向过程和面向对象编程。在面向过程语言中,程序围绕着过程或者函数(只不过是可重复使用的程序片段)构建。在面向对象语言中,程序 围绕着对象(数据和功能的组合)构建。Python具有非常强大但是过于简洁的执行面向对象编程的方式,特别是相对于C++或者Java这种大型语言来 说。
接下来,说一下自己的体会。前四点,是显而易见的。但是,在面向对象理解的问题上,python似乎要比Java强一些。反正对于个人来说,Java的面向对象上理解了挺久,在这边应用起来就比较顺畅了。对于继承、多态等问题上,有较好的应用。
另外,它还有很多强大的特点,但是笔者现阶段还未应用到大型工程,所以对可移植性等并没有深刻体会。在扩展库上,下一篇会说明。
下面是对python基础知识做一个脉络梳理,可以作为学习提纲:
1、数据类型:booleans (True & False) integer float string
2、数据结构:list tuple dictionary sets 属于基础又常见的 注意每种数据结构各自的方法,如append delete等 introducing python 这本书写的非常具体,可以作为一本工具书使用
看下面这个例子:区别一下
当然,数据结构不是独立的,可以混合使用嵌套,具体例子,自行学习
3、代码结构 for if while 用法 注意规范,和别的语言区分开(笔者犯得最多的错 就是漏了好多冒号,希望写惯了C++的盆友们注意啦~)
4、函数
函数可以说是编程的灵魂。首先需要知道函数规范,另外,也牵涉到几个问题:
(1)参数问题,python函数参数分为:必选参数 默认参数 可变参数 关键字参数 和 命名关键字参数,把这五类参数的问题弄清楚,对编程极有裨益
(2) Gather Positional Arguments with * Gather Keyword Arguments with **
(3)函数嵌套什么问题就不多说,大家在实践中慢慢领悟
(4)强调一下:lambda函数,匿名函数,使用频率还蛮高(放一下用法:可以很好节约定义)
(5)这里提出两种特殊的容器:generators 和 decorators
推荐两篇文章,分析的很不错
generators:http://www.jb51.net/article/63929.htm
decorator:http://blog.csdn.net/wklken/article/details/8118942
5、模块
对于模块可以import 整个,也可以只引入部分,模块化调试会更高效一些
6、类(面向对象)
第一个关键点:继承 A(object) or A(B)
第二个关键的:调用方法
第三个关键点:【super】 Use super() when the child is doing something its own way but still needs something from the parent (as in real life).
常用__name__表示不可修改的变量
常见用法
(1)property属性 一般针对私有变量,或者为了做一些规范检查
两大作用
- 将类方法转换为只读属性
- 重新实现一个属性的setter和getter方法
两种方式
- property(get_name, set_name)
- @property
... def name(self):
... print('inside the getter')
... return self.hidden_name
... @name.setter
... def name(self, input_name):
... print('inside the setter')
... self.hidden_name = input_name
(2)特殊方法
例子:
其他细节不一一赘述。希望大家好好看看书和教程,不妨多看几遍,每一遍会有不一样的体会