python笔记

HeadFirst Python记事本

2017-08-07  本文已影响22人  GarveyLian

第一章笔记

"BIF"内置函数
"组(suit)"Python代码块,会通过缩进来指示分组
"功能齐全(Batteries included)"这是指Python提供了快速高效地完成工作所需的大多数功能

第二章笔记

发布到PyPi

  1. 首先新建一个文件夹保存模块
  2. 在新文件夹中创建一个名为“setup.py”的文件,setup文件包含发布的元数据
from distutils.core import setup

setup(
      name='nester_lian',
      version='1.0.0',
      py_modules=['nester_lian'],
      author='******',
      author_email='********@163.com',
      url='http://*******.com',
      description='A simple printer of nested lists',
      )
  1. 构建一个发布文件,在windows系统下,打开管理员命令行进入新建的文件夹目录下,键入命令:D:\Python35\python.exe setup.py sdist
  2. 将发布安装到Python 本地副本中,同样在上一步中的命令行窗口中键入:D:\Python35\python.exe setup.py install
  3. 使用模块的时候记得命名空间的关系,看如何导入的,决定如何使用模块中的方法或变量
  4. 上传到Pypi网站,与大家共享代码,首先注册一个账号,然后在本地命令行窗口中再次确认注册的账号,每台电脑安装python后主需要注册本地注册账号一次,使用命令:D:\Python35\python.exe setup.py register
  5. 注册后即可上传,同样在命令行键入:D:\Python35\python.exe setup.py upload
  6. Python会在一组特定位置寻找模块,查看搜索位置的方式,在控制台键入:
import sys;
sys.path

使用三重引号字符串可以在代码中加入一个多行注释
Python内存中的名字就存放在“命名空间中”
Python的主命名空间名为__main__

第三章笔记

文件处理方法,文件打开,文件关闭

 #打开文件,赋值给一个文件对象,代表着打开的文件
try:
  the_file=open('file.txt')
  #文件处理代码
  #文件处理代码
except ***Error:
  print("*****")
finally:
  the_file.close()

“异常”(exception)因运行时错误而出现,会产生一个traceback
"traceback"是出现的运行时错误的一个详细描述

第四章笔记

文件的读写,open()方法可以有多个模式,默认是r模式即读模式,如果要写文件,可以用参数提供"w",如果这个文件存在,则会清空它现有的内容,也就是完全清除然后再写入,如果需要追加到一个文件需要使用访问模式a。如果要打开一个进行读写,不清除则使用w+模式。

try:
    data=open('its.txt',"w")
    data2=open('data2.txt',"w")
    print("It's ...",file=data)
except IOError as err:
    print('File error: '+str(err))
finally:
        if 'data' in locals():
                data.close()

等同于使用with代码

try:
    with open('its.txt',"w") as data,open("data2.txt","w") as data2:
        print("It's ...",file=data)
except IOError as err:
    print('File error: '+str(err))

Python术语
“不可变类型”——Python中的一些数据类型一旦赋值,这个值就不能再改变
“腌制”——将数据对象保存到一个持久存储中的过程
“解除腌制”——从持久存储中恢复一个已保存的数据对象的过程

第五章笔记

列表排序

一般一个列表转化为另外一个列表需要干哪几个步骤?

  1. 创建一个新列表来存放转换后的列表
  2. 迭代处理原列表中的数据
  3. 每次迭代时完成转换
  4. 将转换后的数据追加到新列表
clean_mikey=[]
for each_t in mikey:
  clean_mikey.append(sanitize(each_t))

如果用列表推导的话只需要一行代码,不需要自己添加append()代码:

clean_mikey=[sanitize(each_t) for each_t in mikey]

Python中还有一个数据结构(列表list,元组tuple不能改变长度与值,集合set)set集合数据结构,集合数据不允许重复,没有排序要求。
set()BIF创建一个空集合,三种创建集合的方式:

“原地”排序——转换然后替换
“复制排序”——转换然后返回
“方法串链”——从左向右读,对数据应用一组方法
“函数串链”——从右向左读,对数据应用一组函数
“列表推导”——在一行上指定转换(而不是使用迭代)
“分片”——从一个列表访问多个列表项
“集合”——一组无序的数据项,其中不包含重复项

new_l=[]
for t in old_l:
  new_l.append(len(t))

使用列表推导重写这个代码,可以写作:

new_l=[len(t) for t in old_l]

第六章笔记

pop()方法,会将列表指定位置的数据项删除,并返回对应的数据项
Python中的字典,是一个含有映射关系的数据结构,能够保存数据项的结构关系,创建方式可以有:

dict_data={} #直接用大括号包围实现直接创建
dict_data=dict() #利用dict()方法创建

Python使用class创建对象,每个定义的类都有一个特殊的方法,名为__init__(),可以通过这个方法控制如何初始化对象,类中的方法与函数的定义类似,也就是说同样使用def来定义,基本形式如下:

class Athlete:
  def __init__(self):
    #The code to initialize a "Athlete" object.
    ...

创建对象实例,不用new关键字,只需要将对类名的调用赋至各个变量

a=Athltet()
b=Athltet()
c=Athltet()

Python类中self参数很重要,因为python类的设计中,方法共享,属性不共享,因此每个方法都需要self参数,将目标标识符传进去处理。
创建对象的流程,调用类的定制工厂函数Athlete(),然后python处理这行代码时,它把工厂函数转换为Athlete().__init__(a)调用,这样就将目标标识符传进去了,所以函数方法中self参数很重要。

“字典”——这是一个内置的数据结构,允许将数据值与键关联
“键”——字典中查找的部分
“值”——字典中的数据部分(可以是任何值,也可以包括另一种数据结构)
“self”——这是一个方法参数,总是指向当前对象实例

上一篇 下一篇

猜你喜欢

热点阅读