Python Head First学习笔记

时间:2021-08-19 21:06:51

Python Head First这一本书也是我在大四实习的时候阅读的。现在主要在学习Android,所以已经有一段时间不碰Python了。现在把之前的笔记拿出来分享一下。笔记做的比较简陋,甚至连序号都没有。但都是可以看懂的内容。这本书也是从Python的基础知识讲起,内容还没有达到多么深入的地步。

len(array)
print()
print(array[1])
array.pop()
array.extend() #末尾插入一个array
array.remove(“element”)
array.insert(num,”element”)
array.append(“element”) #末尾插入一个元素

movies=[
    "element",...,
        ["element",...,
            ["element",...]]] #列表的嵌套

isinstance(array, list) #判断一个东西是不是列表,如果是返回true,否则false
dir(builtins) #可以查看python中所有的内置函数(BIF)
help(input) #可以查看input函数的帮助
PyPI:Python Package Index:Python包索引
三个引号注释一个代码块 “”“…”“”
nester.print_lol(array) #nester是命名空间,否则编译器不知道去哪里寻找print_lol()这个函数
print(“\t”, end=”) #插入一个制表符,end=”是为了关闭其默认自动换行的功能
print(“\t” *num, end=”)
for tab_stop in range(num) 可以进行num个循环
indent #单词释义:缩进

the_file = open('document')  
the_file.close()  
import os  
os.getcwd() #显示当前工作目录 

os.chdir(‘../HeadFirstPython/chapter3’) #切换路径
data = open(‘document’)
seek() #此函数可以让文件退回到起始行
print(data.readline(), end=”) #第二次运行时会读取第二行
for each_line in data:
print(each_line, end=”)
(first, second) = each_line.split(“:”) #将对话从冒号两边分开
find(“:”) #若该行有这个符号,则会返回它在这一行的位置,没有的话返回-1
not each_line.find(“:”) #not会将后面的值取反
元组(tuple) #用小括号表示的列表,一旦创建就不能被改变,相当于const

try:
    ...
except:
    ... #此代码段用来防止错误traceback

if os.path.exists(‘sketch.txt’): #用于检查该文件是否存在
pass #可以放在异常处理的后面,可以直接让代码跳过这个异常
ValuseError是返回错误,IOError是打开文件时的错误

each_line = each_line.strip() #该函数可以从字符串中除去不想要的空白符
elif #这个关键词相当于else if
out = open(“data.out”, “w”) #python默认第二个参数是r(只读),改为w后变为可写
print(“…”, file=out) #out是所写数据文件对象的名字,写完后最后要加上out.close(),意思是刷新输出(flushing)
w模式会清除文件原有的内容,a模式可以追加一个文件,w+可以打开一个文件完成写和读(不清除)

man_file = open("man_data.txt', 'w') print(man, file=man_file) man_file.close()

try语句最后可以加上一个finally:组,确保最后会运行下面的语句,比如写文件最后关闭文件
Python对象只包含数据对象的一个引用,数据对象才真正包含数据,如果想改变一个不可变的值,Python会产生一个TypeError异常
if ‘data’ in locals(): #locals() BIF会返回当前作用域中定义的所有名的一个集合

except IOError as err:
    print('File error: ' + str(err)) #为异常对象给定一个名,然后用作为错误消息的一部分,str()函数将异常对象表示为一个字符串
with open('man_data.txt', 'w') as man_file:
    print(man, file=man_file) #此段代码可以放在try之后,后面就不用再加finally组

fh=sys.stdout #sys.stdout相当于一个缺省值,当这个参数没有被指定时就会保存到屏幕上
pickle:python中的一个标准库
import pickle #使用pickle时打开文件时必须用二进制打开,’wb’, ‘rb’
pickle.dump(‘…’, mysavedata) #使用dump()函数保存数据到python数据存储中
a_list = pickle.load(mysavedata) #使用load()函数从文件恢复数据
显示一个列表的最后一行时可以使用array[-1]

data.sort() #对数据进行排序(并替换)
data2 = sorted(data) #对数据进行排序(原数据不变),默认sort和sorted函数都会升序处理,如果要降序,向函数传入reverse=True
列表推导:secs = [m * 60 for m in mins]
array[0:3] #数组中从第0项到(但不包括)第3项的数据
not in操作符
集合与列表的不同,集合中不允许有重复项,比如distances= set(array),会自动去除其中的重复项

pop(0)将删除并返回列表最前面的数据项
创建字典:1.cleese={} 2.palin=dict() #两种方式,第一种利用大括号创建,第二种利用工厂函数创建

cleese['Name']='FengChi'
cleese['Occupations']=['actor', 'comedian', 'student']
palin = ['Name': 'FengChi', 'Occupations': '['actor', 'comedian', 'student'] class Athlete: def __init__(self): ... #定义一个类,实际上是在定义一个定制工厂函数 class NameList(list): #继承内置的类list def __init__(self, a_name): list.__init__([]) self.name=a_name

生成动态内容的过程:通用网关接口(Common Gateway Interface,CGI),符合这个标准的程序通常称为CGI脚本。
Web应用遵循模型-视图-控制器(Model-View-Controller, MVC)
dir() #显示当前文件夹下的目录
yate代码(内容太多,直接拍照)
Python Head First学习笔记
Python Head First学习笔记
CGI脚本一般都存放在一个名为cgi-bin的特殊文件夹下
用Python构建一个Web服务器必须有这五行代码(以下图片)
Python Head First学习笔记

在CGI脚本最前面增加这两行代码,启用Python的CGI跟踪技术

import cgitb
cgitb.enable()

标准库glob模块非常适合处理文件名列表

SL4A(Scripting Layer for Android)支持Python2,而不是Python3
最简单的Android模拟器的Python脚本:

import android
app = android.Android()
msg = 'Hello World'
app.makeToast(msg)

JavaScript对象记法:JSON ObjectNotation:一个易于使用而且与语言无关的数据交换格式

import json
json.dump(names) #将Python多重列表转换为一个JSON多重列表
json.loads(name) #将JSON多重列表转换为Python能理解的格式

手机上安装AndFTP应用,允许在计算机和Android手机之间通过FTP、SFTP和FTPS传输文件
AVD:一个Android虚拟设备,允许在你的计算机上模拟Android设备

在Android手机上,可以使用dialogGetInput()方法得到用户的输入
import sqlite3 #利用python的数据库API
Python Head First学习笔记

PS: UTF-8 编码是一种被广泛应用的编码,这种编码致力于把全球的语言纳入一个统一的编码,目前已经将几种亚洲语言纳入。UTF 代表 UCS Transformation Format.
raise可以引发一个异常
子类会覆盖父类的函数:多态
如果试图获取不存在的属性,会抛出AttributeError的错误,比如类中一个对象用了self.__age来定义
slots = (‘name’, ‘age’) #用tuple定义允许绑定的属性名称
Python内置的@property装饰可以把一个方法变成属性调用的
print ‘Run child process %s (%s)…’ % (name, os.getpid()) #%s的内容可以在后面写出来
parseaddr()可以用来解析其中的电子邮件地址
JAVA中的Map模板与Python中的字典cheese类似