我的Python学习
文章平均质量分 76
最近对Python起了好奇心,记录一下学习历程
心雨先生
做一条有理想的咸鱼
展开
-
Python中的正则表达式和示例
模块正则表达式(RE)指定与其匹配的一组字符串(模式)。为了理解RE的类比,MetaCharacter是有用的,重要的,并且将在模块re的功能中使用。一共有14个元字符,将在功能中进行讨论:\用来掉落字符的特殊含义 跟随它(在下面讨论)[]代表角色类别^匹配开头$匹配结尾。匹配换行符以外的任何字符?匹配零个或一个匹配项。| 表示OR(与任何字符匹配 被它分开。*任意次数(包括0次)+一次或多次{}指示先前RE的出现次数 匹配。()附上一组RE函数compile()将...转载 2020-07-17 08:36:32 · 173 阅读 · 0 评论 -
3.2.5 Python金融数据下载和图表展示
1,下载YAHOO上的数据首先,安装pandas_datareader和fix_yahoo_financepip install pandas_datareaderpip instll fix_yahoo_financepandas_datareader解决pandas.io.data迁移之后包的获取问题fix_yahoo_finance解决无法获取 yahoo 金融数据的问题>>&g...原创 2018-05-02 10:46:38 · 980 阅读 · 1 评论 -
3.2.4 Python读取CSV文件
CSV是一种通用的、相对简单的文件格式,在表格类型的数据中用途很广泛,很多关系型数据库都支持这种类型文件的导入导出,并且Excel这种常用的数据表格也能和CSV文件之间转换。逗号分隔值(CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。我在D://test.csv文件里面随便添加内容最简单直接的方法,是用open()打开:>>&g...原创 2018-05-02 09:40:06 · 450 阅读 · 1 评论 -
3.2.3 Python之pandas详解2-DataFrame
2)DataFrame介绍DataFrame是一种二维的数据结构,非常接近于电子表格或者类似MySQL数据库的形式。它的竖行称之为columns,横行跟前面的Series一样,称之为index,也就是说可以通过columns和index来确定一个主句的位置。>>> import pandas as pd>>> from pandas import Series,...原创 2018-04-28 10:03:35 · 476 阅读 · 0 评论 -
3.2.2 Python之pandas详解1-Series
Pandas是基于NumPy的一个常用库。之所以如此,是因为不论是读取还是处理数据,用它都非常简单。1,pandas基本数据结构Pandas有两种自己独有的基本数据结构。pandas虽然有两种数据结构,因为他是Python的一个库,所以Python的数据类型在这里依然适用,同样还可以使用类自己定义数据类型。Pandas里面又定义了两种数据类型:Series和DataFrame基本的导入方式:fro...原创 2018-04-28 09:11:23 · 452 阅读 · 1 评论 -
3.2.1 Python计算前的准备-计算包安装
说到python,很多人肯定第一意识会想到计算,没错Python在计算方面比别的方面更强大。特别是在数据分析、机器学习等方面,python给力人们很大的惊喜。1,了解计算机本来就是做计算的,只不过一般在生活当中我们最多的就是用它来处理文字内容罢了,乃至于现在有一些人认为她是用来打字写文章的,却忘记了她最擅长的计算。每种编程语言都能用来做计算,区别是在编程过程中是否有足够的工具包供给。R语言,也是在...原创 2018-04-27 10:54:35 · 355 阅读 · 1 评论 -
3.1.10 Python用户验证
用户登录之后,当跳转到该网站别的页面时,往往需要验证用户是否处于登录状态。当然,你也可以在跳转到每个页面时,都从Cookie中读取登陆后存进去的用户信息。但是,如果这个过程总让用户自己来做,框架的作用就显不出来了。Tornado就提供了一种用户验证方法。在handler目录中增加一个文件,名称是base.py,内容:#!/usr/bin/env python# coding=utf-8'''Cre...原创 2018-04-25 11:19:37 · 504 阅读 · 1 评论 -
3.1.9 Python跨站请求
XSRF的含义是Cross-site request forgery,即跨站请求伪造,这种对网站的攻击方式跟上面的跨站脚本(XSS)似乎相像,但攻击方式不一样。XSS利用站点内的信任用户,而XSRF则通过伪装来自受信任用户的请求而利用受信任的网站。与XSS攻击相比,XSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。注意:再开发过程中任何会产生副作...原创 2018-04-24 11:14:39 · 592 阅读 · 1 评论 -
3.1.8 Python中的cookie和安全
cookie是现在网站重要的内容,特别是当有用户登录的时候,所以有必要去学习和了解一下cookie。因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。cookie就是用来绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取cookies中包含的信息,借此维护用户跟服务器会话中的状态。cookie另一个典型的应用是,当登录一个网站时网站往...原创 2018-04-24 10:20:31 · 674 阅读 · 1 评论 -
3.1.7 Python 中的页面模版继承
前面网站实践4中,已经介绍过模版了,仔细观察一下会发现2个页面有很多重复的功能,这样我们就能使用继承来实现重复功能的复用。在Tornado的模板中,是可以使用继承的。先建立一个基础页面模版templates/base.html页面<!DOCTYPE html><html><head> <meta charset="UTF-8"> <meta n...原创 2018-04-23 14:59:12 · 605 阅读 · 1 评论 -
3.1.6 Python简单网站实践4
7,模版Tornado提供比较好用的前端模板(tornado.template),通过这个模板,能够让前端编写更方便。render():render()方法能够告诉Tornado读入哪个模板,插入其中的模板代码,并返回结果给浏览器。比如在IndexHandler类中get()方法里面的self.render("index.html"),就是让Tornado到templates目中找到名为index...原创 2018-04-23 10:00:46 · 357 阅读 · 1 评论 -
3.1.5 Python简单网站实践3
5,数据传输在建立了前端表单之后,就要实现前端和后端之间的数据传递。在工程当中最常用的是Ajax()Ajax是“Asynchronous Javascript and XML”(异步JavaScript和XML)的缩写;jQuery,里面就有Ajax()方法,能够让程序员方便地调用。Ajax()方法通过HTTP请求加载远程数据。该方法是jQuery底层AJAX实现。简单易用的高层实现如$.get、...原创 2018-04-20 10:26:22 · 364 阅读 · 1 评论 -
3.1.4 Python简单网站实践2
3,连接数据库数据库是一个健全网站必不可少的这里使用MySQL做数据库在前面的架构目录结构中,找到methods,在里面创建db.py文件,然后在里面分别建立起连接对象和游标对象:#!/usr/bin/env python# coding=utf-8'''Created on 2018年4月19日数据库连接'''import MySQLdbconn = MySQLdb.connect(host="...原创 2018-04-19 09:45:23 · 386 阅读 · 1 评论 -
3.1.3 Python简单网站实践1
下面做一个简单的,可以说是简陋的网站,来实践一下;但是网站的主要元素都会涉及,过此动手,能够了解网站的开发基本结构和内容,并且对前面的知识可以有综合应用。1,基本结构可以用下图来概括:a)前端在网站中,所谓前端就是指用浏览器打开之后看到的那部分,它呈现网站传过来的信息的界面,也是用户和网站之间进行信息交互的界面。一般使用HTML/CSS/JS?JQuery来实现,当然你用别的形式也行,但是可能后期...原创 2018-04-18 10:33:10 · 405 阅读 · 0 评论 -
3.1.2 Python代码分析
代开Python代码编辑器,编写下面代码:#! /usr/bin/env python#coding:utf-8import tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webfrom tornado.options import define,optionsdefine("port",de...原创 2018-04-17 14:39:51 · 345 阅读 · 0 评论 -
3.1.1 Python Tornado网站准备
作为一个程序员一定要会做网站,一定要做过网站,我认为这是程序员的标配了。首先,要有一台自己的服务器(没有服务器自己电脑虚拟机也行)。然后,在这台服务器上做一些必要的配置。接下来,就是安装一个框架,这里用的是Tornado框架。1,开发框架框架的功能类似于基础设施,与具体的软件应用无关,但是提供并实现最为基础的软件架构和体系。软件开发者通常依据特定的框架实现更为复杂的商业运用和业务逻辑。这样的软件应...原创 2018-04-17 09:52:49 · 637 阅读 · 0 评论 -
2.4.5 Python存储之表格
提到表格,肯定会首先想到Excel;其实,除了微软的电子表格,在Linux系统中也有很好的电子表格,Google也提供了不错的在线电子表格。从历史到现在,电子表格都有很广泛的用途。所以,Python也要操作一番电子表格,因为有些数据,就是存在于电子表格中。1,openpylopenpyl模块是解决Microsoft Excel 2007/2010之类版本中扩展名是Excel 2010 xlsx/x...原创 2018-04-16 14:48:21 · 1306 阅读 · 0 评论 -
2.4.4 Python存储之SQLite
SQLite是一个小型的关系型数据库,它最大的特点在于不需要服务器、零配置。前面的MySQL需要“安装”,安装之后,才运行起来,其实是已经有一个相应的服务器在跑着呢。而SQLite不需要这样,首先Python已经将相应的驱动模块作为标准库一部分了,只要安装了Python,就可以使用;另外,它也不需要服务器,可以类似操作文件那样来操作SQLite数据库文件。还有一点也不错,SQLite源代码不受版权...原创 2018-04-16 09:52:23 · 524 阅读 · 0 评论 -
2.4.3 Python存储之MySQL
前面说得都是数据存储到磁盘里,但是还有更快捷方便的方法,就是存储到数据库。MySQL是一个使用非常广泛的数据库,很多网站都使用它。MySQL由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的网站中。1,安装MySQL这里介绍Centos系统的安装,(Windows系统的很简单,根据提示安装就行)打开shell端依次运行:yum -y install m...原创 2018-04-13 10:36:33 · 296 阅读 · 0 评论 -
2.4.2 Python存储之shelve
pickle模块只能处理一些不太复杂的数据,当处理复杂数据的时候再用pickle就会显的很麻烦,于是就有了shelveshelve是Python标准库中的一个模块写入数据:>>> import shelve>>> a = shelve.open("D://shelve.txt") #打开文件>>> a["name"] = "zhang原创 2018-04-12 10:19:17 · 343 阅读 · 0 评论 -
2.4.1 Python存储之pickle
pickle是标准库中的一个模块,还有跟它完全一样的叫作cpickle,两者的区别就是后者更快,所以,在操作中,不管是用import pickle,还是用import cpickle as pickle,在功能上都是一样的。>>> import pickle>>> a = [1,2,3,4,5]>>> f = open("D://test.tx...原创 2018-04-12 09:44:58 · 269 阅读 · 0 评论 -
2.3.5 Python第三方库
python的支持的不仅仅有标准库,更重要的还支持海量的第三方库。1,安装第三方库第一个方法:源码安装在网上下载第三方库的源码,一般github上源码的来源比较全,得到的源码可以进行本地安装。如果你下载的是一个文件包,即得到的源码格式为zip或tar.zip或tar.bz2的压缩文件,需要先解压缩,然后进入其目录(文件夹);如果你能熟练使用git命令,可以直接从github中clone源码到本地计...原创 2018-04-11 10:49:50 · 307 阅读 · 0 评论 -
2.3.4 Python和JSON
XML是一种传递数据的格式,还有一种常用的传递数据格式—JSON,它是一种轻量级的数据交换格式,如果要做Web编程,则会用到它。JSON建构于两种结构:“键/值”对的集合值的有序列表Python标准库中有JSON模块,主要执行序列化和反序列化功能。序列化:encoding,把一个Python对象编码转化成JSON字符串。反序列化:decoding,把JSON格式字符串解码转换为Python数据对象...原创 2018-04-10 10:17:44 · 279 阅读 · 0 评论 -
2.3.3 Python和XML
XML在软件领域用途非常广泛XML指可扩展标记语言(EXtensible Markup Language)。XML是一种标记语言,很类似于HTML。XML的设计宗旨是传输数据,而非显示数据。XML标签没有被预定义,你需要自行定义标签。XML被设计为具有自我描述性。XML是W3C的推荐标准。常用属性如下:tag:string,元素数据种类。text:string,元素的内容。attrib:dicti...原创 2018-04-09 14:53:55 · 224 阅读 · 0 评论 -
2.3.2 Python自带标准库
Python在安装的时候,就有不少模块也随之安装到本地计算机上。我们能够轻易的免费去使用他,也就着“自带电池”那些在安装Python时就默认已经安装好的模块被称为“标准库”。熟悉使用标准库,是Python开发必掌握的技能之一。1,引用方式所有模块都服从下面引用方式,这是最基本的,也是最常用的方式:import modulename例如:>>> import pprint>&...原创 2018-04-09 11:18:34 · 3074 阅读 · 0 评论 -
2.3.1 Python模块
Python的强大,就在于它不仅有自带的模块(标准库),还有海量的第三方模块(库),还有很多开发者不断的贡献自己开发的新模块,正是因为有了他,Python才显的强大。模块的本质就是开放。Python不是一个封闭的系统,而是一个开放的系统,开放的好处就是避免“熵增”,意思就是开放系统则能避免无序化。>>> import math>>> math.pow(4,2)1...原创 2018-04-08 10:43:35 · 198 阅读 · 0 评论 -
2.2.2 Python异常的处理
对于Python运行当中,遇到异常Python是怎么显示和处理的:#!/usr/bin/env python#coding=utf-8while True: print "这是数据输入入口。" a = raw_input("继续请输入:true,其他输入退出:") if a == 'true': b = raw_input("第一个数:") c = r...原创 2018-04-04 10:25:02 · 685 阅读 · 0 评论 -
2.2.1 Python中的错误和异常
1,错误在编程的过程中错误是在所难免的,有可能写错了,少符号之类的等等。这就需要我们自己去进行调试修改了。首先需要了解错误。SyntaxErrors:语法错误Python中的常见错误之一>>> for i in range(10)SyntaxError: invalid syntax上面那句话因为缺少冒号“:”(英文半角),导致解释器无法解释,于是报错逻辑错误,是在没有语法错误时...原创 2018-04-03 16:05:04 · 832 阅读 · 0 评论 -
2.1.9 Python生成器
生成器(generator),被认为是Python的高级编程技能,想要深入的学习Python,生成器是必须要了解的。生成器和迭代器有点类似,但是又完全不相同。1,了解生成器>>> my_first = (x*x for x in range(4)) #生成器>>> my_list = [x*x for x in range(4)] #列表>>>...原创 2018-04-03 11:26:10 · 222 阅读 · 0 评论 -
2.1.8 Python中的迭代器
迭代器其实已经用过很多次了。__iter__就是对象的一个特殊方法,它是迭代规则(iteratorpotocol)的基础。如果对象没有它,就不能返回迭代器,就没有next()方法,就不能迭代。1,__iter__()用dir(list)、dir(tuple)、dir(file)、dir(dict)来查看不同类型对象的属性,会发现它们都有__iter__类型是list、tuple、file、dict...原创 2018-04-02 14:12:28 · 189 阅读 · 0 评论 -
2.1.7 Python中一些特殊属性和方法
在Python一些类中,通常能看到用双画线“__”开头和结尾的属性和方法,总归为特殊属性。他和我们自己所写的非"__"开头和结尾的属性方法有一些区别。1,__dict__>>> class test(object): print "这是个测试" 这是个测试>>> t = test()>>> dir(t)['__class__', '__dela原创 2018-04-02 13:21:56 · 459 阅读 · 0 评论 -
2.1.6 Python封装and多态
多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。1,多态可以用程序来理解多态>>> z = lambda x,y:x+y>>> z(1,2)3>>>...原创 2018-03-29 11:30:42 · 271 阅读 · 0 评论 -
2.1.5 Python方法详解
了解了类,后面必须要了解方法。在编程当作最常见的就是实例化类,然后通过实例化来调用方法。总的可以看出来:1)方法是定义在类里面的函数,这个函数默认第一个参数是self2)调用方法,一般必须把类实例化后,再来调用方法,调用方法的时候后面必须加括号。通过实例化调用方法,一般我们看着把方法绑定在实例上。1,绑定方法和非绑定方法绑定方法,我们一般这样用>>> class Wife(obj...原创 2018-03-29 10:15:25 · 212 阅读 · 0 评论 -
2.1.4 Python继承
1,继承的基本概念继承是非常重要的,因为继承让我们能够延续以前的东西,“继承”意味着一个人从另外一个人那里得到了一些什么。高级编程语言中的“继承”,跟通常理解的继承会有所不同。“继承”在高级编程语言中是一个非常重要的概念。虽然不用继承一样能够编写程序,但是,当我们追求程序的更高阶层时,继承的作用就显现出来了。继承(Inheritance)是面向对象软件技术当中的一个概念。如果一个类别A“继承”自另...原创 2018-03-28 14:44:53 · 254 阅读 · 0 评论 -
2.1.3 Python类有关的几个概念
1,类属性和实例属性一个类实例化后,实例是一个对象,它有属性。不要忘记,Python中的类也是一个对象,且也有属性。所以就有了“类属性”和“实例属性”两个属性。>>> class A(object): x =7在交互模式下,定义一个很简单的类,类中有一个变量x=7>>> A.x7在类A中,变量x所引用的对象,能够直接通过类调用。或者说x是类A的属性,这就是所谓的...原创 2018-03-27 14:46:55 · 167 阅读 · 0 评论 -
2.1.2 Python详解类
1,新式类和旧式类Python 2.x的版本中,有“新式类”和“旧式类(也叫做经典类)”之分。新式类是Python 2.2引进的,在此后的版本中,我们一般用的都是新式类。注意,如果你用的是Python 3,就不用为新式类和旧式类而担心了,因为在Python 3中压根儿就不存在这个问题。定义一个简单的类:>>> class A: pass这定义了一个非常简单的类,而且是旧式类。然后...原创 2018-03-26 16:42:43 · 351 阅读 · 0 评论 -
2.1.1 Python类的基本概念
类,它对应的是英文单词class,“类”是由class翻译过来的,你就把它作为一个翻译术语吧。除了“类”这个术语外,还要经常提到OOP,即面向对象编程(或者“面向对象程序设计”)。所谓“术语”,可以粗浅地理解为某个领域的“行话”,比如在物理学里面,有专门定义的“质量”、“位移”、“速度”等,这些术语有的跟日常生活中的俗称名字貌似一样,但是所指有所不同。“术语”的主要特征是具有一定的稳定性,并且严谨...原创 2018-03-26 10:46:10 · 287 阅读 · 3 评论 -
1.3.2 Python特殊函数
1,递归递归不是函数,而是一种思想。>>> def fib(n): if n==0: return 0 elif n==1: return 1 else: return fib(n-1)+fib(n-2)>>> fib(3)2>>> fib(10)55fib(n-1)+fib(n-2)就是又调用了这个函数自己,实现递归。2,特殊函数Pyt...原创 2018-03-21 10:43:02 · 498 阅读 · 0 评论 -
1.3.1 Python中的名词和参数收集
1,参数和变量在定义函数的时候(def来定义函数,称为def语句),函数名后面的括号里如果有变量,它们通常被称为“形参”。调用函数的时候,给函数提供的值叫作“实参”,或者“参数”。>>> def test(x): #x是参数,准确说是形参 a=2 #a是变量 return a+x #x就是那个形参作为变量,其本质是要传递赋给这个函数的值>>> x=3 #...原创 2018-03-21 09:46:20 · 297 阅读 · 0 评论 -
1.3.0 Python函数-理解函数
在中学数学中,可以用这样的方式定义函数:y=4x+3,这就是一个一次函数,当然,也可以写成:f(x)=4x+3。其中x是变量,它可以代表任何数。变量x只能是任意数吗?其实,一个函数,就是一个对应关系。x不仅仅是数,还可以是你认为的任何东西。变量本质上是占位符定义函数的格式为:def 函数名(参数1,参数2,...,参数n):函数体(语句块)1,创建简单函数>>> a=2>&...原创 2018-03-20 11:10:58 · 378 阅读 · 0 评论