- 博客(39)
- 收藏
- 关注
原创 python序列化
什么是序列化对象? 我们把对象(变量)从内存中编程可存储或传输的过程称之为序列化,在python中称为pickle,其他语言称之为serialization ,marshalling ,flatterning 等等,都是一个意思。 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上(因为硬盘或网络传输时只接受bytes)。 反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpacking。为什么要序列化? 举个例子,你在打游戏过程中,打累了,停下来,
2020-10-26 14:54:19 347
原创 三元运算
三元运算又称三目运算,是对简单的条件语句的简写。举个例子:简单条件语句 ————> 三元运算if 条件成立: val = 1else: val = 2val = 1 if 条件成立 else 2python中的三元运算符不像其他语言,其他的一般都是判定条件?为真时的结果:为假时的结果 如:result = 5 >3?1:0而在python中的格式为:为真时候的结果 if 判定条件 else 为假时的结果<br>resu
2020-10-26 14:50:42 1845
原创 匿名函数
匿名函数就是不需要显示式的指定函数名首先看一行代码:def calc(x,y): return x*yprint(calc(2,3)) # 换成匿名函数 calc = lambda x,y:x*yprint(calc(2,3))你也许会说,用上这个东西没感觉有毛方便呀, 。。。。呵呵,如果是这么用,确实没毛线改进,不过匿名函数主要是和其它函数搭配使用的呢,如下res = map(lambda x:x**2,[1,2,3,4,5])print(list(res))# 结果:
2020-10-26 14:48:57 448
原创 系统及目录的操作
各种系统操作 注意:虽然python中提供了各种拼接目录的函数,但是,函数并不能保证字符编码不出问题,很大可能导致程序错误。所以最好还是自己拼接。python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r“c:\python”)
2020-10-26 14:43:59 152
原创 文件修改
硬盘的存储原理就是,当你把文件存到硬盘上,就在硬盘上划了一块空间,存数据,等你下次打开这个文件,会seek到一个位置,每改一个字,就是把原来的覆盖掉,如果要插入,是不可能的,因为后面的数据在硬盘上不会整体向后移动,所以就会出现当前这个情况,你要插入,却变成把旧内容覆盖掉。 所以修改文件,就不要在硬盘上修改,把内容全部读到内存里,数据在内存里可以随便增删改查,修改之后,把内容全部写回硬盘,把原来的数据全部覆盖掉。 当然了,如果有些文件特别大,比如5G,那么一下吃掉这么大内存,非常浪费资源,所以更好的方
2020-10-26 14:42:13 264
原创 重命名和删除文件
Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。rename()方法:rename()方法需要两个参数,当前的文件名和新文件名。语法:os.rename(current_file_name, new_file_name)例子:import os#重命名文件f.txt问哦file.txtos.rename('f.txt','file.txt')remove方法你可以用remove()方法删除文
2020-10-26 14:38:59 426
原创 文件定位
tell()方法告诉你文件内的当前位置, 换句话说,下一次的读写会发生在文件开头这么多字节之后。seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。offset – 偏移量,也就是代表需要移动偏移的字节数,注意是按照字节算的,字符编码存每个字符所占的字节长度不一样。如“好好学习” 用gbk存是2个字节一个字,用utf-8就是3个字节,因此以gbk打开时,seek(4) 就把光标切换到了“飞”和“学”两个字中间。
2020-10-26 14:37:40 337
原创 python逐行读取文件内容的两种方法
方法一:for line in open('f.txt'): print(line)方法二:f =open('f.txt','r')lines =f.readlines()for i in lines: print(i)
2020-10-26 14:36:31 182
原创 文件读写属性
file对象有自己的属性和方法。先来看看file的属性。(+和b可以和其他的字符组合成mode,例如rb以二进制只读方式打开,mode参数是可选的,如果没有默认为r)(注意:文件打开之后,应当被及时关闭,可以查看f.closed属性以确认文件是否被关闭)r只读模式(默认,文件不存在,则发生异常)文件的指针将会放在文件的开头w只写模式(可读,文件不存在则创建,存在则删除内容,再打开文件)a追加模式(只能写,文件不存在则创建,存在则追加内容)r+可读写模式(可读,可写,可追加),如果文件存在,
2020-10-26 14:35:56 635
原创 python文件操作
一,打开文件 python中打开文件的函数为open(‘filename’,mode=‘r’,encode=‘None’),open函数默认返回文件的句柄,我们可以根据句柄来对文件进行增,删,改,查的操作。将句柄赋给我们定义的变量,假设我们定义变量为f,则f=open(‘filename’,mode=‘r’,encode=‘utf-8’) 或者with open(‘filename’) as f。注意点: 1.python解释器打开文件时,是对硬盘进行操作,需要内核态才可以操作硬盘,故此时pyth
2020-10-26 14:28:46 237
原创 python字符串
字符串序列用于表示和存储文本,python中字符串是不可变对象。字符串是一个有序的字符的集合,用于存储和表示基本的文本信息,一对单,双或三引号中间包含的内容称之为字符串。其中三引号可以由多行组成,编写多行文本的快捷语法,常用文档字符串,在文件的特定地点,被当做注释。便捷的多行注释。Python实际三类字符串: 1.通常意义字符串(str) 2.原始字符串,以大写R 或 小写r开始,r’’,不对特殊字符进行转义 3.Unicode字符串,u’’ basestring子类 python中字符串
2020-09-23 20:37:17 187
原创 sort与sorted函数排序的区别
Python list内置sort() 方法用来排序,也可以使用Python内置的全局sorted() 方法对可迭代的序列排序生成新的序列。 sort()函数 首先看一个例子:lis1 = [3,5,6,8,9]lis1.sort()print(lis1)使用sort()方法对list排序会修改list本身,不会返回新list,通常此方法不如sorted()方便,但是如果你不需要保留原来的list,此方法将更有效sort()。sort()方法不能对字典dict进行排序。 sorted(
2020-09-23 20:25:41 256
原创 Python 统计列表中的重复项出现的次数的方法
对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现在我们需要统计这个列表里的重复项,并且重复了几次也要统计出来。方法1:mylist = [1,2,2,2,2,3,3,3,4,4,4,4]#myset是另外一个列表,里面的内容是mylist里面的无重复项myset = set(mylist) for item in myset: res = mylist.count(item) print("the %d has found %d" %(item,mylist.
2020-09-23 20:24:32 2090
原创 python列表
列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表是一个数据的集合,集合内可以放任何数据类型,可对集合方便的增删改查操作。Python已经内置确定序列的长度以及确定最大和最小的元素的方法一,List list()方法 list()方法将元组转换为列表 注意:元祖与列表是非常相似的,区别在于元组的元素值不能修改,元祖是放在括号中,列表是放在方括号里面的。a_tuple = ('123','abc',123)a_list = list(a_tuple)print(a
2020-09-23 20:23:05 404
原创 OrderedDict 的使用
在Python中,dict这个数据结构由于hash的特性,是无序的,这在有时候会给我们带来一些麻烦,幸运的时,在collections模块中为我们提供了 OrderedDict ,当你需要获取一个有序的字典对象时,试用它即可。 python中的字典(dict)对象可使用“键”,“值” 对的形式存取值,但默认的内置类型字典中的元素是无序的。Collections模块下的OrderedDict类实现了对字典的排序,OrderedDict是dict的一个子类,实现了对字典排序的功能,下面看一下两者数据类型的对
2020-09-23 20:09:41 516
原创 python字典
字典是一种通过名字或者关键字引用的得数据结构,key 类型需要时被哈希,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一內建的映射类型。 注意,浮点数比较很不精确,因此千万不要用浮点数作为key! python字典包含了11个内置方法,具体如下: 1,字典的键不能是list类型:list = [1,2,3,4]info2 = {list:'number'} 结果:Traceback (most recent call last): File "
2020-09-23 20:08:34 420
原创 python集合操作方法
说集合之前,我们先说一个小例子,假设某公司有五个人喜欢打篮球,五个人喜欢打游戏,问即打游戏有打篮球的人都有哪些? play_basketball = ['a','b','c','d','e']play_game = ['a','b','c','f','g']both_play=[]for name in play_basketball: if name in play_game: both_play.append(name)print(both_play)结果:['a'
2020-09-17 20:04:16 179
原创 print语句和print函数的区别
print语句在python2.x中,print语句最简单的使用形式是print hello world!这相当于执行了sys.stdout.write(‘’。join(map(str,[hello world!]))+'\n')如果以逗号为分隔符,传递额外的参数,这些参数会被传递到str()函数,最终打印的时候,每个参数之间会空一行。从2.0版本开始,python引入了print>>的语法。作用是重定向print语句最终输出的字符串的文件例如:print>>o
2020-09-17 19:53:20 924
原创 python3.x的编码
python3.x也有两种数据类型,str和bytes;str类型存unicode数据,bytes类型存bytes数据, python3.x将utf-8或者gbk等编码的字节数据转化为python3.x的str类型,utf-8编码的bytes<–>str python2.x将utf-8或者gbk等编码的字节数据转化为python2.x的unicode类型,utf-8编码的str<–>unicode python3.x的编码思想就是它清晰的将文本和二进制区分开了,不会对by
2020-09-17 19:50:44 350
原创 python字符编码问题
一:什么是编码 将明文转换为计算机可以识别的编码文本称为“编码”。反之从计算机可识别的编码文本转回为明文为“解码”。 那么什么是明文呢,首先我们从一段信息说起,消息以人们可以理解,易懂的表示存在,我们把这个表示为明文(plain text)。对于说英文的人,纸张上打印的或者屏幕上显示的英文都算是明文。二:都有什么编码格式?1:ASCII(占一个字符,只支持英文)计算机上的数据都是以二进制的形式存储的,1个字节(8比特)可以表示256种状态,英文只有26个字符,再加上一些特殊的字符,使用128个
2020-09-17 19:47:21 553
原创 软件开发目录规范的重要性
为什么要设计好目录结构?“设计项目目录结构”,就和"代码编码风格"一样,属于个人风格问题。对于这种风格上的规范,一直都存在两种态度:1.一类同学认为,这种个人风格问题"无关紧要"。理由是能让程序work就好,风格问题根本不是问题。2.另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性。我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者。我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费了我非常长的时间去理解它想表达的意思。从此我个人对于提高项目可读性、可维
2020-09-17 19:42:06 488
原创 python排版问题
一,代码排版:1 ,缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。 2 ,每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。 3 ,类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。二,文档排版:1 ,模块内容的顺序:模块说明和docstring—import—globals&constants—其他定义。其中import部分,又
2020-09-17 19:40:10 1001
原创 python命名规范
因为名字不能乱起,要是你一个想法,他一个想法,大家都对对方的名称不了解,这样也很难持续下去,因此这里说一下变量规范命名的规则和注意事项。1,变量定义规则:1,变量名只能是字母,数字或者下划线的任意组合2,变量名的第一个字符不能是数字3,关键字不能生成变量名2,变量规范命名注意事项:1,变量名不能过长2,变量名词不达意思3,变量名为中文,拼音3,总体命名规则:1 ,尽量单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。 2 ,模块命名尽量短小,使用全部小写的方式,可以使用下划
2020-09-17 19:37:02 315
原创 python注释规范问题
编程规范的重要性注释:注释不止是为了自己以后看的更清楚,还是为了以后的开发人员所准备的,其实一段时间后,当需要对程序做一些修改或者是改正某个bug的时候,可能未来的我们自己都会忘记相关的细节,所以此时注释显得尤为重要。 每条注释以井号(#)开始,一直到该行末尾结束,一直到该行末尾结束。我们可以在注释中放任何东西,因为Python 会完全无视他们的存在。为了写好注释,这里给出以后几条规则: (1) 假设读者的Python 水平和你一样(比如说,不要去解释 “ 什么是字符串 ” , 也不要去解释 “
2020-09-17 19:35:34 454
原创 python输出颜色与样式
格式:"\033[字背景颜色;字体颜色m————————\033[0m" (——————表示字符串)例如: “\033[42;37m there are ready color\033[0m”格式:\033[显示方式;前景色;背景色m说明:前景色 背景色 颜色30 40 黑色31 41 红色32 4
2020-09-17 19:30:15 406
原创 python格式化输出
格式是 :百分号+占位符 主要有三种使用形式:%s (其中s表示string)表示字符串%d (其中d表示digit)表示数字%f (其中f表示float)表示浮点小数,也称小数其他的如下:%% 百分号标记 #就是输出一个%%c 字符及其ASCII码%d 有符号整数(十进制)%u 无符号整数(十进制)%o 无符号整数(八进制)%x 无符号整数(十六进制)%X 无符号整数(十六进制大写字符)%e 浮点数字(科学计数法)%E 浮点数字(科学计数法,用E代替e)%f 浮点数字(用
2020-09-17 19:27:48 476
原创 MySQL介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。1,MySQL是什么?mysql就是一个基于socket编写的C/S架构的软件客户端软件 mysql自带:如mysql命令,mysqldump命令等 python模块:如pymysql
2020-09-02 20:36:45 127
原创 数据库概述
1,什么是数据库(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:1 james,male,30,1989,美国,NBA,2003-2018,职业运动员单纯的一条记录并没有任何意义,如果我们按逗号作为分隔,依次定义各个字段的意思,相当于定义表的标题1 name,sex,age,birth,
2020-09-02 20:35:26 137
原创 数据库管理软件的由来
基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。很不幸,这些假设都是你自己想出来的,上述假设存在以下几个问题。。。。。。1、程序所有的组件就不可能运行在一台机器上因为这台机器一旦挂掉则意味着整个软件的崩溃,并且程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,受限于目前的硬件水平,就一台机器的性能垂直进行
2020-09-02 20:34:28 175
原创 数据表内容操作
1,增insert into 表 (列名,列名...) values (值,值,值...)insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...)insert into 表 (列名,列名...) select (列名,列名...) from 表2,删delete from 表delete from 表 where id=1 and name='tom'3,改update 表 set name = 'tom' where id>1
2020-09-02 20:31:56 133
原创 基本数据类型
MySQL的数据类型大致分为:数值,时间和字符串——数字数据类型 MySQL使用所有标准的ANSI SQL数字数据类型,所以,如果在学习MySQL之前,有接触过其它不同的数据库系统,那么这些定义看起来很熟悉。下面列出了常见的数字数据类型及其说明:INT - 正常大小的整数,可以带符号。如果是有符号的,它允许的范围是从-2147483648到2147483647。如果是无符号,允许的范围是从0到4294967295。 可以指定多达11位的宽度。TINYINT - 一个非常小的整数,可以带符号。如果是有符
2020-09-02 20:30:11 141
原创 数据表基本操作
1,创建表create table 表名( 列名 类型 是否可以为空 列名 类型 是否可以为空 )engine = innoDB DEFAULT CHARSET =uft8其中是否可以为空(null 表示空,非字符串) not null -不可空 null -可空默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值 create table tb1( n
2020-09-02 20:22:06 146
原创 数据库基本操作
数据库操作1,显示数据库1 SHOW DATABASES;默认数据库: mysql - 用户权限相关数据 test - 用于用户测试数据 information_schema - MySQL本身架构相关数据2,创建数据库1 # utf-82 CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;34 # gbk5 CREATE DATABASE 数据库名称 DEFAULT CHARACTER SE
2020-09-02 20:19:19 120
原创 MySQL基础知识
一、什么是数据库 ?数据库是按照数据结构来组织,存储和管理数据的仓库,数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理,检索和复制所保留的数据。其他类型的数据存储可以使用,如获取文件系统上的文件或内存中的大的哈希表,但数据并写入不会那么快,但这些类型的系统易于使用。所以今天,我们使用关系数据库管理系统(RDBMS)来存储和管理体积庞大的数据。这就是所谓关系数据库,因为所有的数据存储到不同的表和关系建立使用主键或外键等其它键。MySQL是一个快速,易于
2020-09-02 20:12:10 252
原创 生成器
在 Python 中,使用了 yield 的函数被称为生成器(generator)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。生成器是特殊的迭代器,一遍循环一遍计算的机制g = (x for x in range(10))for
2020-08-26 20:36:55 119
原创 迭代器
迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。迭代是一个访问集合元素的方式迭代器是一个可以记住遍历位置的对象迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问结束迭代器只能向前不会后退第一种集合数据类型:列表,元组,字典,字符串等第二种:生成器统称为可迭代对象from collec
2020-08-26 20:35:39 247
原创 装饰器
装饰器(Decorators)是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿)。大多数初学者不知道在哪儿使用它们,所以我将要分享下,哪些区域里装饰器可以让你的代码更简洁。 首先,让我们讨论下如何写你自己的装饰器。def func1():print(‘这是函数func1’)if name == ‘main’:func1()func2 = func1print(id(func1))print(id(f
2020-08-26 20:33:27 129
原创 BMI指数
经典BMI指数判断weigtht = float(input(‘请输入体重(kg):’))height = float(input(‘请输入身高(m):’))BMI = weigtht/(height**2)if BMI < 18.5:print(‘过轻’)elif 18.5 <= BMI < 25:print(‘正常’)elif 25 <= BMI < 28:print(‘过重’)elif 28 <= BMI < 32:print(‘肥胖’)
2020-08-26 18:24:57 303
原创 猜三次年龄
1、允许用户最多尝试三次2、每尝试三次后,如果还没猜对,就问用户是否继续玩,如果回答Y,y,就继续猜三次,以此往复,如果回答N,n,就直接退出times=0count=3while times<=3:age=int(input(‘请输入年龄:’))if age == 18:print(‘猜对了’)breakelif age > 18:print(‘猜大了’)else:print(‘猜小了’)times+=1if times3:choose = input(‘继续猜Y
2020-08-26 18:23:29 508 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人