python
BOBO_GO
每天进步多一点
展开
-
README.md文件
引言:README.md文件用的是Markdown编写的,所有我们先来看看Markdown的语法首先在github上面某个项目里面创建一个README.md,然后在里面区编辑内容,如图,点击edit file在下面输入内容,然后切换到preview changes进行预览,好了废话不说了,下面进入基本语法的练习一、标题 语法:# 文字内容备注:一个#代表一级标题,2个#代表二级标...原创 2019-10-15 00:01:13 · 11822 阅读 · 1 评论 -
迭代器
#只要是能被for循环的数据类型 就一定拥有__iter__方法#print([].iter())#一个列表执行了__iter__()之后的返回值就是一个迭代器print(dir([]))print(dir([].__iter__()))print(set(dir([].__iter__())) - set(dir([])))print([1,'a','bbb'].__iter__()...原创 2019-01-17 16:03:32 · 90 阅读 · 0 评论 -
操作str(stringIO)操作二进制(bytesIO)
from io import StringIOf=StringIO()print(f.write('你好'))#返回写入的个数print(f.write('world'))print(f.getvalue())#获取写入后的str# 要读取StringIO,可以用一个str初始化StringIO,然后,像读文件一样读取:from io import StringIOf = S...原创 2019-06-27 00:42:54 · 408 阅读 · 0 评论 -
python文件操作
1、读取文本文件with open('/path/to/file', 'r') as f: print(f.read())2、读取二进制文件要读取二进制文件,比如图片、视频等等,用’rb’模式打开文件即可:f = open('/Users/michael/test.jpg', 'rb')print(f.read())#b'\xff\xd8\xff\xe1\x00\x18Exif...原创 2019-12-02 15:07:57 · 130 阅读 · 0 评论 -
python发送邮件之SMTP
简述:SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。常用邮箱的smtp服务器地址:新浪邮箱:smtp.sina.com,搜狐邮箱:smtp.sohu.com,qq邮箱:smtp.qq.com1、SMTP创建...原创 2019-10-04 03:24:47 · 2083 阅读 · 0 评论 -
三级菜单(练习)
menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': ...原创 2019-02-18 15:42:43 · 294 阅读 · 1 评论 -
内置函数filter、map
https://www.cnblogs.com/Eva-J/articles/7266192.html原创 2019-01-29 10:28:32 · 122 阅读 · 0 评论 -
递归二分法查找数字
第一种方法:l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]def find(l,aim,start = 0,end = None): end = len(l) if end is None else end mid_index = (end - start)//2 +...原创 2019-01-30 16:11:37 · 305 阅读 · 0 评论 -
练习:读取文件内容根据页数输出内容
# 5.随意写一个20行以上的文件# 运行程序,先将内容读到内存中,用列表存储。# 接收用户输入页码,每页5条,仅输出当页的内容with open('file1',encoding='utf-8') as f: l = f.readlines()page_num = int(input('请输入页码 : '))page,mod = divmod(len(l),5) #求有多少页...原创 2019-01-29 15:17:20 · 274 阅读 · 0 评论 -
内置函数
内置函数引用地址https://www.cnblogs.com/Eva-J/articles/7206498.html原创 2019-01-28 10:21:43 · 93 阅读 · 0 评论 -
闭包
#闭包:嵌套函数,内部函数调用外部函数的变量inner.__closure__ 确认inner是不是闭包# def outer():# a = 1# def inner():# print(a)# inner()# outer()def outer(): a = 1 def inner(): prin...原创 2019-01-11 14:27:46 · 90 阅读 · 0 评论 -
默认参数的陷阱
def qqxing(k,l = {}): # l.append(1) l[k] = 'v' print(l)qqxing(1) #[1]qqxing(2) #[1,1]qqxing(3) #[1,1,1]# 如果默认参数的值是一个可变数据类型,# 那么每一次调用函数的时候,# 如果不传值就公用这个数据类型的资源...原创 2018-12-12 17:30:22 · 98 阅读 · 0 评论 -
函数的嵌套定义
def max(a,b): return a if a>b else bdef the_max(x,y,z): #函数的嵌套调用 c = max(x,y) return max(c,z)print(the_max(1,2,3))函数的嵌套定义内部函数可以使用外部函数的变量a = 1def outer(): a = 1 def inn...原创 2019-01-11 10:27:42 · 4850 阅读 · 0 评论 -
异常的处理
#程序一旦发生错误,就从错误的位置停下来了,不在继续执行后面的内容#使用try和except就能处理异常#try是我们需要处理的代码#except 后面跟一个错误类型 当代码发生错误且错误类型符合的时候 就会执行except中的代码#except支持多分支#有没有一个能处理所有错误的类型 : Exception# 有了万能的处理机制仍然需要把能预测到的问题单独处理# 单独处理的所有内...原创 2019-02-18 15:03:06 · 79 阅读 · 0 评论 -
python内置函数
1、divmod(a, b)除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)print(divmod(7,3))结果;(2,1)print(divmod(8,4))结果;(4,0)2、python staticmethod 返回函数的静态方法。该方法不强制要求传递参数,如下声明一个静态方法:class C(object): ...原创 2018-12-28 08:55:28 · 159 阅读 · 0 评论 -
Python标准库模块之heapq
堆的逻辑结构就是完全二叉树,并且二叉树中父节点的值小于等于该节点的所有子节点的值。这种实现可以使用 heap[k] <= heap[2k+1] 并且 heap[k] <= heap[2k+2] (其中 k 为索引,从 0 开始计数)的形式体现,对于堆来说,最小元素即为根元素 heap[0]。**heappush(heap, x) 将x压入堆中heappop(heap) 从堆中弹出...原创 2019-09-08 23:20:54 · 142 阅读 · 0 评论 -
练习题(生成器)
#处理文件,用户指定要查找的文件和内容,将文件中包含要查找内容的每一行都输出到屏幕上def find_line(filename,i): s=open(filename,encoding='utf-8') for i in s: if 'python' in i: yield (i.strip())g=find_line('file','...原创 2019-01-22 10:07:04 · 3813 阅读 · 0 评论 -
各种推导式
#[每一个元素或者是和元素相关的操作 for 元素 in 可迭代数据类型] #遍历之后挨个处理#[满足条件的元素相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件] #筛选功能#列表推导式# #30以内所有能被3整除的数ret = [i for i in range(30) if i%3 == 0] #完整的列表推导式g = (i for i in...原创 2019-01-21 17:44:32 · 141 阅读 · 0 评论 -
列表推导式&生成器表达式
egg_list=['鸡蛋%s'%i for i in range(10)] #列表推导式print(egg_list)print([i*i for i in range(10)]) #列表推导式laomuji=('鸡蛋%s'%i for i in range(10)) #生成器表达式print(laomuji)for dan in laomuji: print...原创 2019-01-21 16:47:25 · 542 阅读 · 0 评论 -
生成器函数的进阶
# 求移动平均数def avger(): sum=0 count=0 avg=0 while True: #num=yield avg num = yield avg sum+=num count+=1 avg=sum/countg=avger()g.__next__()a...原创 2019-01-21 15:05:58 · 163 阅读 · 0 评论 -
练习:监听文件输入案例
def tail(filename): f = open(filename,encoding='utf-8') while True: line = f.readline() if line.strip(): yield line.strip()g = tail('file')for i in g: if 'py...原创 2019-01-17 17:08:40 · 105 阅读 · 0 评论 -
生成器
#生成器函数def generator(): print(1) return 'a'ret = generator()print(ret)#只要含有yield关键字的函数都是生成器函数# yield不能和return共用且需要写在函数内def generator(): print(1) yield 'a'# #生成器函数 : 执行之后会得到一个生...原创 2019-01-17 16:44:32 · 179 阅读 · 0 评论 -
内置函数__str__ 和 __repr__,call
class Teacher: def __init__(self,name,salary): self.name = name self.salary = salary def __str__(self): return "Teacher's object :%s"%self.name def __repr__(self):...原创 2019-04-19 10:53:31 · 103 阅读 · 0 评论 -
内置函数ltems、new、hash、eq
getitems setitems delitmesdic = {'k':'v'}# 对象 : 存储属性 和调用方法dic['k'] = 'v'class Foo: def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex ...原创 2019-04-21 09:45:45 · 1127 阅读 · 0 评论 -
PyPDF2模块
1、PdfFileReader构造方法:PyPDF2.PdfFileReader(stream,strict = True,warndest = None,overwriteWarnings = True)stream:*File 对象或支持与 File 对象类似的标准读取和查找方法的对象,也可以是表示 PDF 文件路径的字符串。*strict(bool): 确定是否应该警告用户所用的...原创 2019-09-12 01:14:01 · 1406 阅读 · 0 评论 -
urllib
有以下几种模块:1.urllib.request 请求模块2.urllib.error 异常处理模块3.urllib.parse url 解析模块4.urllib.robotparser robots.txt 解析模块urllib.request一、urlopenurllib.request.urlopen(url, data=None, [timeout, ]*, cafile=...原创 2019-06-30 17:39:17 · 125 阅读 · 0 评论 -
NumPy模块
一、NumPy Ndarray 对象创建格式:numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)参数说明:名称 描述object 数组或嵌套的数列dtype 数组元素的数据类型,可选copy 对象是否需要复制,可选order 创建数组的样式,C为行方向,F为...原创 2019-09-18 00:31:02 · 137 阅读 · 0 评论 -
hashlib 模块
import hashlibMD5=hashlib.md5()MD5.update('how are you'.encode('utf-8'))MD5.update(b'how are you')#和上面一行功能一样print(MD5.hexdigest())如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:import hashlibmd5 = hash...原创 2019-06-30 13:31:05 · 192 阅读 · 0 评论 -
程序性能分析
import cProfile,pstatsdef product(x,y): return x*ycProfile.run('product(1, 2)','result.txt'.encode(encoding='utf-8'))p = pstats.Stats('result.txt')p.strip_dirs().sort_stats(-1).print_stats() ...原创 2019-09-10 00:04:01 · 598 阅读 · 0 评论 -
pillow
操作图像from PIL import Image# 打开一个jpg图像文件,注意是当前路径:im = Image.open('22.png')# 获得图像尺寸:w, h = im.sizeprint('Original image size: %sx%s' % (w, h))# 缩放到50%:im.thumbnail((w//2, h//2))print('Resize i...原创 2019-06-30 22:08:21 · 91 阅读 · 0 评论 -
pickle模块 json模块
pickleimport pickledict={'123':582,'582':741}s=pickle.dumps(dict)#序列化一个对象print(s)print(pickle.loads(s))#把对象反序列化import pickledict={'123':582,'582':741}d=open('1.txt','wb')pickle.dump(dict,d...原创 2019-06-29 00:04:31 · 194 阅读 · 0 评论 -
logging日志模块详解
**一、基础教程**DEBUG 详细信息,通常仅在诊断问题时才需要。INFO 确认一切正常。WARNING 表示发生了意外情况,或者表示在不久的将来出现了一些问题(例如“磁盘空间不足”)。该软件仍按预期运行。ERROR 由于存在更严重的问题,该软件无法执行某些功能。CRITICAL ...原创 2020-06-27 19:23:59 · 196 阅读 · 0 评论 -
操作excel
A、python中常用操作excel包比较B、用xlrd包读取Excel文件import xlrdxlrd.open_workbook(r'/root/excel/chat.xls') # 获取所有sheet sheet_name = workbook.sheet_names()[0] # 根据sheet索引或者名称获取sheet内容 sheet = workbook.shee...原创 2019-09-16 19:46:07 · 178 阅读 · 0 评论 -
csv模块
官网文档:https://docs.python.org/2/library/csv.html#module-csv一、csv模块中的函数1、 reader(csvfile, dialect=‘excel’, **fmtparams)参数说明:csvfile,必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象,如果是文件对象,打开时需要加"b"...原创 2019-09-11 22:53:02 · 602 阅读 · 0 评论 -
turtle海龟绘图
导入turtle包的所有内容:from turtle import *# 设置笔刷宽度:width(10)# 前进:forward(200)# 右转90度:right(90)# 笔刷颜色:pencolor('red')forward(100)right(90)pencolor('green')forward(200)right(90)pencolor('b...原创 2019-07-01 13:27:56 · 186 阅读 · 0 评论 -
XML模块
xml的文件格式:<?xml version="1.0" encoding="utf-8"?> <userdata createuser="false">userdata内容 <dataconnection> <server>localhost</server> ...原创 2019-06-30 20:10:28 · 98 阅读 · 0 评论 -
itertools
import itertoolss=itertools.count(2,2)#输入从2开始步长为2for i in s: if i >100: break print(i)import itertoolss=itertools.cycle('456')#重复输入456for i in s: print(i) import it...原创 2019-06-30 16:27:43 · 506 阅读 · 0 评论 -
collections
namedtuplefrom collections import namedtuplePoint = namedtuple('Point', ['x', 'y'])p = Point(1, 2)>>> p.x1>>> p.y2deque from collections import dequeq = deque(['a', 'b', '...原创 2019-06-29 01:35:19 · 79 阅读 · 0 评论 -
datetime
获取当前日期和时间from datetime import datetimenow = datetime.now() # 获取当前datetime print(now)#2015-05-18 16:28:07.198690print(type(now))#<class 'datetime.datetime'>获取指定日期和时间 from datetime impor...原创 2019-06-29 01:21:33 · 98 阅读 · 0 评论 -
hashlib摘要算法模块
import hashlibmd5=hashlib.md5()md5.update(b'123456')#必须bytes类型print(md5.hexdigest())import hashlibuser=input('username:\n')password=input('password:\n')with open('user_pwd') as f: for line...原创 2019-04-22 10:20:46 · 95 阅读 · 0 评论