python学习
资源: 1.[小甲鱼]零基础入门学习Python https://www.bilibili.com/video/av4050443/?from=search&seid=10660823011875778478 2.基于资料1中视频的官网,鱼C论坛有很多资料 http://bbs.fishc.com/forum-243-1.html 3.字符串内置方法 http://bbs.fishc.com/thread-38992-1-1.html 4.Python及bs4、lxml、numpy模块包的安装 http://blog.csdn.net/tiantiancsdn/article/details/51046490 5.Python 关键字 https://blog.csdn.net/liang19890820/article/details/68488392 6.python内置函数大全 https://www.cnblogs.com/pyyu/p/6702896.html 前言 1.版本 学习3.0,很多语法不兼容2.5 2.安装 下载3.6.4版本 软件:Sublime Text 3 , python自带IDLE 3.Bif 与 函数 Sublime Text3 安装:略 SublimeREPL插件: #可以直接输命令` 安装:#http://blog.chinaunix.net/uid-12014716-id-4269991.html 使用:#https://www.cnblogs.com/yshuangj/p/6404372.html python IDLE快捷键 Alt+N Alt+P 可以查找以前输入的命令用于补全当前命令 库的使用: #参考资料4 1.使用pip安装, 安装pip CMD到相应目录 : easy_install.exe pip 2.库的安装 from bs4 import BeautifulSoup #pip3 install beautifulsoup4 from urllib import request #python3自带 lxml解析器 #pip install lxml 学习: //参考资料1视频 1.常用语法 与 基础 print("jiuya"+" java") print("jiuya"*3) print("jiuya\n"*3) #换行 缩进是python的灵魂,需要正确的使用缩进 dir(__builtins__) #查看python有多少内置函数bif,里面不是所有都是bif,纯小写的是 help(input) #查看input作用 print('jiuya\'! java') #字符串单引双引,需要转义 str = r'D:\Java\tomcat' #在字符串前加r 全部自动给字符转\变成\\ str='''大大大 #三重引号可以自动给字段加\n 大大大a dadavsxv''' if a==0: print('xxx') else: print('xxx') 3>2 and 1<2 #逻辑操作符 and %d 只能输出整数,int类型 %f 输出浮点数 %s 输出string type() #查看数据类型 isinstance(320,int) #判断数据类型,2参数:1.待确定参数,2.指定 , 返回True/False 2.引入模块 random :randint() #random模块中randint()函数会返回一个随机整数 import math #引入数学模块 3.python数据类型 str , float , bool , int 4.算数操作符 + - * / % ** // # **冥运算 //float地板除法 去掉小数点后面的 >>> a=10 >>> b=9.999 >>> a//b 1.0 >>> a/b 1.000100010001 >>> b/a 0.9999 >>> b//a 0.0 >>>3**2 # 3*3 9 5.比较操作符 < <= > >= != == 6.逻辑操作符 and or not 并 或 非 >>>not True False >>>not 0 True >>>not 4 False >>>3 <4 <5 True 7.分支循环 #其它和java差不多 if 条件: print() elif 条件: print() elif 条件: print() else: print() 8.条件表达式(三元操作符)#2.5版本添加的 small= x if x<y else y 9.断言 assert >>>assert 3>4 #当这个关键字后面条件为假,程序自动崩溃并抛出AssertionError的异常 10.while循环 11.for循环 member = ['fafa','啊a啊','搜索','嗯嗯'] for each in member: print(each,len(member)) 12.range() 语法:range([strat,] stop[,step=1]) #这个bif有三个参数,两个可选,step默认是1 >>> range(5) range(0, 5) >>> list(range(5)) [0, 1, 2, 3, 4] >>> for i in range(2,9): print(i) 2 3 4 5 6 7 8 >>> for i in range(1,10,2): print(i) 1 3 5 7 9 13.列表[] 普通列表,混合列表,空列表 member = ['fafa','啊a啊',3.14,[1,2,3]] 添加元素: member.append(4) #追加 member.extend([5,6]) #扩展 member.insert(0,'法防') member.remove('fafa') del member[1] #del 是个语句不是方法 member.pop() #弹出;列表最后一个,弹出后列表没有该元素,可以有索引 member.pop(1) #弹出索引值为1的元素 列表分片: member[1:3] #不包含3,不改变列表 member[:3] 14.列表上的常用操作符、 比较,逻辑,连接,重复,成员关系 (list1 > list2) and (list1 == list3) >>>list1 = list1 + list3 >>>list1 * 3 #复制三遍,不改变列表 >>>list1 *= 3 #改变列表 >>>123 in list1 #返回bool,判断1层列表 >>>123 not in list1 #list1 = [123,['aa','bb'],44] >>>'aa' in list1[1] 15.列表类型的内置函数 dir(list) #列举 list内置函数 list1.count(123) #计算123在list1中出现多少次 list1.index(123) #找到第一个出现的位置 list1.index(123,2,5) #指定范围 list1.reverse() #翻转 list1.sort() #排序 小到大 list1.sort(reverse=True) #大到小 16.元组:戴上枷锁的列表 tuple #元组与list使用上非常相识,不可以被修改 创建和访问 >>> tuple1=(1,2,3,4,5) >>> tuple1[1] 2 >>> tuple1[3:] (4, 5) #元组重点是, 不是() >>> tuple1=1,2,3 >>> tuple1=1, 更新和删除 #以分片重组的方式 >>> tuple1=(1,2,3,4,5) >>> tuple1=tuple1[:2]+(3.5,)+tuple1[2:] (1,2,3,3.5,4,5) 元组相关操作符 + 拼接操作符 * 重复操作符 in 成员操作符 not in 成员操作符 17.字符串内置方法 #http://bbs.fishc.com/thread-38992-1-1.html 切割 >>> str='12345' >>> str[:3] '123' 拼接 >>> str1=str[:3]+'插入'+str[3:] >>> str '12345' >>> str1 '123插入45' capitalize() #把字符串的第一个字符改为大写 >>> str2='abcdef' >>> str2.capitalize() 'Abcdef' casefold() #把整个字符串的所有字符改为小写 center(width) #将字符串居中,并使用空格填充至长度 width 的新字符串 count(sub[, start[, end]]) #返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。 encode(encoding='utf-8', errors='strict') #以 encoding 指定的编码格式对字符串进行编码。 endswith(sub[, start[, end]]) #检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。 expandtabs([tabsize=8]) #把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。 find(sub[, start[, end]]) #检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。 index(sub[,start[,end]]) #与find差不多,如果sub不在字符串中会产生一个异常 isalnum() #字符串至少有一个字符,字母数字都可以,有True 无false isalpha() #至少一个,只能是字符串 true false isdigit() #只包含数字 islower() #只能是小写 replace(old, new[, count]) #把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。 strip([chars]) #移除字符串头尾指定的字符(默认为空格) .... 18.字符串格式化 #Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。 >>>"{0} love {1}.{2}".format('I','rekoo','com') 格式化符号: #http://www.runoob.com/python3/python3-string.html %c 格式化字符及其ASCII码 %s 格式化字符串 %d 格式化整数 %u 格式化无符号整型 %o 格式化无符号八进制数 %x 格式化无符号十六进制数 %X 格式化无符号十六进制数(大写) %f 格式化浮点数字,可指定小数点后的精度 %e 用科学计数法格式化浮点数 %E 作用同%e,用科学计数法格式化浮点数 %g %f和%e的简写 %G %f 和 %E 的简写 %p 用十六进制数格式化变量的地址 >>> '%c' %97 'a' >>> '%c%c%c' %(97,98,99) 'abc' 格式化操作符辅助指令: #http://www.runoob.com/python3/python3-string.html m.n. #一般配合%f使用, m是总宽度,n是小数点后位数 转义符号: .... 19.序列 #列表,元组,字符串 Bif: #内置方法 #help(list) list() #可迭代对象转list tuple()#可迭代对象转tuple len(sub)#返回长度 max()#返回最大 sum() sorted() zip() # 打包为元组的列表 reversed() #反转,是一个对象,需要list() 20.函数 def MyFunction(name,word): print('ssss') 属性: MyFunction.__doc__ 参数: 关键字参数: 可以用在function 上也可以用在, 调用时 内部/内嵌 函数: def fun1(): print('fun1调用') def fun2(): print('fun2调用') fun2() 21.闭包 def funX(x): def funY(y): return x * y return funY 使用闭包: >>>i=funX(8) >>>i(5) 40 >>>funX(8)(5) >>>40 22.lambda 表达式 #创建函数,省下定义函数过程, 把函数变成一句话函数 >>>t=lambda x:2*x >>>t(5) 10 23.递归 24.字典 #dict 映射类型, K/V 字典是python唯一的映射类型 #不用索引时, 就可以用字典, # http://www.runoob.com/python/python-dictionary.html s={'a':'A','b':'B','c':'C'} 25.集合 #set s={'a','b','c'} s=set(['元组/列表/str']) 1.具有唯一性, 2.无序 3.不支持索引 方法: v in set set.add(v) .remove(v) 不可变集合: frozen:冰冻的 frozenset([1,2,3,4]) 26.输入 输出 处理 open() 函数用于打开一个文件,创建一个 file 对象 # http://www.runoob.com/python/python-func-open.html open(name[, mode[, buffering]]) 打开模式: r只读(默认), w写 覆, a写 追加 方法: .close() .read(size=-1) .readline() #写入模式打开,文件存在,末尾追加 .write(str) #将str写入文件 00.Python关键字 global 定义全局变量 #可以把函数中局部变量变成全局函数 nonlocal 与global使用是一样的 #细节自己百度吧 00.内置函数: filter(function, iterable) #过滤器 #>>>list(filter(lambda x:x%2,range(10))) #[1,3,5,7,9] map(function, iterable, ...) #遍历每个元素,执行function操作 #>>> list(map(lambda x:x*2,range(10))) 把range生成的值, 放入前面函数得到加工后的值 #[0, 2, 4, 6, 8, 10, 12, 14, 16, 18] 命令/关键字: scrapy: scrapy startproject XXXXX //创建项目 yield python: 问题: 1.list的分片拷贝与直接赋值 list1=list2[:] #创建一个空间 lisr1=list2 #使用同一个地址,只是多了一个指向 2.list拼接 list1=list1+list2 list1=list1.extend(list2) #结果是一样的 3.sort 与 sorted 区别: #http://www.runoob.com/python3/python3-func-sorted.html sort是list的,但是sorted 可以对所有可迭代的对象进行排序操作。 list1.sort() sorted(list1) 4.在linux下编辑文件 缩进使用4个空格,linux类默认是空格,如果用Tab那就必须全换成Tab 5.软链的使用 20180329设置python3软链时get ln -s /usr/local/python3/bin/python3 /usr/bin/python 设置软连后,会创建一个文件, 如果错误了,需要删除在设置 6.Python中的None # https://blog.csdn.net/baicaiye/article/details/72922197 7.在闭包中return funX 与return funX() 是有区别的 funX是返回函数, funX()是执行函数
资源:1.[小甲鱼]零基础入门学习Pythonhttps://www.bilibili.com/video/av4050443/?from=search&seid=106608230118757784782.基于资料1中视频的官网,鱼C论坛有很多资料http://bbs.fishc.com/forum-243-1.html3.字符串内置方法http://bbs.fishc.com/thread-38992-1-1.html4.Python及bs4、lxml、numpy模块包的安装http://blog.csdn.net/tiantiancsdn/article/details/510464905.Python 关键字https://blog.csdn.net/liang19890820/article/details/684883926.python内置函数大全https://www.cnblogs.com/pyyu/p/6702896.html前言1.版本学习3.0,很多语法不兼容2.52.安装下载3.6.4版本软件:Sublime Text 3 , python自带IDLE3.Bif 与 函数Sublime Text3 安装:略SublimeREPL插件: #可以直接输命令`安装:#http://blog.chinaunix.net/uid-12014716-id-4269991.html使用:#https://www.cnblogs.com/yshuangj/p/6404372.html
python IDLE快捷键Alt+N Alt+P 可以查找以前输入的命令用于补全当前命令
库的使用: #参考资料41.使用pip安装,安装pipCMD到相应目录 : easy_install.exe pip2.库的安装from bs4 import BeautifulSoup#pip3 install beautifulsoup4from urllib import request #python3自带lxml解析器#pip install lxml学习://参考资料1视频1.常用语法 与 基础print("jiuya"+" java")print("jiuya"*3)print("jiuya\n"*3) #换行缩进是python的灵魂,需要正确的使用缩进dir(__builtins__) #查看python有多少内置函数bif,里面不是所有都是bif,纯小写的是help(input) #查看input作用print('jiuya\'! java') #字符串单引双引,需要转义str = r'D:\Java\tomcat' #在字符串前加r 全部自动给字符转\变成\\str='''大大大#三重引号可以自动给字段加\n大大大adadavsxv'''if a==0:print('xxx')else:print('xxx')3>2 and 1<2 #逻辑操作符 and%d 只能输出整数,int类型%f 输出浮点数%s 输出stringtype() #查看数据类型isinstance(320,int) #判断数据类型,2参数:1.待确定参数,2.指定 , 返回True/False 2.引入模块random :randint() #random模块中randint()函数会返回一个随机整数import math #引入数学模块3.python数据类型str , float , bool , int
4.算数操作符+ - * / % ** // #**冥运算 //float地板除法 去掉小数点后面的>>> a=10>>> b=9.999>>> a//b1.0>>> a/b1.000100010001>>> b/a0.9999>>> b//a0.0>>>3**2 # 3*395.比较操作符< <= > >= != ==6.逻辑操作符and or not 并 或 非>>>not True False>>>not 0True>>>not 4False>>>3 <4 <5True7.分支循环 #其它和java差不多if 条件:print()elif 条件:print()elif 条件:print()else:print()8.条件表达式(三元操作符)#2.5版本添加的small= x if x<y else y9.断言 assert >>>assert 3>4 #当这个关键字后面条件为假,程序自动崩溃并抛出AssertionError的异常10.while循环11.for循环member = ['fafa','啊a啊','搜索','嗯嗯']for each in member:print(each,len(member))12.range()语法:range([strat,] stop[,step=1])#这个bif有三个参数,两个可选,step默认是1>>> range(5)range(0, 5)>>> list(range(5))[0, 1, 2, 3, 4]>>> for i in range(2,9):print(i)2345678>>> for i in range(1,10,2):print(i)1357913.列表[]普通列表,混合列表,空列表member = ['fafa','啊a啊',3.14,[1,2,3]]添加元素:member.append(4) #追加member.extend([5,6]) #扩展member.insert(0,'法防')member.remove('fafa')del member[1]#del 是个语句不是方法member.pop() #弹出;列表最后一个,弹出后列表没有该元素,可以有索引member.pop(1) #弹出索引值为1的元素列表分片:member[1:3]#不包含3,不改变列表member[:3]14.列表上的常用操作符、比较,逻辑,连接,重复,成员关系 (list1 > list2) and (list1 == list3)>>>list1 = list1 + list3>>>list1 * 3 #复制三遍,不改变列表>>>list1 *= 3 #改变列表>>>123 in list1 #返回bool,判断1层列表>>>123 not in list1#list1 = [123,['aa','bb'],44]>>>'aa' in list1[1] 15.列表类型的内置函数dir(list) #列举 list内置函数list1.count(123) #计算123在list1中出现多少次list1.index(123) #找到第一个出现的位置list1.index(123,2,5) #指定范围list1.reverse() #翻转list1.sort() #排序 小到大list1.sort(reverse=True) #大到小16.元组:戴上枷锁的列表 tuple#元组与list使用上非常相识,不可以被修改创建和访问>>> tuple1=(1,2,3,4,5) >>> tuple1[1] 2>>> tuple1[3:] (4, 5)#元组重点是, 不是()>>> tuple1=1,2,3>>> tuple1=1,更新和删除#以分片重组的方式>>> tuple1=(1,2,3,4,5) >>> tuple1=tuple1[:2]+(3.5,)+tuple1[2:](1,2,3,3.5,4,5) 元组相关操作符+ 拼接操作符* 重复操作符in 成员操作符not in成员操作符17.字符串内置方法#http://bbs.fishc.com/thread-38992-1-1.html切割>>> str='12345'>>> str[:3]'123'拼接>>> str1=str[:3]+'插入'+str[3:]>>> str'12345'>>> str1'123插入45'capitalize() #把字符串的第一个字符改为大写>>> str2='abcdef'>>> str2.capitalize()'Abcdef'casefold() #把整个字符串的所有字符改为小写center(width) #将字符串居中,并使用空格填充至长度 width 的新字符串count(sub[, start[, end]]) #返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。encode(encoding='utf-8', errors='strict') #以 encoding 指定的编码格式对字符串进行编码。endswith(sub[, start[, end]]) #检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。expandtabs([tabsize=8]) #把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。find(sub[, start[, end]]) #检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。index(sub[,start[,end]]) #与find差不多,如果sub不在字符串中会产生一个异常isalnum() #字符串至少有一个字符,字母数字都可以,有True 无falseisalpha() #至少一个,只能是字符串 true falseisdigit() #只包含数字islower() #只能是小写replace(old, new[, count]) #把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。strip([chars]) #移除字符串头尾指定的字符(默认为空格)....18.字符串格式化#Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。>>>"{0} love {1}.{2}".format('I','rekoo','com')格式化符号:#http://www.runoob.com/python3/python3-string.html %c 格式化字符及其ASCII码 %s 格式化字符串 %d 格式化整数 %u 格式化无符号整型 %o 格式化无符号八进制数 %x 格式化无符号十六进制数 %X 格式化无符号十六进制数(大写) %f 格式化浮点数字,可指定小数点后的精度 %e 用科学计数法格式化浮点数 %E 作用同%e,用科学计数法格式化浮点数 %g %f和%e的简写 %G %f 和 %E 的简写 %p 用十六进制数格式化变量的地址>>> '%c' %97 'a'>>> '%c%c%c' %(97,98,99)'abc'格式化操作符辅助指令:#http://www.runoob.com/python3/python3-string.htmlm.n. #一般配合%f使用, m是总宽度,n是小数点后位数转义符号:....19.序列#列表,元组,字符串Bif: #内置方法#help(list)list() #可迭代对象转listtuple()#可迭代对象转tuplelen(sub)#返回长度max()#返回最大sum()sorted()zip() # 打包为元组的列表reversed() #反转,是一个对象,需要list()20.函数def MyFunction(name,word):print('ssss')属性:MyFunction.__doc__参数:关键字参数: 可以用在function 上也可以用在, 调用时内部/内嵌 函数:def fun1():print('fun1调用')def fun2():print('fun2调用')fun2()21.闭包def funX(x):def funY(y):return x * yreturn funY使用闭包:>>>i=funX(8)>>>i(5)40>>>funX(8)(5)>>>4022.lambda 表达式#创建函数,省下定义函数过程, 把函数变成一句话函数>>>t=lambda x:2*x>>>t(5)1023.递归24.字典 #dict 映射类型, K/V 字典是python唯一的映射类型 #不用索引时, 就可以用字典,# http://www.runoob.com/python/python-dictionary.htmls={'a':'A','b':'B','c':'C'}25.集合#sets={'a','b','c'}s=set(['元组/列表/str'])1.具有唯一性, 2.无序3.不支持索引方法:v in setset.add(v) .remove(v)不可变集合:frozen:冰冻的frozenset([1,2,3,4])26.输入 输出 处理open() 函数用于打开一个文件,创建一个 file 对象# http://www.runoob.com/python/python-func-open.htmlopen(name[, mode[, buffering]])打开模式:r只读(默认), w写 覆, a写 追加 方法:.close().read(size=-1).readline() #写入模式打开,文件存在,末尾追加.write(str) #将str写入文件
00.Python关键字global定义全局变量 #可以把函数中局部变量变成全局函数nonlocal 与global使用是一样的 #细节自己百度吧00.内置函数:filter(function, iterable) #过滤器#>>>list(filter(lambda x:x%2,range(10))) #[1,3,5,7,9]map(function, iterable, ...) #遍历每个元素,执行function操作#>>> list(map(lambda x:x*2,range(10))) 把range生成的值, 放入前面函数得到加工后的值#[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]命令/关键字:scrapy:scrapy startproject XXXXX //创建项目yieldpython:
问题:1.list的分片拷贝与直接赋值list1=list2[:]#创建一个空间lisr1=list2 #使用同一个地址,只是多了一个指向2.list拼接list1=list1+list2list1=list1.extend(list2)#结果是一样的3.sort 与 sorted 区别:#http://www.runoob.com/python3/python3-func-sorted.html sort是list的,但是sorted 可以对所有可迭代的对象进行排序操作。list1.sort()sorted(list1)4.在linux下编辑文件 缩进使用4个空格,linux类默认是空格,如果用Tab那就必须全换成Tab5.软链的使用20180329设置python3软链时getln -s /usr/local/python3/bin/python3 /usr/bin/python设置软连后,会创建一个文件, 如果错误了,需要删除在设置6.Python中的None# https://blog.csdn.net/baicaiye/article/details/729221977.在闭包中return funX 与return funX() 是有区别的funX是返回函数, funX()是执行函数