
Python
书和咖啡
学习python的小侠客
展开
-
Flask框架
什么是Flask框架Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它是由Armin Ronacher开发的,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正式的项目。Flask是目前十分流行的web框架,Flask也被称为microframework,即微框架。这里的”微“并不是意味着把整个Web应用放入...原创 2019-11-11 11:27:21 · 1137 阅读 · 0 评论 -
Day2:Python解释器
今天学习如何安装Python,搭建一下Python的虚拟环境,和安装Python的包管理器等,感觉是挺麻烦的啦,每次就是被这种虚拟环境什么的搞的晕头转像的,但是想学Python这是必不可少的步骤,那就直接开始咯(< V >)。1.Python版本详细介绍安装Python之前得先了解一下Python的版本吧,看看选择哪个比较好。经了解目前默认的主流操作系统目前都是Python 2....原创 2019-01-17 17:11:58 · 203 阅读 · 0 评论 -
Dya3:Python的开发工具
今天要学习的是Python的开发工具哇( ⊙o⊙ ),主要做的就是下载安装pycharm,安装一下ipython和Jupyter等。1.Python IDE1: IDE Integrated Development Environment 集成开发环境2:Python 开发可以选用的IDE ①:Pycharm: jetbrains 出品 ②:VSCode:Microsoft ...原创 2019-01-18 15:28:52 · 200 阅读 · 1 评论 -
Day4:Python的官方文档介绍及开始编写Python程序
什么是程序在我们程序开发之前,我们先来了解一下什么是程序?算法 + 数据结构 = 程序,数据是程序的驱动力,数据结构是对数据的包装,算法是处理数据的方式,这个概念有点抽象吧,我们先简略的了解一下就好。Python官方文档学会看官方文档,一直是所有语言、所有程序员必须要会的基本能力,目前我是围绕Python3.学习的,所以需要学会查看Python 3.x的文档(大家视情况而定哟)~文档查询...原创 2019-01-21 09:44:40 · 147 阅读 · 0 评论 -
Day5:整型、浮点型的运算
配置PyCharm字体大小简单的提一下配置PyCharm字体(个人觉得默认字体太小了),mac系统:PyCharm->Prefereemces- >Editor->Font,Windows系统:File->Settings->Editor->Font。Python语法规范在Python编程中,特别特别需要注意语法规范,写代码原创 2019-01-21 15:25:21 · 2068 阅读 · 0 评论 -
Day6:Python控制流
控制流是什么呢,简单来说就是控制代码执行的流程,类似汽车方向盘一样,控制方向往那边走的意思。1.顺序控制流使用顺序控制流的时候,首先我们需要判断if条件的真假,而这时需要用到真值表; 一般来说,0、"" 空字符串、() 空元组、[] 空列表、{} 空字典、None 等空值的都为 False;而像1、“Str” 字符串等有值的都为 True;2.分支控制流分支控制流,就是除了 if 和原创 2019-01-22 13:45:27 · 119 阅读 · 0 评论 -
Day8:元组
今天又是愉快的一天呢(^U^) ,太阳真好,暖暖的很贴心。1.元组的概念(记住元组是不可变的)python中的元组是有序元素组成的集合;元组与列表类似,与列表的区别在于,元组是不可变的,一旦定义,就不能修改。2.如何定义元组 t = tuple() #定义 t = () #定义 t = tuple(range(0,10)) #返回:(...原创 2019-01-24 14:28:31 · 271 阅读 · 0 评论 -
Day9:字符串
今天开始学习字符串,字符串是 Python 中最常用的一种数据类型。还有字符串的一些基础知识。1.字符串的表示方式a = 'hello'a = "hello"a = '''hello'''a = """hello""" #三个引号表示多行字符串,多字符串可以使用制表符和换行符print(a) #全部输出为:helloPython中字符串有四种表达形式,分别是:' ...原创 2019-01-25 15:15:59 · 202 阅读 · 0 评论 -
Day14:时间
1.什么是时间数据类型Python中表示时间类型的数据结构为时间数据类型;2.time模块import time# 获取当前时间的时间戳print(time.time()) #输出:1548742426.1698806# 返回当前时间的元组t = time.localtime()print(t)#输出:time.struct_time(tm_year=2019, tm_mo...原创 2019-01-31 14:48:34 · 247 阅读 · 3 评论 -
Day10:字节
1.utf-8编码格式大家知道unicode的存储效率低,会浪费很多空间,因此在保存文本时,很多时候并不是用unicode编码方式,有很多其他的编码,utf-8,gbk,还有日文,韩文编码等;而我们写python程序的时候通常都是使用utf-8编码格式来存储编码格式,网页里面同样的也声明utf-8即可;utf-8是中文、英文、日文等全球文字都可以使用的编码格式,通用性很强。2.了解by...原创 2019-01-26 17:08:14 · 156 阅读 · 0 评论 -
Day15:解析式与生成器
今天要学习的是解析式与生成器,马上就过年了,过年了,过年了~~1.列表解析式列表解析式是将数据全部存储在内存中一并返回;# 将lst1的元素+100,导入到lst2lst1 = list(range(10))lst2 = []for item in lst1: lst2.append(item+100)print(lst2) #输出:[100, 101, 102, 1...原创 2019-02-01 11:48:47 · 185 阅读 · 0 评论 -
Day1:Python发展历史和发展方向
这是我学习Python的第一天,我打算把每天的学习内容记录下来,方便以后自己翻阅查看,今天学习了Python发展历史和发展的方向,感觉这种知识比较抽象,先了解一下。1.Python语言的创始人及Python是什么类型的语言Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一...原创 2019-01-16 17:43:46 · 473 阅读 · 0 评论 -
Day11:集合
今天学习一种新的数据类型,集合,集合也是Python很常用到的基本数据类型~1.什么是集合集合(set)是Python的一种基本数据类型;集合是一个无序的不可重复元素序列,集合是可变的。集合的元素必须是可以hash类型的;集合不可以使用索引访问,因为set无序,但是可以被迭代;可以hash类型:数值类型,布尔类型,字符串类型,bytes,元组,None等;不可...原创 2019-01-28 11:32:17 · 342 阅读 · 0 评论 -
Day7:列表
今天要学习的是Python的列表,主要学习一下什么是列表、列表的可变性、列表的访问、列表的增删改查等操作哦~1.什么是列表Python中的列表有点类似与C语言中的数组的概念;python中的列表是可变的,且列表内部由元素组成,元素可以是任意对象,如整形、浮点型、字符串、其他类的对象、实例等都可以作为列表的元素。2.列表的可变性a = 1print(id(a)) #输出:262...原创 2019-01-23 17:01:30 · 146 阅读 · 0 评论 -
Day12:字典
1.什么是字典字典就是key-value键值对数据的集合(且key不可重复);字典是可变的,无序的;字典中,key必须是可哈希的数据类型;2.字典的定义定义字典可以使用d = dict() 或者 d = {}两种方法;d = dict() #定义字典d = {}使用键值对的方式初始化字典;d = {'a':1, 'b':2}print(d) #...原创 2019-01-29 15:14:19 · 203 阅读 · 0 评论 -
Day17:函数的返回值与嵌套函数
1.什么是返回值返回值指的是函数返回的结果;return执行完毕后面的语句将不会再执行;def add(x, y): print(x, y) #输出:10 20 return x + y # 返回值, return以后的语句将不会再执行 print(x) print(y)add(10,20)如果一个函数里面有两个return,前面r...原创 2019-02-15 13:53:56 · 624 阅读 · 0 评论 -
Day21:装饰器
今天要学的是装饰器,装饰器在python中会经常使用到,且装饰器在不同场景下使用也不同,那到底什么是装饰器呢?1.什么是装饰器装饰器其实就是一个闭包,把一个函数当做参数然后返回一个替代版函数;装饰器的功能在于对函数或类功能的增强,这是一种低耦合的功能增强;2.装饰器特点开放封闭原则,即对扩展是开放的,对修改时封闭的;装饰器本质可以是任意可调用的对象,被装饰的对象也可...原创 2019-02-21 13:58:03 · 178 阅读 · 0 评论 -
Day13:容器类型数据结构的封装与解构
今天要学习的是容器类型数据结构的封装与解构,重点学习一下解构,解构可是有好几种形式的,一起看看吧~1.什么是容器类型的数据结构?能够装载元素的数据结构就可以定义为容器类型的数据结构(就是储存大量数据的容器);容器类型的数据结构包括:list列表, tuple元组, set集合, dict字典;2.封装t = 1,2,3,4,5print('value: {}, type: ...原创 2019-01-30 15:42:13 · 212 阅读 · 0 评论 -
Day22:参数注解
1.函数定义的弊端python是动态语言,变量随时可以被赋值,且能赋值为不同的类型,动态语言很灵活,但是这种特性也是弊端;难发现:由于不做任何类型检查,直到运行期问题才显现出来,或者线上运行时才能暴露出问 题 ;难使用:函数的使用者看到函数的时候,并不知道你的函数的设计,并不知道应该传入什么类 型的数据;解决办法:可以通过增加文档Documentation String(帮助文档)和使用...原创 2019-02-22 15:00:08 · 188 阅读 · 0 评论 -
Day25:文件操作修改模块
学习os模块、pathlib模块、sys模块、shutil模块、copy模块的操作~1.使用OS模块进行path路径操作操作的语法为os.path.方法名();import os # 首先导入os模块abspath()方法:获取当前文件的全路径,所带参数为__file__;file_path = os.path.abspath(__file__) # 获取当前文件的全路径pr...原创 2019-02-27 15:47:06 · 194 阅读 · 0 评论 -
Day18:递归函数与匿名函数
1.递归函数def fib(n): return 1 if n < 2 else fib(n-1) + fib(n-2)n = 20for i in range(n): print(fib(i), end=' ')#输出:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 调用自...原创 2019-02-18 12:01:35 · 181 阅读 · 0 评论 -
Day26:序列化与反序列化
1.什么是序列化与反序列化?序列化:将内存中的数据转换为字节序列保存到文件;反序列化:将字节序列的文件中的内容恢复到内存中;2.pickle模块(1)如何序列化写入文件:import picklelist = [1, 2, 3, 4, 5]dicty = {'name': '可可', 'age': 20}with open(file='test.txt', mode='...原创 2019-02-28 13:36:44 · 213 阅读 · 0 评论 -
Day19:生成器函数
1.生成器在 Python 中,一边循环一边计算的机制,称为生成器(Generator);生成器是一个返回迭代器的函数,只能用于迭代操作;2.什么是生成器函数生成器是Python中的一个对象,对这个对象进行操作,可以依次生产出按生成器内部运算产生的数据;生成器函数指的是函数体中包含yield关键字的函数(yield就是专门给生成器用的return);生成器可以通过生成器...原创 2019-02-19 12:15:21 · 528 阅读 · 0 评论 -
Day23:文件操作
在python中对于文件操作就是读和写操作,而访问文件的模式有两种,文本模式和二级制模式。1.文件打开# 现创建一个hello.txt文件,然后加入内容hello worldf = open(file='./hello.txt')result = f.read()print(result ) #输出: hello worldf.close()打开文件会用到open()函数,语...原创 2019-02-25 14:10:16 · 191 阅读 · 0 评论 -
Day16:函数
1.函数的简介函数的意义:由函数名称,参数列表和若干语句组成的语句块;函数的作用:对代码的一个封装,减少冗余代码,代码复用;函数的分类:内建函数、 库函数、第三方库函数;函数都是可调用对象;2.函数的使用def add(x,y): print(x,y)add(10,20) #输出:10 20通过def 函数名称(参数):代码块的方式定义函数,代码...原创 2019-02-14 15:50:17 · 104 阅读 · 0 评论 -
Day20:高阶函数
今天主要学习了Python中sorted,filter, map 三个高阶函数,还了解了一下函数的柯里化;1.什么是高阶函数在数学中高阶函数又称算子(运算符)或泛函,包含多于一个箭头的函数,语法为:y = f(g(x));在python中,一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数;def way1(...原创 2019-02-20 10:15:43 · 167 阅读 · 0 评论 -
Day27:命令行参数解析
1.argparse模块简介argparse是python标准库里面用来处理命令行参数的库;大多数情况下,脚本很可能需要多个参数,而且每次参数的类型用处各不相同,那么这个时候在参数前添加标签表明参数的类型和用途便十分有用,而利用argparse模块可以很方便得实现这一目的;2.argparse模块的使用步骤# 导入模块import argparse# 此函数作用为:自定义...原创 2019-03-01 17:43:46 · 291 阅读 · 0 评论 -
Day24:IO模块的使用
今天学习IO模块的使用,主要分为StringIO的使用和BytesIO的使用~1.StringIO的使用# 类似文件的缓冲区from io import StringIOcache_file = StringIO()print(cache_file.write('hello world')) # 11print(cache_file.seek(0)) # 0print(cache_f...原创 2019-02-26 14:16:48 · 416 阅读 · 0 评论 -
Day29:面向对象
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的;1.类和对象的定义class 类的名称: 语句块# Student就是类对象,num是类变量,showNum是方法, self为类对象的实例, 类名称一般需要大写class Student: num = 100 def showNum(self): ...原创 2019-03-06 11:20:43 · 125 阅读 · 0 评论 -
Day28:正则表达式
1.什么是正则表达式(Regular Expression)正则表达式是一个特殊的字符序列,用于检查一个字符串是否与某种模式匹配;在Linux操作系统上,正则表达式可以应用的命令有:grep、sed、awk;2.常用的元字符. : 匹配任意一个字符,除了换行符号,换行符使用[.\n]模式;\:转义字符,使后一个字符改变原来的意思;*:重复匹配0次或更多次;*?:非贪婪匹配...原创 2019-03-04 10:25:36 · 121 阅读 · 0 评论 -
Day35:异常处理
1.什么是异常异常与错误有区别:异常可以被捕获,而错误有时候无法被捕获,语法错误会被IDE检查到,但是逻辑错误无法被知晓;异常的产生有两种方式:使用raise语句,显式的抛出异常,还有一种是由于代码错误,解释器抛出的异常,如果没有进行异常捕获,就会中断程序的运行;2.如何捕获异常try: # 这里会抛出异常,因为0不能被整除 a = 1 / 0 exce...原创 2019-03-14 17:27:24 · 128 阅读 · 0 评论 -
Day30:魔术方法
1.什么是魔术方法在Python中以两个下划线开头和结尾的方法被称为魔术方法,魔术方法都是一些内置方法;2.基本魔术方法__new__:是在一个对象实例化的时候所调用的第一个方法,用来创建类并返回这个类的实例;__init__:构造器,是一个初始化方法,在一个实例被创建之后调用;__del__:析构器,当一个实例被销毁的时候调用的方法;__bool__:如果对象实现...原创 2019-03-07 14:18:24 · 146 阅读 · 0 评论 -
Day36:模块打包
1.什么是模块打包模块打包目的是让自己开发的功能能够实现共享,供给他人使用;包管理索引平台:Python Package Index;2.怎么打包tar.gz格式:这个就是标准压缩格式,里面包含了项目元数据和代码,可以使用Python setup.py sdist命令生成;egg格式:它也是压缩文件,只是扩展名换了,里面包含了项目元数据以及源代码,这个格式由setup...原创 2019-03-15 13:33:14 · 339 阅读 · 0 评论 -
Day32:反射
今天学习的是反射,主要学习一下什么是反射?具有反射能力的内置函数有哪些?反射魔术方法有哪些?1.什么是反射解释类型的语言,在程序被加载到内存运行的时候,可以通过某种方式获取对象的类型、属性等信息的过程叫做反射;2.具有反射能力的内置函数(1)getattr的使用# 判断对象是否有对应的属性class Student: def showName(self, name): ...原创 2019-03-11 15:18:49 · 156 阅读 · 0 评论 -
Day39:线程同步与并发
1.线程之间的几种通信方式Event:事件;Critical Section:临界区;Semaphone:信号量;2.Event事件from threading import Thread, Eventimport timedef teacher(event: Event): print('I am teacher , waiting for your ho...原创 2019-03-20 10:13:41 · 159 阅读 · 0 评论 -
Day33:描述器
1.什么是描述器描述器必须是类属性,Python中,一个类实现了__get__ 、__set__、__delete__三个任意一个方法都称为描述 器;如果一个类的类属性设置为描述器,那么它被称为此描述器的owner属主;2.描述器的定义划分如果一个类仅仅实现了__get__()方法,称为非数据描述器non-data descriptor;如果一个类实现了__get__...原创 2019-03-12 11:28:43 · 148 阅读 · 0 评论 -
Day31:上下文管理器
1.什么是上下文管理上下文管理器是一个包装任意代码块的对象,上下文管理器保证进入上下文管理器时,每次代码执行的一致性,当退出上下文管理器时,相关的资源会被正确的回收;上下文管理器一定能够保证退出步骤的执行,不用再调用close()关闭文件;2.如何实现上下文管理器class Student: def __init__(self): # 第一步:进入上下文之前会调用初...原创 2019-03-08 10:19:22 · 137 阅读 · 0 评论 -
Day40:进程和并发
1.什么是进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础;在早期面向进程设计的计算机结构中,进程是程序的基本执行实体,在当代面向线程设计的计算机结构中,进程是线程的容器;程序是指令、数据及其组织形式的描述,进程是程序的实体,我们自己在python文件中写了一些代码,这叫做程序,运行这个python文件的时候...原创 2019-03-21 12:21:15 · 133 阅读 · 0 评论 -
Day34:模块化开发
1.什么是模块化开发模块化是代码的组成的一种方式,Python中的每一个文件就是模块;在Python中,文件有三种方式进行组织:Python文件(也就是Python模块)、目录、包;包和目录的区别:包内部多一个__init__.py文件,使得包能够被模块导入,而目录不能;2.模块化开发的好处模块化开发能够将不同的功能组装在一起,实现功能的累加,诸多功能组装在一起,最终形...原创 2019-03-13 09:56:50 · 122 阅读 · 0 评论 -
Day37:插件化开发与GUI开发
1.插件化开发思想插件化开发是一种思想,考虑到程序功能的加载时机,用到的时候再加载;插件化开发依赖的技术点有:反射:判断对象是否存在某种功能;动态导入:import;多线程:使用线程完成对应的任务;2.插件化开发的好处插件能够程序的功能多样性,用到时在加载,程序启动加快;3.importlib模块# importlib.import_module(name, p...原创 2019-03-18 10:01:41 · 221 阅读 · 0 评论