又要我搞爬虫了,这次的源网站使用的ajax加载数据,我用java爬下来的页面内容部分全都是空,虽然java也有插件,但是使用起来感觉很麻烦,所以,python!老子来了。 1、 版本:python3 肯定选3啊,据说23版本差异巨大,但是3也出来很久了,第三方类库估计都肯定跟上了;再说IT这行业,学新不学 旧,所以,直接安装了python3并且配置完成环境变量.环境变量啊配置方法百度。 详细版本如图: 2、IDE:pyCharm 30天试用版 肯定是要IDE的,安装完了就是敲,,装完打开直接hello world
3、语法 A:基础 01注释
02缩进数的空格数不一致,会导致运行错误 03Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠(\)来实现多行语句
04import 与 from...import(重点) 在 python 用 import 或者 from...import 来导入相应的模块。 摘抄自:http://www.runoob.com/python3/python3-basic-syntax.html 将整个模块(somemodule)导入,格式为: import somemodule 从某个模块中导入某个函数,格式为: from somemodule import somefunction 从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc 将某个模块中的全部函数导入,格式为: from somemodule import *
print('================import================================='); print ('\n python 路径为',sys.path) from sys import argv, path # 导入特定的成员 print('================from import==============================') print('path:', path) # 因为已经导入path成员,所以此处引用时不需要加sys.path
05类型判断 print(type(a))#<class 'int'> print(isinstance(a, int))#true result=isinstance(A(), A) # returns True result=type(A()) == A # returns True
B:变量 01数据类型: Python3 中有六个标准的数据类型: - Number(数字)Python3 支持 int、float、bool、complex(复数)。
- String(字符串)
- List(列表)
- Tuple(元组)相当于数组
- Set(集合)
- Dictionary(字典)
Python3 的六个标准数据类型中: - 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
摘抄自:http://www.runoob.com/python3/python3-basic-syntax.html 使用三引号('''或""")可以指定一个多行字符串。 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。。 如 r"this is a line with \n" 则\n会显示,并不是换行。 按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。 字符串可以用 + 运算符连接在一起,用 * 运算符重复。 Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。 Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。 字符串的截取的语法格式如下:变量[头下标:尾下标]
02声明
name = "博主在runoob学习的基础,它们网站好棒啊" # 字符串
03删除声明通过使用del语句删除单个或多个对象。例如:del var
del var_a, var_b 04集合
list(http://www.runoob.com/python3/python3-data-structure.html) list = ['abcd', 786, 2.23, 'runoob牛逼', 70.2] tinylist = [123, 'runoob牛逼'] print (list[0]) # 输出列表第一个元素 print (list[1:3]) # 从第二个开始输出到第三个元素 print (list[2:]) # 输出从第三个元素开始的所有元素 print (tinylist * 2) # 输出两次列表 print (list + tinylist) # 连接列表
listAPI list.append(x) 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。 list.extend(L) 通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。 list.insert(i, x) 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。 list.remove(x) 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。 list.pop([i]) 从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。) list.clear() 移除列表中的所有项,等于del a[:]。 list.index(x) 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。 list.count(x) 返回 x 在列表中出现的次数。 list.copy() 返回列表的浅复制,等于a[:]。
补充元组(数组)tuple
tuple = ('abcd', 786, 2.23, 'runoob又牛逼了', 70.2) tinytuple = (123, 'runoob又牛逼了') print(tuple[0]) # 输出元组的第一个元素 print(tuple[1:3]) # 输出从第二个元素开始到第三个元素 print(tuple[2:]) # 输出从第三个元素开始的所有元素 print(tinytuple * 2) # 输出两次元组 print(tuple + tinytuple) # 连接元组
C:表达式 加点乘除取模取余自不多说,遇到问题问度娘
D:方法 01一般用法
def areaDefault(width=10, height=10): print("狗窝的面积为",area(10,2),"平方米") print("狗窝的默认面积为",areaDefault(),"平方米")
02参数带两个星号 **基本语法如下:
def functionname([formal_args,] **var_args_dict ):
def printinfo(arg1, **args):
03匿名函数
python 使用 lambda 来创建匿名函数。 所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。 - lambda 只是一个表达式,函数体比 def 简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
- 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
lambda [arg1 [,arg2,.....argn]]:expression
sum = lambda arg1, arg2: arg1 - arg2 print("相减后的值为 : ", sum(30, 20))
还有一种嵌套不写了,遇到百度
04变量作用域:自己感受就行
|