一、入门篇
1、python语法
通常每个语句占用一行,结尾由换行符标记。
可以使用\续航,如果是字符串还可以使用三个双引号、单引号。
缩进:Python类定义、函数定义、流程控制语句、异常处理语句等都是通过冒号进入下一级,下一级必须缩进,且同一级代码缩进必须一样。
注释:#单行注释
多行注释使用三个单引号、三个双引号
2、运算符
算数运算符:+-*/% ,a**b (a的b次方) ,a//b (a除以b向下取整)
比较运算符:==、!= <>、>、<、>=、<=
赋值运算:=、+=、-=、*=、/=、**=、//=
位运算符:&按位与运算、|按位或运算、^按位异或运算、~按位取反运算、>>右移
逻辑运算符:and、or、not
成员运算:in 如果在指定的序列中找到值返回 True,not in(支持字符串,等同于模糊匹配)
身份运算:is判断两个标识符是不是引用自一个对象,is not
优先级:()》**》+-(正负)》*/》+-》not》and》or》in》is
3、python控制语句
判断:
if 条件:
执行语句1
elif 条件:
执行语句2
else:
执行语句3
循环:
for循环
while循环
3、python数据类型
5个标准数据类型
Numbers(数字):int(有符号整型)long(长整型,也可以代表八进制和十六进制)float(浮点型)complex(复数)布尔型--bool
String(字符串)
List(列表):用[]标识,索引从 0 开始,列表中的内容可以混搭。支持+和*操作。截取l[0:n-1],获取或修改第二个值l[1],list.append(obj)添加新元素
Tuple(元组):元组用 () 标识。元组不能二次赋值,相当于只读列表。截取l[0:n-1],获取第二个值l[1]
Dictionary(字典):字典用"{ }"标识。字典由索引(key)和它对应的值value组成。{'name': 'runoob','code':6734, 'dept': 'sales'},所有键:tinydict.keys(),del dic["name"]删除建。
set(集合):通过set(字符串,列表,元祖,字典)创建。是一个无序不重复的{}列表。不能通过下标获取。可进行&交|并-差 ^补集操作
序列: 字符串、元组、列表、字典、集合
4、字符串
多个字符串拼接:"he""llo"或"he"+"llo"
字符串*n:字符串重复n次
字符串截取:str[0:n-1]
字符串r'', b'', u'', f'' 的含义
r''去除转译,通常用于正则表达式
b''表示这是一个bytes对象,用于网络服务数据传输
u''字符以Unicode格式编码,通常用在中文前面,防止乱码
f''字符串内支持{}表达式,如f'{name} done in {time.time()}s'
5、多线程
方法1、引用threading模块
threading.Thread(target=ip_address,args=(i,)).start()
方法2、线程池 from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=3) as executor: # 控制线程池大小为3
# 提交任务给线程池
future1 = executor.submit(task, 1)
future2 = executor.submit(task, 2)
future3 = executor.submit(task, 3)
由于python有GIL保护机制,即使设置多线程依然是串行执行。
6、类
Python是一种面向对象的语言,类的作用
1、封装数据和方法
2、提高代码的重用性
3、实现继承和多态
4、提供抽象和接口
class Ticket():
def __init__(self,checi,fstation,tstation,fdate,ftime,ttime):
self.checi=checi
self.fstation=fstation
self.tstation=tstation
self.fdate=fdate
self.ftime=ftime
self.ttime=ttime
def printinfo(self):
print("车次:",self.checi)
print("出发站:", self.fstation)
print("到达站:", self.tstation)
print("出发时间:", self.fdate)
#init()方法是一种特殊的方法,被称为类的初始化方法,当创建这个类的实例时就会调用该方法;
#self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数;
#创建a1对象
a1=Ticket("G11","xian","beijing",'2019-01-20','13:00','18:00')
a1.printinfo()
7、特殊函数
range(3)是一个表示范围的函数,其中 可以放2个参数或者3个参数。
如果是2个参数则表示循环递增,如果是3个参数表示递减型的。
如:for i in range(10): 表示的是循环递增0-9次,不包括10
如:for i in range(1,10): 表示的是循环递增1-9次,不包括10
如:for i in range(10,1,-1): 表示循环10-2,依次递减,-1代表步长为-1,每次循环减1
sum(i)
iterable -- 可迭代对象,如:列表、元组、集合。
start -- 指定相加的参数,如果没有设置这个值,默认为0。
如:sum((2, 3, 4), 1) # 元组计算总和后再加 1
len(序列长度)
8、python库
os:提供了不少与操作系统相关联的函数
sys: sys.argv获取main方法参数
re: 正则匹配
math: 数学运算
datetime:处理日期时间datetime.datetime.now()
9、异常处理
try: <语句> #运行别的代码 except <名字>: <语句> #如果在try部份引发了'name'异常 except <名字>,<数据>: <语句> #如果引发了'name'异常,获得附加的数据 else: <语句> #如果没有异常发生
assert(condition)断言,检测一个条件,如果条件为真,它什么都不做;反之它触发一个带可选错误信息的AssertionError。
if not attr_list://空返回 return
二、精通篇
1、爬虫
2、pyspark
3、人工智能
连接mysql
安装mysql:
mydb = mysql.connector.connect( host="localhost", user="root", password="", database="") mycursor = mydb.cursor()