python各种半桶水QAQ,一些特性经常跟其他语言搞混,官方入门文档重读温习......

最好用4个空格的缩进
空值是Python里一个特殊的值,用None表示
变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来

编码问题:
print u'中'.encode('utf-8')

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:classmates = ('Michael', 'Bob', 'Tracy')

可以用一个list表示:classmates = ['Michael', 'Bob', 'Tracy']

用Python写一个dict如下:
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合: s = set([1, 2, 3])

if注意不要少写了冒号:

if age >= 6:
print 'teenager'

for x in range(100):
sum = sum + x

必须先用int()把字符串强制转换为我们想要的整型:
birth = int(raw_input('birth: '))

在Python中,定义一个函数要使用def语句,函数的返回值用return语句返回。
我们以自定义一个求绝对值的my_abs函数为例:
def my_abs(x):
if x >= 0:
return x
else:
return -x

def nop():
pass
实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码

函数可以返回多个值吗?答案是肯定的。
return nx, ny

要注意定义可变参数和关键字参数的语法:

*args是可变参数,args接收的是一个tuple
**kw是关键字参数,kw接收的是一个dict

对应上面的问题,取前3个元素,用一行代码就可以完成切片:
>>> L[0:3]

创建一个generator:L = [x * x for x in range(10)]

对应到编程语言,就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言;越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言。函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!结论:函数本身也可以赋值给变量,即:变量可以指向函数。

Python内置的sorted()函数就可以对list进行排序: sorted([36, 5, 12, 9, 21])

正常的函数和变量名是公开的(public),可以被直接引用,比如:abc,x123,PI等;

类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author__,__name__就是特殊变量,hello模块定义的文档注释也可以用特殊变量__doc__访问,我们自己的变量一般不要用这种变量名;
类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等;

Python有两个封装了setuptools的包管理工具:easy_install和pip。目前官方推荐使用pip。
eg.: pip install PIL

Python提供了__future__模块,把下一个新版本的特性导入到当前版本,于是我们就可以在当前版本中测试一些新版本的特性。

面向对象:

class Student(object):

def __init__(self, name, score):
self.name = name
self.score = score

def print_score(self):
print '%s: %s' % (self.name, self.score)

class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的。

__init__和__del__分别完成初始化和删除操作

任何时候,如果没有合适的类可以继承,就继承自object类。

通过多重继承,一个子类就可以同时获得多个父类的所有功能。

class TestClass(object):
val1 = 100

def __init__(self):
self.val2 = 200

def fcn(self,val = 400):
val3 = 300
self.val4 = val
self.val5 = 500

这里,val1是类变量,可以由类名直接调用,也可以有对象来调用;
val2是成员变量,可以由类的对象来调用,这里可以看出成员变量一定是以self.的形式给出的,因为self的含义就是代表实例对象;
val3不是成员变量,它只是函数fcn内部的局部变量;
val4和val5也都不是成员变量,虽是以self.给出,但并没有在构造函数中初始化。

所以高级语言通常都内置了一套try...except...finally...的错误处理机制,Python也不例外。

当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。finally如果有,则一定会被执行(可以没有finally语句)。

如果要抛出错误,首先根据需要,可以定义一个错误的class,选择好继承关系,然后,用raise语句抛出一个错误的实例.

Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程

在Unix/Linux下,multiprocessing模块封装了fork()调用,使我们不需要关注fork()的细节。由于Windows没有fork调用,因此,multiprocessing需要“模拟”出fork的效果,父进程所有Python对象都必须通过pickle序列化再传到子进程去,所有,如果multiprocessing在Windows下调用失败了,要先考虑是不是pickle失败了。

多任务可以由多进程完成,也可以由一个进程内的多线程完成。

Python的标准库提供了两个模块:thread和threading,thread是低级模块,threading是高级模块,对thread进行了封装。绝大多数情况下,我们只需要使用threading这个高级模块。

有了准备知识,我们就可以在Python中使用正则表达式了。Python提供re模块,包含所有正则表达式的功能。

Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。

好在Python提供了HTMLParser来非常方便地解析HTML,只需简单几行代码:

PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。

所以,我们要创建一个基于TCP连接的Socket,可以这样做:

# 导入socket库:
import socket
# 创建一个socket:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 建立连接:
s.connect(('www.sina.com.cn', 80))

[import fibo]
这样做不会直接把 fibo 中的函数导入当前的语义表;它只是引入了模块名 fibo。

import 语句的一个变体直接从被导入的模块中导入命名到本模块的语义表中。例如:
>>> from fibo import fib, fib2
>>> fib(500)

甚至有种方式可以导入模块中的所有定义:
>>> from fibo import *

在from aaa import bbb中:
aaa是一个module
bbb是一个方法或者类搜索
bbb是在aaa下的

用if __name__ == '__main__'来判断是否是在直接运行该.py文件

1.os 和操作系统有关

2.time 与时间有关

3.pcap 抓包

4.dpkt 解包和组包

5.pymssql 进行mssql数据库操作

6.cProfile 自己debug脚本性能时用的,可以精确快速计算运行时间

7.urllib2 最早接触的库之一,跟HTTP有关

8.httplib 与HTTP有关

9.smtplib SMTP的lib

10.poplib POP3的lib

11.tarfile 解tar包

12.socket 最原始的tcp库

13.paramiko SSH SFTP

14.psyco 增强性能,对函数和类,尤其包含多次循环的非常有效

15.pywin32 运用windows的API

16.selenium 界面自动化

17.sqlite3 sqlite3数据库操作

18.email 邮件的编码解码

19.stackless 微线程,据有关人测试,可以达到普通线程的十倍性能

20.wx wxpython,写界面用的

21.py2exe 把py程序弄成exe可执行的

22.shutil 很有用,copy,删除

23.thread 普通线程

python再学习笔记的更多相关文章

  1. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  2. Python Click 学习笔记(转)

    原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...

  3. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  4. js再学习笔记

    #js再学习笔记 ##基本 1.js严格区分大小写   2.js末尾的分号可加,也可不加   3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var ...

  5. Python Flask学习笔记之模板

    Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...

  6. Python Flask学习笔记之Hello World

    Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...

  7. 获取字段唯一值工具- -ArcPy和Python案例学习笔记

    获取字段唯一值工具- -ArcPy和Python案例学习笔记   目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...

  8. Python高级学习笔记

    Python高级学习笔记,此笔记中包含Linux操作系统.Html+CSS+JS.网络协议等. 所有思维导图为本人亲手所画,请勿用于商用. 大哥们,求点赞哦. 第一天笔记:链接 第二天笔记:链接 第三 ...

  9. Python 基础学习笔记(超详细版)

    1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...

随机推荐

  1. Java工程师学习指南第1部分:夯实Java基础系列

    点击关注上方"Java技术江湖",设为"置顶或星标",第一时间送达技术干货. 本文整理了微信公众号[Java技术江湖]发表和转载过的Java优质文章,想看到更多 ...

  2. 攻防世界WEB新手练习

    0x01 view_source 0x02 get_post 这道题就是最基础的get和post请求的发送 flag:cyberpeace{b1e763710ff23f2acf16c2358d3132 ...

  3. NDK学习笔记-NDK开发流程

    本文主要是说明一下在eclipse下如何对NDK进行配置 配置NDK 虽然现在基本上都使用Android Studio进行Android开发,但一些项目在eclipse中仍有运用,这里讲一讲eclip ...

  4. Jmeter对Websocket进行接口压力测试

    压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求 ...

  5. HTTP协议之需要了解的网络基础

    HTTP(超文本传输协议)是应用层协议,构建在TCP/IP之上,主要用来完成客户端和服务端的通信.本文主要介绍一些和HTTP相关的内容. 1. TCP/IP 分为四层: 应用层:HTTP.DNS.FT ...

  6. 16.screen相关

    screen -S yourname -> 新建一个叫yourname的sessionscreen -ls -> 列出当前所有的sessionscreen -r yourname -> ...

  7. PB做的托盘程序(最小化后在左下角显示图标)

    见‘文件’资源

  8. Django Rest Framework 安装

    1. 环境要求 Python (3.5, 3.6, 3.7): 查看 python版本:python -V Django (1.11, 2.0, 2.1, 2.2) 查看django版本:pip li ...

  9. 什么是Sprint?

    Sprint指Scrum团队完成一定数量工作所需的短暂.固定的周期.Sprint是Scrum和敏捷的核心,找到正确的Sprint周期将帮助您的敏捷团队交付更高质量的产品. “在Scrum框架中,庞大且 ...

  10. 关于RESTful API

    添几篇文章: 一.What Is REST? 二.RESTful API最佳实践 三.MS Azure——API Design 这些文章里面也推荐了一些关联文章,微软那篇最详细,非常值得一读.