<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[python_o的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/python_o</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; python_o]]></copyright><item><title><![CDATA[linux查找超过一定时间的文件，并批量删除]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/112374114</link><guid>https://blog.youkuaiyun.com/python_o/article/details/112374114</guid><author>python_o</author><pubDate>Fri, 08 Jan 2021 17:34:32 +0800</pubDate><description><![CDATA[1、find . -maxdepth 4  -name “-” -mtime 3
-maxdepth的值决定是否对下面的子目录进行递归查找
-mtime 3表示查找刚好3天的；-mtime +3表示查找超过3天的，也就是查找3天前的文件；-mtime -3表示查找3天内的，最近3天内的
2、find . -maxdepth 4  -name “-” -mtime 3 | sudo xargs rm -rf  删除第3天的
3、排除某些目录：
find . -maxdepth 4  -name “-” -mt]]></description><category></category></item><item><title><![CDATA[Jupyter Notebook 快捷键]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/110920892</link><guid>https://blog.youkuaiyun.com/python_o/article/details/110920892</guid><author>python_o</author><pubDate>Wed, 09 Dec 2020 14:09:35 +0800</pubDate><description><![CDATA[Jupyter Notebook &amp; Lab快捷键

Jupyter有两种模式，命令模式和编辑模式，分别有不同的快捷键。

编辑模式(按键 Enter 切换)：
可以往单元中键入代码或文本，此时单元格被蓝色的框线包围，且命令模式下的快捷键不生效；


命令模式 (按键 Esc 开启)：
可以用快捷键命令运行单元格，移动单元格，切换单元格编辑状态等等，此时的单元格被灰色的框线包围，且编辑模式下的快捷键不生效；


编辑模式快捷键




快捷键
作用




Esc
切换到命令模式


Ctrl-M
]]></description><category></category></item><item><title><![CDATA[centos 7 上安装ipython 和 jupyter notebook]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/109767859</link><guid>https://blog.youkuaiyun.com/python_o/article/details/109767859</guid><author>python_o</author><pubDate>Wed, 18 Nov 2020 11:17:33 +0800</pubDate><description><![CDATA[下载ipython:
yum -y install ipython
下载anaconda3和jupyter notebook:
首先在本地下载好anaconda的Linux下载包，放到Linux目录下

之后设置运行权限，并运行进行下载。
安装好后，进入配置文件，设置anaconda的环境变量


下载jupyter notebook

对jupyter进行全局预配置，生成一个配置文件，之后设置jupyter登录密码，最后指定登录的网址，即可进行网页登录。


...]]></description><category></category></item><item><title><![CDATA[机器学习]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/97763676</link><guid>https://blog.youkuaiyun.com/python_o/article/details/97763676</guid><author>python_o</author><pubDate>Tue, 30 Jul 2019 11:25:45 +0800</pubDate><description><![CDATA[Jupyter Notebook, numpy和matplotlib
学习和机器学习相关的基础工具的使用：Jupyter Notebook, numpy和matplotlib。
最基础的分类算法-k近邻算法 KNN
学习k近邻算法的原理，对训练数据集，测试数据集，分类准确度，超参数，数据归一化，样本距离等基础概念。详细了解scikit-learn框架中对算法的封装，并实现我们自己的算法框架。
线性...]]></description><category></category></item><item><title><![CDATA[python CPU密集型对IO密集型 多进程更优于多线程 GIL]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/90110665</link><guid>https://blog.youkuaiyun.com/python_o/article/details/90110665</guid><author>python_o</author><pubDate>Sat, 11 May 2019 15:51:43 +0800</pubDate><description><![CDATA[CPU密集型和IO密集型
最近在看Python的多线程，经常我们会听到老手说：“python下多线程是鸡肋，推荐使用多进程！”，但是为什么这么说呢？
要知其然，更要知其所以然。所以有了下面的深入研究：
首先强调背景：
1、GIL是什么？GIL的全称是Global Interpreter Lock(全局解释器锁)，来源是python设计之初的考虑，为了数据安全所做的决定。
2、每个CPU在同一时间只...]]></description><category></category></item><item><title><![CDATA[数据库引擎和引擎的特点]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/90024036</link><guid>https://blog.youkuaiyun.com/python_o/article/details/90024036</guid><author>python_o</author><pubDate>Thu, 09 May 2019 10:59:04 +0800</pubDate><description><![CDATA[引擎就是一个程序的核心组件。
简单来说，存储引擎就是指表的类型以及表在计算机上的存储方式。
存储引擎的概念是MySQL的特点，Oracle中没有专门的存储引擎的概念，Oracle有OLTP和OLAP模式的区分。不同的存储引擎决定了MySQL数据库中的表可以用不同的方式来存储。我们可以根据数据的特点来选择不同的存储引擎。
在MySQL中的存储引擎有很多种，可以通过“SHOW ENGINES”语句来查...]]></description><category></category></item><item><title><![CDATA[mysql数据库的基础了解]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89816480</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89816480</guid><author>python_o</author><pubDate>Sat, 04 May 2019 18:54:13 +0800</pubDate><description><![CDATA[数据：
描述事物符号记录,以记录形式统一的格式进行存储。
(包括数字、文字、图形、图像、声音、档案记录等）
广义数据：出现在计算机内任意数据流
狭义数据：存储在计算机内的结构化数据
程序=指令+数据
数据层次模型：1.树状层次模型，2.网状结构模型，3.关系结构模型
二维关系：行(row)，列(column)
数据库的组成：
表：将不同的记录（数据）组织在一起，就形成了表，用于存储数据。（表是存储...]]></description><category></category></item><item><title><![CDATA[TCP和UDP]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89810075</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89810075</guid><author>python_o</author><pubDate>Sat, 04 May 2019 02:00:04 +0800</pubDate><description><![CDATA[#"传输层"的功能：
就是建立"端口到端口"的通信。相比之下，“网络层"的功能是建立"主机到主机"的通信。只要确定主机和端口，
#我们就能实现程序之间的交流。因此，Unix系统就把主机+端口，叫做"套接字”（socket）。有了它，就可以进行网络应用程序开发了。
#UDP数据包，也是由"标头"和"数据"两部分组成。
#"标头"部分主要定义了发出端口和接收端口，"数据"部分就是具体的内容。然后，把整...]]></description><category></category></item><item><title><![CDATA[消息队列]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89810067</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89810067</guid><author>python_o</author><pubDate>Sat, 04 May 2019 01:54:51 +0800</pubDate><description><![CDATA[#消息队列”是在消息的传输过程中保存消息的容器。
#消息队列最经典的用法就是消费者和生成者之间通过消息管道来传递消息，消费者和生成者是不同的进程。
#生产者往管道中写消息，消费者从管道中读消息。
#操作系统提供了很多机制来实现进程间的通信 ，multiprocessing模块就提供了Queue和Pipe两种方法来实现。

...]]></description><category></category></item><item><title><![CDATA[互斥锁和死锁]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89784481</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89784481</guid><author>python_o</author><pubDate>Fri, 03 May 2019 01:45:06 +0800</pubDate><description><![CDATA[#互斥锁定义：
#由于并发状态下，操作系统对多个进程进行调度，而多个进程可能都有操作硬件的需求，这时就会产生多个进程对资源的共享，
#而共享意味着竞争，会产生许多问题。这样就需要一种机制或者手段去解决竞争，使竞争变得有序化，从而使共享资源按照预定的结果去获取。
#这种手段就是加互斥锁
#互斥锁特点：1.原子性 2.唯一性 3.非繁忙等待
import threading
import time
f...]]></description><category></category></item><item><title><![CDATA[进程，线程，协程]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89784446</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89784446</guid><author>python_o</author><pubDate>Fri, 03 May 2019 01:19:00 +0800</pubDate><description><![CDATA[#一、线程
#线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中，是进程中的实际运作单位。
#一条线程指的是进程中一个单一顺序的控制流，一个进程中可以并发多个线程，每条线程并行执行不同的任务
#方法：
#start        线程准备就绪，等待CPU调度
#setName      设置线程名称
#getName      获取线程名称
#setDaemon    把一个主进程设置为...]]></description><category></category></item><item><title><![CDATA[垃圾回收机制]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89780064</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89780064</guid><author>python_o</author><pubDate>Fri, 03 May 2019 00:47:25 +0800</pubDate><description><![CDATA[#简要陈述垃圾回收机制
#Python GC主要使用引用计数（reference counting）来跟踪和回收垃圾。在引用计数的基础上，
#通过“标记-清除”（mark and sweep）解决容器对象可能产生的循环引用问题，通过“分代回收”（generation collection）以空间换时间的方法提高垃圾回收效率。
#引用计数
#PyObject是每个对象必有的内容，其中ob_refcn...]]></description><category></category></item><item><title><![CDATA[生产者和消费者模式]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89777424</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89777424</guid><author>python_o</author><pubDate>Fri, 03 May 2019 00:38:07 +0800</pubDate><description><![CDATA[#生产者模式和消费者模式
#定义：
#在并发编程中使用生产者和消费都模式能够解决绝大多数并发问题。
#该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据
#的速度。
#某些模块负责生产数据，这些数据由其他模块来负责处理（此处的模块可能是：函数、线程、进程等).
#产生数据的模块称为生产者,而处理数据的模块称为消费者
#优点：
#1.解耦耦合
#2.并发
#3.闲忙不均
#案例
#两...]]></description><category></category></item><item><title><![CDATA[单例模式]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89770935</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89770935</guid><author>python_o</author><pubDate>Fri, 03 May 2019 00:15:25 +0800</pubDate><description><![CDATA[#单例模式
#程序员保证一个类只有一个实例，并且该类可以自行实例化并向整个系统提供这个实例，这个类称为单例类，单例模式是一种对象创建型模式。
#Python语言实现单例模式途径一：使用Python模块。
#在Python语言中，Python模块就是一个比较典型的单例模式。Python模块在第一次执行时会生成一个.pyc 文件。
#当第二次调用执行模块时就会直接调用.pyc 文件而不执行代码。
#P...]]></description><category></category></item><item><title><![CDATA[闭包和装饰器]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89766430</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89766430</guid><author>python_o</author><pubDate>Thu, 02 May 2019 23:48:33 +0800</pubDate><description><![CDATA[#闭包三大条件：
#1.必须有内嵌函数
#2.内嵌函数用了外部函数的变量
#3.返回的是内部函数的函数名
def waibu(n):
a=100
def neibu(x):
return x+a-n
return neibu
x=waibu(5)
print(x(10))  #105
print(x(11))  #106
#装饰器
import time
def zhuangshi(fuc):
d...]]></description><category></category></item><item><title><![CDATA[异常和异常的处理]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89766290</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89766290</guid><author>python_o</author><pubDate>Thu, 02 May 2019 23:25:08 +0800</pubDate><description><![CDATA[#python中的错误有两种：1：语法错误 2：异常
#异常：在语法正确的前提下，程序报错
#常见的错误操作：1:IndexError 索引错误    2：keyError  键不存在  3：AssertError  断言错误
#处理异常的操作：
#1：try…except…else…
#try–可能出问题的代码  except–try下是异常代码后，运行这里的   else–try下代码没问题，...]]></description><category></category></item><item><title><![CDATA[生成器和迭代器]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89766140</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89766140</guid><author>python_o</author><pubDate>Thu, 02 May 2019 23:02:44 +0800</pubDate><description><![CDATA[#迭代器 iterator
#迭代是Python最强大的功能之一，是访问集合元素的一种方式。
#迭代器是一个可以记住遍历的位置的对象。
#迭代器对象从集合的第一个元素开始访问，直到所有的元素被访问完结束。迭代器只能往前不会后退。
#迭代器有两个基本的方法：iter() 和 next()。
#字符串，列表或元组对象都可用于创建迭代器：
#===============================...]]></description><category></category></item><item><title><![CDATA[文件的读取方式：read,readline,readlines]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89763693</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89763693</guid><author>python_o</author><pubDate>Thu, 02 May 2019 18:36:58 +0800</pubDate><description><![CDATA[#文件的读取方式
#1.打开文件
#2.读数据
#3.关闭文件
#f.open(‘a.txt’,‘r’)  代表以读的方式打开a.txt文件
#read()  ： 一个数据一个数据读取，一次性读取整个文件内容。小文件推荐使用read(size)方法，比较快，
#文件小不用定义size,可以定义size,size越大运行时间越长。 输出返回的是字符串
f = open(‘test.py’, ‘r’)...]]></description><category></category></item><item><title><![CDATA[面向对象：继承，多态，封装]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89763250</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89763250</guid><author>python_o</author><pubDate>Thu, 02 May 2019 17:35:58 +0800</pubDate><description><![CDATA[#继承
#多继承，广度优先
class A(object):
def test(self):
print(‘from A’)
class B(A):
# def test(self):
#     print(‘from B’)
pass
class C(A):
# def test(self):
#     print(‘from C’)
pass
class D(B):
# def test(...]]></description><category></category></item><item><title><![CDATA[__init__方法和__new__方法的使用]]></title><link>https://blog.youkuaiyun.com/python_o/article/details/89762117</link><guid>https://blog.youkuaiyun.com/python_o/article/details/89762117</guid><author>python_o</author><pubDate>Thu, 02 May 2019 15:56:40 +0800</pubDate><description><![CDATA[class  User:
def new(cls, *args, **kwargs):
print(“new”)
def __init__(self,name):
    self.name=name
    print("init")

User()
#返回值为：
#new
#new的功能是在生成对象之前所做的动作，接受的参数是cls 类
#init是在对象生成之后完善对象的属性 它接受的是se...]]></description><category></category></item></channel></rss>