资讯专栏INFORMATION COLUMN

Python拾遗(一)

2i18ns / 2097人阅读

摘要:扔在一边很久了,最近刚好有几天闲,买了本复习一下。这是第一部分和数据处理。返回当前作用域下的本地变量。这个更好玩儿,模块里面包含了异常和一些其他的对象。库中变量是一个保存环境变量的字典,可以通过访问字典值得方式获得一些环境变量的值。

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

跟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上面遥控的,哈哈哈哈。

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

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

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

BIF是Built-in Function的缩写。比如dir()、isinstance(name, type)。

其他比较常用而且重要的有:

help


如果对函数的参数和返回值不太确定的话可以用help来查,相当于python的自带文档。

print


这个是最基本的打印函数,在没有debugger的时候debug可以用到。

help(print)


竟然会出现SyntaxError,对print用help的时候要加上引号。因为信息很长,所以不截图了。python的print函数其实是非常复杂的,以后有机会专门研究一下。

open

locals


返回当前作用域下的本地变量。

exit

object


这个很好玩儿。

class


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

字符串(STRING) find


在字符串里查找,如果没有的话返回-1,如果有的话返回首次出现的位置。

split


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

列表(LIST)

操作

以上是从help(lsit)里面截出来的。还有很多,限于篇幅所以没有截出来。

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

字典(DICT)

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

操作

集合(SET)

操作

OS库

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

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

os.environ["OS"]

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

通过Python得到的是这样的:

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(中文版)》

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38041.html

相关文章

  • [TODO]Python拾遗(三)

    摘要:当然,现实里永远不存在工程问题和科学问题的明确划分,更不存在语文数学物理技术交互市场问题的区分,现实从来都是纠结在一起的,随机应变就好。 Head First 系列书 这个系列的书很少有其他专业书里面看似很高大上的名词,只有一些最基本的概念,而且遵循的就是learning by doing的理念,每一章都是以编程例子为主的。《Head First Python》更夸张,全书其实就一个p...

    maxmin 评论0 收藏0
  • [TODO]Python拾遗(二)

    摘要:框架模板引擎发布自己的库和和名词和说法运行时优化多重赋值不可变 Web框架 模板引擎 发布自己的库 python setup.py sdist upload python setup.py install json和pickle SQL和SQLite 名词和说法 Target identifier :Suit :运行时优化Batteries included多重赋值不可变(immu...

    Me_Kun 评论0 收藏0
  • HTML拾遗

    摘要:简介万维网联盟,,又称理事会,是万维网的主要国际标准组织。这些属性被称为布尔属性,他们只能有跟它的属性名一样的属性值所以不需要写属性值。 HTML拾遗 这篇博文用来记录我在写html的时候遇到的不清楚的、没有理解的、未能察觉的、反复使用搜索引擎查询的点和一些总结性的知识。方便查阅。不定期更新。 这篇博文内容来源为网络,包含自己的理解总结,欢迎在评论区指出错误。 文章引用的内容版权归原...

    tangr206 评论0 收藏0

发表评论

0条评论

2i18ns

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<