Python培训
400-996-5531
一、python变量和数据类型
创建变量意味着在内存中开辟一个空间,变量拥有不同的数据类型。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
python五个标准的数据类型:
Numbers(支持int、long、float、complex四种数字类型)
String(从左到右索引默认0开始)
List(用[ ]标识)
Tuple(用( )标识,内部元素用逗号隔开)
Dictionary(用"{ }"标识,由索引(key)和它对应的值value组成)
1、Numbers:
Python 支持四种不同的数值类型:
整型- 通常被称为是整型或整数,是正或负整数,不带小数点。
长整型 - 无限大小的整数,整数最后是一个大写或小写的L。
浮点型- 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
复数 - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
2、String:
我们可以使用引号('或")来创建字符串,例如:
var1="hello world"
var2="hello beijing"
访问字符串中的值:
print("var1[0]:",var1[0])
print("var2[0:5]:",var2[0:5])
显示结果如下:
3、List:
列表中的每个元素都分配一个数字 。它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];
访问列表中的值:
print("list1[0]: ", list1[0])
print("list2[1:5]: ", list2[1:5])
显示结果如下:
4、Tuple:
元祖的创建,只要在括号中添加元素,并使用逗号隔开即可,如下示例:
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
访问元组中的值:
print("tup1[0]: ", tup1[0])
print("tup2[1:5]: ", tup2[1:5])
显示结果如下:
5、Dictionary:
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
访问字典里的值:
print("dict['Name']: ", dict['Name'])
print("dict['Age']: ", dict['Age'])
显示结果如下:
字典内置函数&方法:
(1)keys()方法:
dict = {'Name': 'Zara', 'Age': 7}
print(dict.keys())
显示结果如下:
(2)values()方法:
dict = {'Name': 'Zara', 'Age': 7}
print(dict.values())
显示结果如下:
(3)items()方法:
dict = {'Google': 'www.google.com', 'Runoob': '#', 'taobao': '#'}
print(dict.items())
# 遍历字典列表
for key, values in dict.items():
print(key, values)
显示结果如下:
二、python函数
1、自定义函数:
定义函数用def语句,依次写出函数名、括号、括号中的参数和冒号,然后在缩进块中编写函数体,函数的返回值用return语句:
def my_abs(x):
if x>=0:
return x
else:
return -x
print(my_abs(5))
print(my_abs(-88))
显示结果如下:
2、函数的参数:(1)位置参数:如下所示,power(x,n),x和n就是位置参数,调用函数时,传入的两个值按照位置顺序依次赋值给参数x和n:
def power(x,n):
s=1
while n>0:
n=n-1
s=s*x
return s
print(power(5,3))
显示结果如下:
(2)默认参数:如下所示,可以把第二个参数n的默认值设定为2,这样,当调用power(5)时,相当于调用power(5,2)
def power(x,n=2):
s=1
while n>0:
n=n-1
s=s*x
return s
print(power(6))
显示结果如下:
(3)可变参数:我们以数学题为例,给定一组数字a,b,c...,请计算a^2+b^2+c^2+...
def calc(numbers):
sum=0
for n in numbers:
sum=sum+n*n
return sum
print(calc([1,2,3]))
print(calc((1,3,4,6,7)))
显示结果如下:
定义一个可变参数,只要在前面加上一个*号即可:
def calc(*numbers):
sum=0
for n in numbers:
sum=sum+n*n
return sum
print(calc(1,2,3))
print(calc(1,3,4,6,7))
显示结果同上。
(4)关键字参数:关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict:
def person(name,age,**kw):
print('name:',name,'age:',age,'other:',kw)
person('Michael', 30)
person('Bob', 35, city='Beijing')
person('Adam', 45, gender='M', job='Engineer')
显示结果如下:
(5)参数组合:参数可以组合使用,但是参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。比如定义一个函数,包含上述若干种参数:
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
f1(1, 2)
f1(1, 2, c=3)
f1(1, 2, 3, 'a', 'b')
f1(1, 2, 3, 'a', 'b', x=99)
f2(1, 2, d=99, ext=None)
显示结果如下:
所以,对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的。
要注意定义可变参数和关键字参数的语法:
*args是可变参数,args接收的是一个tuple; **kw是关键字参数,kw接收的是一个dict。
三、网页解析
1、正则表达式:
扛把子技术,总得会最基础的:
拓展阅读:
(1)正则表达式 - 教程 | 菜鸟教程
(2)正则表达式(RegEx)--快速参考
(3)正则表达式在线测试
2、XPATH:
高效的分析语言,表达清晰简单,参考:XPath 教程
3、Beautifulsoup:
一款神器,配合request、urllib等模块,可以编写各种小巧精干的爬虫脚本。
官网文档:Beautiful Soup 4.2.0 文档
四、爬虫进阶
1、常用模块:
urllib urllib2 requests
2、好用的框架:
scrapy
3、动态页面的爬取:
selenium+scrapy
4、遇到反爬虫策略怎么办:
opencv
打码平台
5、数据库:
mysql
sqllite
mongodb
6、数据分析:
numpy
pandas(基于numpy的数据分析模块)
7、进阶技术:
多线程、多进程、分布式
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved