
PYTHON冷知识
文章平均质量分 53
宋建国
接下来要更新的内容有:Flask全栈知识
展开
-
python中yield的使用(减少内存空间占用)
一,yield使用功能原理介绍首先,如果你还没有对yield有个初步分认识,那么你先把yield看做“return”。看做return之后再把它看做一个是生成器(generator)的一部分(带yield的函数才是真正的迭代器)。好了,如果你对这些不明白的话,那先把yield看做return,然后直接看下面的程序,你就会明白yield的全部意思了:def foo(): print("starting...") while True: res = yield 4原创 2021-12-06 13:28:44 · 718 阅读 · 0 评论 -
Python中map、apply、applymap三函数的使用(用于DataFrame)
因为我主要是将其用于DataFrame数据中,所以我们可以这么认为map(Series)—>对某列进行操作apply(DataFrame)—>对行数据或者列数据进行操作applymap(DataFrame)—>对所有表中元素进行操作一,map在python2中map返回的是一个列表,而在python3中返回的是一个迭代器,如果获取转换为 list 就行了import pandas as pdimport numpy as np#DataFrame数据合并temp原创 2021-12-03 15:18:40 · 2281 阅读 · 0 评论 -
PYTHON高级--函数装饰器(在不改动原始函数的基础上,在之前添加处理操作)
def set_func(func): print("装饰器开始装饰") def call_func(*args,**kwargs): print("开始执行额外功能") #将传进来的变量拆包,并执行原始要添加装饰器的函数功能 func(*args,**kwargs) #将添加完装饰器的函数引用,返回给原始函数,来执行 #装饰器功能+原始功能。 return call_func#@set_func 相当于执行set_func函数了,然后将额外功能加在原始功能之前,然后整体执行函数原创 2021-12-02 16:16:43 · 484 阅读 · 0 评论 -
PYTHON拆包--*args **kwargs
*args返回的是一个元祖**kwargs返回的是一个字典#*args拆出来是元祖,存元素#**kwargs拆出来是字典,存键值对def test0(a, b, args, kwargs): print(a) print(b) print(args) print(kwargs)def test1(a, b, *args): print(a) print(b) print(args)def test2(a, b, args, **kw原创 2021-12-02 15:40:59 · 274 阅读 · 0 评论 -
PYTHON包(模块集合)
包使用案例1.构建包中的 __ init __ 模块(指定包中有哪些模块)from . import send_messagefrom . import receive_message2.按照下图结构构建包3.可以在外部模块中导入包来进行使用send_message.pydef send(text): print("正在发送 %s..." % text)receive_message.pydef receive(): return "这是来自 1原创 2021-12-02 14:39:29 · 155 阅读 · 0 评论 -
PYTHON面向对象(类)
一.PYTHON面向对象基础面向对象侧重于对的人,做对的事1.类和对象的基本概念类的介绍对象的介绍类和对象的关系2.类的设计基础类设计的三要素3.类使用的基本语法3.1类的定义和使用基本语法类的定义类的使用使用案例class Cat: def eat(self): print("小猫爱吃鱼") def drink(self): print("小猫要喝水")# 创建猫对象tom = Cat()原创 2021-12-02 14:18:17 · 773 阅读 · 0 评论 -
PYTHON高级--多模块导入时,注意from import 与 import区别
当直接使用 import 导入函数时,指向无任何问题,相当于本地一个变量指向导入模块本身,当重新赋值时操作的是指向位置的数据。但是当使用 from import 带入模块时,相当于在局部有个同名变量其赋值指向导入模块的值,而不是直接对导入模块的引用。所以重新赋值后就会丢失对导入数据的同步权,也可以说通过这种方式导入模块根本不具有修改权,只有对值的使用权。可以通过在修改变量时设置为global,将本地变量提升为全局变量的方法解决这种问题(这种方法只能解决本文件内的问题,实质还是没有对指向的位置数据进原创 2021-12-02 10:06:28 · 7427 阅读 · 0 评论 -
PYTHON编程小技巧(实用)
一,面试知识类1.python2和pyton3的区别?1、Python3 使用 print 必须要以小括号包裹打印内容,比如 print(‘hi’) Python2 既可以使用带小括号的方式,也可以使用一个空格来分隔打印内容,比如 print ‘hi’2、python2 range(1,10)返回列表,python3中返回迭代器,节约内存3、python2中使用ascii编码,pytho...原创 2019-11-26 18:04:17 · 1230 阅读 · 0 评论 -
PYTHON异常操作
一,异常的概念当程序在运行时,如果python解释器遇到一个错误,就会停止程序的运行,并提示一些错误信息,这就是异常。程序停止执行并抛出错误信息的动作,我们称之为抛出(raise)异常。二,异常的捕获2.1简单的异常捕获语法在程序开发中,如果对某些代码的执行不能确定是否会正确,可以增加try来捕获异常。捕获异常的简单语法格式try: #尝试执行的代码except: #出现错误时候的处理2.2错误类型的捕获在程序执行时,可能会遇到不同类型的异常,而且需要针对不同类型的异常,原创 2021-11-18 11:28:37 · 6620 阅读 · 0 评论 -
PYTHON文件操作(读/写文件)
模板先行,介绍在后面with open("ce.txt",encoding='utf-8') as file: # text = file.read() while True: #获取一行内容 text = file.readline() #判断是否读到了内容,如果没有就跳出循环 if not text: break #分隔每行信息 print("**********")原创 2021-11-18 10:57:39 · 4484 阅读 · 0 评论 -
解决PYTHON 中pip安装环境包速度慢问题
治标方法可以直接在 pip 命令中使用 -i 参数来指定镜像地址,例如:pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple其它常用镜像地址:清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:htt原创 2021-11-11 16:02:08 · 453 阅读 · 0 评论 -
PYTHON实现自动发送邮件(QQ,163,139三种邮箱演示)
一, QQ邮箱发送邮件发送带有文本的邮件1.登录qq邮箱,选择设置2.点击账户,进入设置界面3.授权,生成授权码4.编写发送代码,密码使用的是授权生成的代码(保证发送邮箱的SMTP功能是开启的)print("*************qq邮箱形式*****************")# 授权码: 授权密码# 接收邮件服务器:imap.qq.com,使用SSL,端口号993# 发送邮件服务器:smtp.qq.com,使用SSL,端口号465或587#!/usr/bin/pytho原创 2021-11-11 10:30:39 · 8899 阅读 · 4 评论 -
PYTHON当前环境的依赖包迁移(online)
1.首先将当前环境下的依赖包导出为requirements.txt首先进入要迁移依赖包的虚拟环境将当前依赖导出2.将文件复制到目标机器中进入dos模式下跳转到requirements.txt所在的目录下切换到新的没有依赖的虚拟环境中在当前路径下便可以在线安装所有依赖包pip安装形式(这种情况下可以导入,但是可能在anaconda中检测不到依赖包的存在)conda安装...原创 2019-10-29 18:26:22 · 671 阅读 · 0 评论 -
PYTHON高级--程序运行不能停止的情况下重新导入修改过的包
有些时候我们运行的程序不能够停止运行(比如服务器), 但同时我们又需要将一些包中新加入的功能重新加载到内存中,这时我们就需要reload函数来进行包的重新导入操作。import demodemo.test_print()#___这是原来的功能__#这是对原包进行了修改,想要将新功能进行更新from imp import reloadreload(demo)demo.test_p...原创 2019-06-18 10:24:02 · 1250 阅读 · 0 评论 -
PYTHON高级--包读入路径自定义
1.首先我们可以通过调用sys模块查看当前模块导入路径,返回的是一个列表,如果在这些路径下没有发现要导入的包,那么就会报错。import sysprint(sys.path)""" ['C:\\Users\\song\\PycharmProjects\\宋建国工具包\\python高级\\私有化', 'C:\\Users\\song\\PycharmProjects\\宋...原创 2019-06-18 10:19:02 · 657 阅读 · 1 评论 -
PYTHON高级--私有化
私有化变量xx(可以自己定义):共有变量_xx(可以自己定义):私有化属性或者方法,这种定义的变量和方法在其他py中,from demo import *这种方式无法导入,类对象和子类可以进行访问__xx(可以自己定义):自定义私有化属性,无法在外部直接访问,可以在类中定义不想别人访问到的变量,或者在一个py中定义不想其他py看到或者使用的全局变量__ xx__(不要自己定义):定义用户...原创 2019-06-18 10:11:22 · 160 阅读 · 0 评论 -
PYTHON高级--深拷贝浅拷贝解析
1.一眼看尽原理图2.深拷贝import copydata = **data_res = copy.deepcopy(data)3.浅拷贝import copydata = **#1.data_res =data#2.data_res = copy.copy(data) 4.两个注意的特例1.当拷贝的数据是元组时,并且内部只是普通不可变数据时, 深拷贝和浅拷贝都是...原创 2019-06-16 09:30:16 · 254 阅读 · 0 评论 -
PYTHON高级--GIL(全局解释器锁)
GIL:保证系统同一时刻只有一个程序在运行(这个问题是pytho代码解释器的问题)单线程死循环–单个核的CPU占满while True: pass多线程死循环–假的并发时间上是串行–多线程还是快(因为他会在等待时间做别的事情–协程)–适合io密集型import threadingdef demo(): while True: passt1 = thr...原创 2019-06-12 15:09:52 · 213 阅读 · 0 评论