1、print()打印函数,print("abc",end=" ")不换行
2、*n数字连接就是乘法运算,字符串那就是操作次数是n
3、input()接收用户输入,得到的是字符串类型
4、if-elif-else分支结构
5、dir(__builtins__)查看BIF,help(BIF)查看BIF的帮助
6、 转义符
7、str = r'c: ow'得到的是原始字符串,不需要转义也可以
8、三重引号的字符串str='''abc
fjas
ljfkla
'''
print(str)==》会按上面的格式输出
9、while循环
10、random模块==》import random ==》randint(1,10)生成[1,10]的随机整数
11、科学计数法(e记法)
12、True == 1,False == 0
13、int() / float() / str()类型互相转换
14、type() 获取类型信息
15、isinstance()比较类型是否相同,例:isinstance('abc',str)返回值是True
16、操作运算符:+ - * / % ** //
17、逻辑操作符:not / and / or
18、比较操作符:< <= > >= == !=
19、优先级(16-18):幂运算-正负号(单目运算符)-算术操作符-比较操作符-逻辑操作符(not - and - or)
====================================================================================
1、分支、循环
2、三目操作符:small = x if x < y else y
3、断言:assert
4、for循环,语法:for 目标 in 表达式:
循环体
5、range(1,10) ==》 [1,10),包头不包尾
6、break,continue
7、列表:[ ]
8、向列表添加元素:append / extend / insert
9、从列表中删除元素:remove / del(不是列表的函数) / pop(索引参数)
10、列表切片
11、列表常用操作符:and / + / in / not in
12、dir(list):count / index / reverse(倒序列表) / sort(升序排序) / sort(reverse=True)降序
13、= 和 [ : ]的区别
14、创建元组:tuple = () 、tuple = (1,) 空的和一个元素的
15、更新,删除元组:原理是让变量指向新的对象,旧的等回收机制回收
16、字符串方法
17、字符串格式化:format / %
18、序列:列表、元组、字符串
都可以通过索引得到元素,索引从0开始
切片可获得元素集合
有很多共同操作符(重复* 、拼接+ 、成员关系in/not in)
19、序列常用BIF:list / tuple / str / len / max / min / sum / sorted / reversed / enumerate / zip
20、函数创建:def myFunction():
函数体
21、函数的关键字参数:调用的时候给出参数名,如:myFunction(name = 'abc' , words = '234')
22、函数的默认参数:定义的时候设置参数的默认值,调用的时候没有值不会报错,直接使用默认值def myFunction(name = 'abc',words = '234')
23、函数的收集参数:在不知道多少个参数的时候这么用,def myFunction(*params):==>在参数名前加一个*就可以了,调用的时候可以随意传参,参考print()方法
24、函数变量的作用域:函数内部不能修改全局变量
25、global关键字:想要在函数内部修改全局变量,那么要先在函数内部声明global 变量名,然后再修改就是修改全局的
26、内嵌函数:一个函数内部的函数
27、闭包:def funX(x):
def funY(y):
return x * y
return funY #这里函数后面没有括号
27、nonlocal:在一个内嵌函数中使用外部函数的局部变量,这个时候要声明nonlocal 变量名,否则如果不是闭包的格式,后面调用函数会报错
27、lambda(匿名函数):g = lambda x,y : x+y #返回的g是一个函数
g(5,3)
28、Filter():list(filter(lambda x : x % 2 ,range(10)))
29、map():list(map(lambda x : x * 2 ,range(10)))
30、递归
====================================================================================
1、斐波那契数列:迭代,递归;汉诺塔:递归
2、字典:dict = {1:'one',2:'two',3:'three'} 大括号里如果没有映射关系,那么创建的就不是字典,是集合set
3、字典的创建:dict1 = {1:'one',2:'two',3:'three'}
dict2 = dict((1,'one'),(2,'two'),(3,'three'))
dict3 = dict(1='one',2='two',3='three')
4、fromkeys()用法
5、keys() / values() / items() / get(key)获取key的value / clear() 清空字典 / copy() / popitem() / setdefault() / update()
6、集合set的创建:num1 = {1,2,3,4,5}
num2 = set([1,2,3,4,5]) #set里可以传序列
7、in / not in在集合中使用
8、add() / remove()
9、不可变集合:frozenset() ,用forzenset()来定义一个不可变集合
10、文件:open() 打开 f = open('aaa.txt') f.close() f.read() f.readline()文件的读写操作
11、模块.py:导入模块 import os ==>os模块常用方法,import time ==> gmtime() localtime() ,import pickle ==> dump / load 写 / 读二进制文件
12、异常处理:try-except、try-except-finally
try:
检测异常
except [(异常类型的元组)]:
处理异常
finally:
最后一定执行的内容
13、raise 异常类型 ==> 相当于Java中人为抛出异常 throw new Exception
14、else 与 for ,while ,try-except的使用 ==> 当循环没有中断正常执行接收,try中没有出现异常的时候会执行else的内容
15、with在文件读写中的使用:with opent('aaa.txt') as f ==>不用管f的关闭问题,即不要执行f.close()
==============================================================================
1、类和对象
2、面向对象:封装、继承、多态
3、self:当前对象,相当于this
4、构造方法:__init__(self):
5、私有化成员变量
6、继承:class A(B)==>A继承B,B是父类
7、组合
8、绑定:Python要求类方法必须有实例才能被调用,方法要有self参数
9、__init__() __new__() __del__()
10、描述符类:__get__()
__set__()
__delete__()
=========================================================
1、__name__变量:如果在主程序中那么__name__ == '__main__',否则的话__name__ == 类名
2、搜索路径:import sys
sys.path.append("路径")
3、包:step1、创建一个文件夹,用于存储相关模块,文件夹名就是包名
step2、在文件夹中添加__init__.py文件,内容可以是空的
step3、将相关的模块放入文件夹中
4、如何学习一个模块:
方式一:1、导入一个模块:import timeit
2、打印文档:print(timeit.__doc__)
3、查看内置方法:dir(模块名)
4、模块名.__all__过滤不必要的,显示可以被调用的
方式二:help(模块名)
方式三:阅读文档
======================================================
1、Python访问互联网:urllib包 ==》request 、error 、parse 、robotparser模块
2、模拟浏览器访问网页:
step1、urllib.request.urlopen() 得到response
step2、response.read() 得到二进制形式的HTML
response.read().decode('utf-8')得到utf-8形式的
step3、打印HTML
3、避免反爬虫:
headers添加user-Agent、
延长每次爬虫的时间、
使用代理
4、使用代理:
参数是一个字典:urllib.request.ProxyHandler({})
定制、创建一个opener
安装opener:urllib.request.install_opener(opener)
5、import re #正则模块
import urllib.error
import tkinter #GUI
6、Scrapy爬虫框架安装
7、IP地址的正则表达式:r'(?:(?:[0,1]?d?d|2[0-4]d|25[0-5]).){3}(?:[0,1]?d?d|2[0-4]d|25[0-5])'
=============================================
1、拆包:func(2,*nums,**nums) ==>*nums是列表,**nums是字典