python学习总结

最近经学长介绍学习python,为研究生做研究做准备,python对于科学计算有着很高的效率,对于科研人员当然是有着很强的诱惑,虽然我还没真正用它,但从整个学习的过程来看,的确是高效,学起来也很轻松。

初学只是简单地看了一下python的一些基本语法,一天看一点,一周结束,准备对一周的所学进行一点记录和总结。先来看一些大师对学python的感觉:

python的官方介绍是:python是一种简单易学,功能强大的编程语言,它有着高效率的高层数据结构,简单而有效地实现面向对象的编程。读一下像ESR这样的超级电脑高手谈Python的话,你会感到十分有意思:

● Eric S. Raymond是《The Cathedral and the Bazaar》的作者、“开放源码”一词的提出人。他说Python已经成为了他最喜爱的编程语言。这篇文章也是促使我第一次接触Python的 真正原动力。 ● Bruce Eckel著名的《Thinking in Java》和《Thinking in C++》的作者。他说没有一种语言比得上Python使他的工作效率如此之高。同时他说Python可能是唯一一种旨在帮助程序员把事情弄得更加简单的语言。请阅读完整的采访以获得更详细的内容。 ● Peter Norvig是著名的Lisp语言书籍的作者和Google公司的搜索质量主任(感谢Guido vanRossum告诉我这一点)。他说Python始终是Google的主要部分。事实上你看一下Google招聘的网页就可以验证这一点。在那个网页上,Python知识是对软件工程师的一个必需要求。 ● Bruce Perens是OpenSource.org和UserLinux项目的一位共同创始人。UserLinux旨在创造一个可以被多家发行商支持标准的Linux发行版。Python击败了其它竞争对手如Perl和Ruby成为UserLinux支持的主要编程语言。

下载python,请到http://www.python.org/download/

虽然下面这些知识点很细节,但细节决定成败,这句老掉牙的话我还是很同意,记录下也是对自己这一周的学习做一点总结,同时也可以加深印象,免得做研究的时候用到又要重头学起。

1、如何退出Python提示符 如果你使用的是Linux/BSD shell,那么按Ctrl-d退出提示符。如果是在Windows命令行中,则按Ctrl-z再按Enter,而Ctrl-d则是输入空字符,表示触发EOF错误。

2、使用三引号('''或""") 利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双 引号。

3、逻辑行与物理行

物理行是你在编写程序时所 看见 的。逻辑行是Python 看见的单个语句。Python假定每个物理行对应一个 逻辑行 。

4、在Python中没有switch语句。你可以使用if..elif..else语句来完成同样的工作(在某些场合,使用字典会更加快捷。)

5、语句for i in range(1,5),,range返回一个序列的数。这个序列从第一个数开始到第二个数为止。例如,range(1,5)给出序列[1, 2, 3, 4]。默认地,range的步长为1。如果我们为range提供第三个数,那么它将成为步长。例如,range(1,5,2)给出[1,3]。

6、函数通过关键字def定义,局部变量从它们的名称被定义的那点开始。只有在形参表末尾的那些参数可以有默认的参数值,即默认参数。

7、没有返回值的return语句等价于return None。None是Python中表示没有任何东西的特殊类型。例如,如果一个变量的值为None,可以表示它没有值。pass语句在Python中表示一个空的语句块。

8、sys.argv变量是一个字符串的列表,sys.argv包含了命令行参数 的列表,即使用命令行传递给你的程序的参数。sys.path包含输入模块的目录名列表。

9、含有0个或1个项目的元组。一个空的元组由一对空的圆括号组成,如myempty = ()。然而,含有单个元素的元组就不那么简单了。你必须在第一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达式中一个带圆括号的对象。即如果你想要的是一个包含项目2的元组的时候,你应该指明singleton = (2 , )。

10、列表、元组和字符串都是序列,序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。

E.g:slist = ['a','b','c','d']

索引操作符自然不用多说,但python运行有负值索引,如slist[-1] = 'd',表示从尾数的第一个数。

slist[1:3] = ['b','c']

切片操作符的第一个数(冒号之前)表示切片的开始位置,第二个数表示切片到那里结束,如果不指定第一个数,则从序列首开始,如果不指定最后一个数则到序列尾停止。

slist[2:] = ['c','d']   slist[:2] = ['a','b']  slist[1:-1] = ['b','c'] 

11、os.sep变量的用法——这会根据你的操作系统给出目录分隔符,即在Linux、Unix下它是'/',在Windows下它是'\\',而在Mac OS下它是':'。使用os.sep而非直接使用字符,会使我们的程序具有移植性,可以在上述这些系统下工作。

12、类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值,这个值就是self,如:假如你有一个类称为MyClass和这个类的一个实例MyObject。当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1,arg2)——这就是self的原理了。

13、__init__方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的初始化,类似于C++的Constructor;对应的有__del__对应于Destructor。

14、Python中所有的类成员(包括数据成员)都是公共的,所有的方法都是有效的 。只有一个例外:如果你使用的数据成员名称以 双下划线前缀 比如__privatevar,Python的名称管理体系会有效地把它作为私有变量。

15、Python提供了一个标准的模块,pickle,使用之可以在一个文件中储存任何Python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。cPickle功能和pickle完全相同,用C语言编写,比pickle快1000倍,储存使用dump函数,如:p.dump(slist,file);取储存使用load函数,如:p.load(file)

16、使用raise语句可以引发异常。

17、通过列表综合,可以从一个已有的列表导出一个新的列表。如:

listone = [2, 3, 4] listtwo = [2*i for i in listone if i > 2] print listtwo

结果为:[6, 8]

暂时学了这么多,以上是一些极易忘记的点,以后再通过学习《深入理解python》进行深入学习。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程之旅

Python——搞定烦人的字符串编码

在学习Python之前,就听说过Python的版本圣战,最可怕的是有的写Py3的程序员觉得Py2是另一种语言....所以在刚开始学习的时候,我索性把Python...

893
来自专栏Kotlin源码阅读

Kotlin源码阅读——Math

NaN其实在JVM上的语言,并不像JS一样,要特别地学习一下,但是NaN这个逻辑也确实存在。代码跟进去:

2424
来自专栏青蛙要fly的专栏

Android技能树 — 数组,链表,散列表基础小结

现在安卓面试,对于数据结构的问题也越来越多了,要求也越来越多,所以我对于数据结构只能慢慢补起来了。(灬ꈍ ꈍ灬)

1204
来自专栏Android机动车

简单工厂模式

含义:简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此...

821
来自专栏java学习

java每日一练(2017/8/15)

最新通知 ●回复"每日一练"获取以前的题目! ●【新】Android视频更新了!(回复【安卓视频】获取下载链接) ●【新】Ajax知识点视频更新了!(回复【学习...

2554
来自专栏liulun

Nim教程【五】

这是国内第一个关于Nim的系列教程 先说废话 业内的人认为能够直接操作系统硬件的语言才称得上系统级的编程语言 常见的系统级编程语言有:汇编、C、C++、D、GO...

2428
来自专栏owent

C++总是很神奇

很多时候看到C/C++的一些奇妙的应用,每次都是惊奇一点时间就随风飘过了 现在我还是决定记录一下这些有意思的东西。

942
来自专栏Golang语言社区

Go的语言特性总结

写在前面: 近来关于对Golang的讨论有很多,七牛的几个大牛们也断定Go语言在未来将会快速发展,并且很可能会取代Java成为互联网时代最受欢迎的编程语言。G...

4747
来自专栏C/C++基础

设计模式(11)——模板方法模式(Template Method Pattern,行为型)

模板方法模式(Template Method Pattern)属行为型,在一个方法中定义一个算法骨架,而将一些步骤延迟到子类中,使子类可以不改变算法结构即可重定...

812
来自专栏胖胖的专栏

使用 trie 树实现简单的中文分词

导语:工作中偶尔遇到需要对中文进行分词的情况,不要求非常高的精确度和语境符合度,仅是为了统计某些词出现的热度。本文提供了一种简单易行的中文分词方法。 工作中,偶...

7955

扫码关注云+社区