Python学习手册(笔记)

1、把python脚本的输出定向到一个文件中,以备以后使用或查看

python script1.py > saveit.txt

2、UNIX风格可执行脚本:#!

在类UNIX系统上使用python可以将python代码编程为可执行程序,这种脚本称为可执行脚本。其为具备了两个特殊属性的、包含了python语句的一般文本文件。

属性1:脚本第一行往往以#!开始(常常叫作“hash bang”或“shebang”),其后紧接着机器的python解释器路径。
属性2:拥有执行权限。
UNIX系统上,往往可以使用chmod+x file.py 来实现这样的目的,之后可以使用./file来运行该文件

3、在一些UNIX系统上可以避免在脚本文件中硬编码python解释器的路径

只需要在第一行注释中写:

#!/usr/bin/env python

这样编写代码的时候,env程序可以通过系统的搜索路径的设置定位python解释器(在绝大多数的UNIX shell中,通过搜索PATH环境变量中罗列出的所有目录),使代码更具可移植性。当脚本移动到新的位置时,只需要更新PATH,而不是全部脚本。

4、每一个以扩展名.py结尾的python源代码文件都是一个模块

不需要任何特殊的代码或语法来使文件成为模块
其他文件可以通过导入一个模块来读取这个模块定义的内容。
第一次导入之后,其他倒入都不会再工作
导入是一个开销很大的操作。
from与import很相似,from是复制了模块的属性,以便属性能够成为接受者的直接变量。

import myfile
myfile.title

from myfile import title
title

5、使用dir()函数来获得模块内部的可用的全部变量名的列表

6、每个模块文件是一个变量包(命名空间)。

模块实现了python竭尽全力将变量打包以避免名称冲突的愿望。

7、内嵌函数

str():将数字转换成字符串
len():获得字符串的长度
zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
sorted():对各种对象类型排序
open(): 用于打开一个文件,创建一个 file 对象

8、常用模块

math模块:包含了高级的数学工具,如函数
random模块:随机数生成模块
re模块:匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的
time和timeit模块:测试代码速度运行时间和速度
profile模块:分离性能瓶颈
struct模块:可以同时创建和解析打包过的二进制数据
9、特定类型的方法
可以使用dir()函数了解对象的所有属性和方法。dir()函数简单的给出了方法的名称,可以使用help()函数查询方法的作用。

s="abcde"
dir(s)
help(s.replace)

dir()和help()可作用于实际的对象或一种数据类型

①字符串

find()方法:返回一个传入字符串的偏移量
replace()方法:把字符串中的旧字符串替换成新字符串
split()方法:通过指定分隔符对字符串进行切片
rstrip()方法:删除字符串末尾的指定字符(默认为空格)

②列表

append()方法:在列表末尾添加新的对象
pop()方法:移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
sort()方法:对原列表进行排序
括号中的推导语法也可以用来创建产生所需结果的生成器

③字典

dict():创建字典

bob1=dict(name=‘Bob’, job='dev', age=40)
bob2=dict(zip([‘name’,'job','age'],['Bob','dev', 40]))

keys():收集一个键的集合

#根据键排序
D={'a':1,'b':2,'c':3}
Ks=list(D.keys())
Ks.sort()

④元组

只包含一个元素的元组需要以逗号作为结尾

⑤文件

没有特定的字面量语法来创建文件
读取一个文件的最佳方式是根本不读它,而是通过文件的一个迭代器在for循环或其他上下文中自动地逐行读取:

for line in open('data.txt'):
     print(line)

⑥二进制字节文件
二进制字节文件在处理多媒体、获取、获取C程序产生的数据等情况下十分有用

⑦Unicode文本文件
Unicode文本文件必须使用codecs.open打开,并且使用特殊的unicode字符串表示内存中的内容

⑧其他类文件工具
管道
先见先出队列(FIFO)
套接字
按键值访问的文件
持久化对象shelve
基于描述的文件
关系型数据库接口
面向对象数据库接口

⑨用户定义的类

class Worker:
         def __init__(self,name,pay):
              self.name=name
              self.pay=pay
         def lastName(self):
              return self.name.split()[-1]
         def giveRaise()

10、生成器(generator)的值并非立即存储在内存中,而是通常通过迭代工具在被请求时生成

11、列表推导和相关的函数编程工具(如map和filter)在某些代码上通常运行得比for循环快

12、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值