Python拾遗(一)

python扔在一边好久了,最近恰好有几天闲,买了本《Head First Python》复习一下。html

跟python结缘是由于教C语言的王青老师推荐咱们边学C边学python,记得说是C结合脚本语言会发挥出比较大的威力,还推荐了一门Coursera上的公开课,名字好像叫how to program,当时只是据说,由于当时各类状态,并无学。
后来用一个暑假学《learn python the hard way》,没有纸质的书,不少东西虽然知道,学的并不踏实,以后又看《python源码剖析》,多是C基础不够好缘由,看到一半就放弃了,之后有机会还会再看。
再后来用python作《人工智能》的做业,写起来很是爽,但是写得一团糟,都只是能跑的级别而已,有时须要跑几个小时才能出结果,而后import一下sklearn的库,想着怎么也得跑个几分钟吧,结果人家10s就出结果了OTZ。虽然能够profile一下,或者用pypy再跑一下,可终归治标不治本。
再后来也就是写Dr.Kang的做业“把Simulink和Stateflow模型转化到uppaal里面后作model checking”的时候,由于当时是要把Simulink里面的map table转化到uppaal里面,但是uppaal这个奇葩软件却各类反人类,虽然基本语法是C,却连二维数组都不支持,因此先把map table导出到html里面,而后用python解析html,把数据搞出来再生成C的一维数组,最后利用行和列的index算出结果的index,至关于模拟一个查找的过程,oral presentation的时候老师好像还比较满意这个作法。
对了,这期间断断续续搞我的主页,用的是web.py这个简单的框架,写出这个框架的天才、reddit的创始人、rss的发明者、年仅二十多岁,抱歉那我的的名字想不起来了,后来自杀了,缅怀一下这位我实在想不起名字的互联网之子,他的三个东西都真的改变了世界,至少稍微改变了一下个人世界。还在廖雪峰老师的主页学了一点高阶函数、修饰器、lamda,那个教程最后是要本身写出一个web框架,而后用那个框架搭个博客,要是如今断网写我确定写不出来,还有实训搞避障小车的时候在树莓派里用了一下,不过最后要拍个视频检验成果,咱们的车仍是用手机ssh到pi上面遥控的,哈哈哈哈。python

会写一个系列,可能有两到四部分,看了一下这本书前三章主要是些简单的基础、四到七章主要是web开发、八九十主要是用户python作移动开发,最后一章是python作数据处理,第一部分和数据处理这一章都比较简单并且其实一直在用的都是这方面的东西都比较熟悉,第二部分会重点看一下,移动开发看状况,由于通常都是用原生开发,跨平台也就是那么几种方案,python作移动开发实在太非主流了,最后可能会有个总结,也可能没有。web

这是第一部分和数据处理。数组

内置函数及数据结构和自带的库

BIF是Built-in Function的缩写。好比dir()、isinstance(name, type)。数据结构

clipboard.png

其余比较经常使用并且重要的有:框架

help

clipboard.png
若是对函数的参数和返回值不太肯定的话能够用help来查,至关于python的自带文档。ssh

print

clipboard.png
这个是最基本的打印函数,在没有debugger的时候debug能够用到。函数

help(print)

clipboard.png
居然会出现SyntaxError,对print用help的时候要加上引号。由于信息很长,因此不截图了。python的print函数实际上是很是复杂的,之后有机会专门研究一下。ui

open

clipboard.png

locals

clipboard.png
返回当前做用域下的本地变量。人工智能

clipboard.png

exit

clipboard.png

object

clipboard.png
这个很好玩儿。

class

clipboard.png

clipboard.png
这个更好玩儿,__builtin__模块里面包含了BIF、异常和一些其余的对象。

字符串(STRING)

find

clipboard.png
在字符串里查找,若是没有的话返回-1,若是有的话返回首次出现的位置。
clipboard.png

split

clipboard.png
split接收两个参数,第二个参数maxsplit有默认值为-1,若是调用的时候不给这个参数,默认是把整个字符串用第一个参数指定的splitter分割开,若是给定了,那么最后分割的数就是maxsplit+1。第一个参数的默认值是None,若是不给定,splitter就是空格。
clipboard.png

列表(LIST)

clipboard.png

操做

clipboard.png

以上是从help(lsit)里面截出来的。还有不少,限于篇幅因此没有截出来。

这些函数都是list类的成员函数,在《Python源码剖析》里面应该有更详细的解释和实现。以后看的时候应该注意。

字典(DICT)

clipboard.png

跟列表都是内置的数据结构。

操做

clipboard.png

集合(SET)

clipboard.png

操做

clipboard.png

OS库

clipboard.png

import os
os.getcwd()
os.chdir()

clipboard.png

python: SyntaxError: EOL while scanning string literal ->stackoverflow
出现这个SyntaxError的缘由在于反斜杠和后引号被看成是转义字符致使整个字符串没有了end,EOL应该是end of line的意思。

os.environ['OS']

OS库中environ变量是一个保存环境变量的字典,能够经过访问字典值得方式得到一些环境变量的值。
Windows下经过系统属性看到的是这样的:

clipboard.png

经过Python获得的是这样的:

clipboard.png

Exception

def get_coach_data(filename):
    try:
        with open(filename) as f:
            data = f.readline()
        templ = data.strip().split(',')
        return(AthleteList(templ.pop(0), templ.pop(0), templ))
    except IOError as ioerr:
        print('File error (get_coach_data): ' + str(ioerr))
        return(None)

其余函数

seek

seek() function? ->stackoverflow

参考资料:《Head First Python(中文版)》

相关文章
相关标签/搜索