<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kill0383的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kill0383</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kill0383]]></copyright><item><title><![CDATA[迭代器和生成器的一些注意问题]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/78457313</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/78457313</guid><author>kill0383</author><pubDate>Mon, 06 Nov 2017 19:04:55 +0800</pubDate><description><![CDATA[一、迭代器可迭代的（可迭代对象）： 
可迭代对象都是可迭代的。如：str、list、dict、tuple、文件对象等等 
只要是对象有__iter__内部方法，就可以称之为可迭代对象迭代器： 
迭代器也是可迭代的，他不光有__iter__方法，还有__next__方法。 
迭代器一次只能取一个值，直到取完后引发一个错误 
获得一个迭代器： 
调用可迭代对象的__iter__()就可以获得迭代器 
使]]></description><category></category></item><item><title><![CDATA[nonlocal]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/78424119</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/78424119</guid><author>kill0383</author><pubDate>Thu, 02 Nov 2017 13:49:48 +0800</pubDate><description><![CDATA[n = 0
def func():
    n = 1
    def func2():
        # n = 2
        def func3():
            nonlocal n
            n+=1
        func3()
        print(n)
    func2()
    print(n)func()
print(n)2
2
0上面]]></description><category></category></item><item><title><![CDATA[装饰器详解]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/78424045</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/78424045</guid><author>kill0383</author><pubDate>Thu, 02 Nov 2017 13:41:59 +0800</pubDate><description><![CDATA[闭包如果一个函数反复调用，会造成内存消耗，闭包的特性就是当调用外部函数的变量的时候，运行结束后再内存中不会释放，反复调用就不会对内存造成消耗 
闭包的定义：当内部函数使用了外部函数的变量（注意不是全局变量）的时候，称这种方式为闭包def f1(a):
    def f2():
        print(a)
        return a
    return f2概念如果想在某个函数的之前或]]></description><category></category></item><item><title><![CDATA[Web开发之路——Django初探]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/78364081</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/78364081</guid><author>kill0383</author><pubDate>Fri, 27 Oct 2017 13:48:27 +0800</pubDate><description><![CDATA[一、Django流程介绍我的环境，系统使用的是ubuntu16.04 
python是python3.7 
Django是1.11.6 
数据库使用的是MySQL（同时还需要安装pymysql） 
注：由于python3还不支持MySQLDB，然而D它又是Django与MySQL链接必要的模块，我们需要在settings.py所在目录的”__init_ _.py”里添加这样的内容import pym]]></description><category></category></item><item><title><![CDATA[web开发之路——jQuery（下）]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/78280216</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/78280216</guid><author>kill0383</author><pubDate>Thu, 19 Oct 2017 09:16:54 +0800</pubDate><description><![CDATA[一、小例子——tab菜单<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset="UTF-8">
    <title></title>
    <!-- 
    line-height:33px;  让标题的内容居中显示 
    padding:5px; 边距
    -->
    <style>
        .tab-box]]></description><category></category></item><item><title><![CDATA[web开发之路——javascript、dom、jQuery（上）]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/77976708</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/77976708</guid><author>kill0383</author><pubDate>Thu, 14 Sep 2017 10:12:04 +0800</pubDate><description><![CDATA[JavaScriptJavaScript是一门编程语言，浏览器内置了JavaScript语言的解释器，所以在浏览器上按照JavaScript语言的规则编写相应代码之，浏览器可以解释并做出相应的处理。1、代码存放形式以及存放的位置1、JavaScript代码存在形式 
javascript是浏览器可以直接编译的语言，他可以实现网页的各种“动作”。 
JavaScript的存在形式分为两种 
第一种是直]]></description><category></category></item><item><title><![CDATA[web开发之路——HTML]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/77770725</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/77770725</guid><author>kill0383</author><pubDate>Fri, 01 Sep 2017 14:15:47 +0800</pubDate><description><![CDATA[1、HTML简介定义 
超级文本标记语言是标准通用标记语言下的一个应用，也是一种规范，一种标准，它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件，通过在文本文件中添加标记符，可以告诉浏览器如何显示其中的内容（如：文字如何处理，画面如何安排，图片如何显示等）。浏览器按顺序阅读网页文件，然后根据标记符解释和显示其标记的内容，对书写出错的标记将不指出其错误，且不停止其解释执行过程，]]></description><category></category></item><item><title><![CDATA[python运维之路——sqlalchemy ORM]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/77649062</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/77649062</guid><author>kill0383</author><pubDate>Mon, 28 Aug 2017 15:37:22 +0800</pubDate><description><![CDATA[一、ORM介绍orm英文全称object relational mapping,就是对象映射关系程序，简单来说我们类似python这种面向对象的程序来说一切皆对象，但是我们使用的数据库却都是关系型的，为了保证一致的使用习惯，通过orm将编程语言的对象模型和数据库的关系模型建立映射关系，这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了，而不用直接使用sql语言]]></description><category></category></item><item><title><![CDATA[python运维之路——mysql、pymysql]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/77321020</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/77321020</guid><author>kill0383</author><pubDate>Thu, 17 Aug 2017 12:03:23 +0800</pubDate><description><![CDATA[MySQL1、数据库介绍什么是数据库 
数据库（Database）是按照数据结构来组织、存储和管理数据的仓库，每个数据库都有一个或多个不同的API用于创建，访问，管理，搜索和复制所保存的数据。我们也可以将数据存储在文件中，但是在文件中读写数据速度相对较慢。所以，现在我们使用关系型数据库管理系统（RDBMS）来存储和管理的大数据量。所谓的关系型数据库，是建立在关系模型基础上的数据库，借助于集合代数等数]]></description><category></category></item><item><title><![CDATA[python运维之路——Twsited、memcache、Redis、RabbitMQ]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/77069561</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/77069561</guid><author>kill0383</author><pubDate>Thu, 10 Aug 2017 18:10:16 +0800</pubDate><description><![CDATA[Twsited网络框架Twisted是一个事件驱动的网络框架，其中包含了诸多功能，例如：网络协议、线程、数据库管理、网络操作、电子邮件等等事件驱动简而言之，事件驱动分为两个部分，第一、注册事件；第二、出发事件。 
自定义事件驱动框架#!/usr/bin/env python3
#自定义事件驱动框架
event_list = []def run():
    for event in event_li]]></description><category></category></item><item><title><![CDATA[Python运维之路——协程、事件驱动与异步IO]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/76037786</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/76037786</guid><author>kill0383</author><pubDate>Mon, 24 Jul 2017 22:27:21 +0800</pubDate><description><![CDATA[协程的概念


协程，又称微线程，coroutine。是一种用户态的轻量级线程。
协程拥有自己的寄存器上下文和栈。协程调度切换时，将寄存器上下文和栈保存到其他地方，在切回来的时候，回复先前保存的寄存器上下文和栈。因此，协程能保持上一次调用的状态（即所有局部状态的一个特定组合），每次过程重如时，就相当于进入上一次调用的状态，换种说法：进入上一次离开时所处逻辑流的位置。
协程的好处： 
无需线程上下文]]></description><category></category></item><item><title><![CDATA[python小练习八——多线程的发布工具]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/75042685</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/75042685</guid><author>kill0383</author><pubDate>Thu, 13 Jul 2017 00:53:11 +0800</pubDate><description><![CDATA[题目要求1、对机器进行分组 
2、对指定组的机器进行批量操作（执行某条命令，上传下载文件） 
3、要有操作日志代码#!/usr/bin/env python3
import sys, paramiko, os, time, pickle
from multiprocessing import Process, Lock
import logginglogging.basicConfig(filena]]></description><category></category></item><item><title><![CDATA[运维小白的python之路——paramiko]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/74726055</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/74726055</guid><author>kill0383</author><pubDate>Fri, 07 Jul 2017 15:42:13 +0800</pubDate><description><![CDATA[paramiko模块SSHClient()基于用户名密码连接#!/usr/bin/env python3
#基于用户名密码的连接
import paramiko#创建SSH对象
ssh = paramiko.SSHClient()
#允许链接不在know_host文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#链接服]]></description><category></category></item><item><title><![CDATA[运维小白的python之路——异常、进程与线程]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/74614878</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/74614878</guid><author>kill0383</author><pubDate>Thu, 06 Jul 2017 22:34:35 +0800</pubDate><description><![CDATA[异常异常是python中比较基础的概念，在之前的代码中也有用到过，简而言之就是铺捕获代码中的异常，防止程序的中断。 
断言：#!/usr/bin/env python3class DingyiException(Exception):
    def __init__(self, massage):
        self.massage = massage
    def __str__(sel]]></description><category></category></item><item><title><![CDATA[python小练习七——支持多用户在线的FTP程序]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/74078579</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/74078579</guid><author>kill0383</author><pubDate>Sat, 01 Jul 2017 18:55:08 +0800</pubDate><description><![CDATA[题目要求用户加密认证 
允许同时多用户登录 
每个用户有自己的家目录 
允许用户在ftp server上随意切换目录 
允许用户查看当前目录下文件 
允许上传和下载文件，保证文件一致性代码server端
#!/usr/bin/env python3import socketserver,os,pickle,hashlibclass MyServer(socketserver.BaseRequestH]]></description><category></category></item><item><title><![CDATA[运维小白的Python之路——socket编程]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/73744318</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/73744318</guid><author>kill0383</author><pubDate>Mon, 26 Jun 2017 20:52:45 +0800</pubDate><description><![CDATA[一、基础概述socket通常也称作“套接字”，用户描述IP地址和端口，是一个通信链的句柄，应用程序通常通过“套接字”，想网络发出请求或者应答网络请求。 
socket起源于Unix，而Unix\Linux的基本哲学之一就是“一切皆文件”，对于文件用“打开”，“读写”，“关闭”模式来操作。socket就是该模式的一个实现，socket即是一种特殊的文件，一些socket函数就是对其进行的一种操作（读写]]></description><category></category></item><item><title><![CDATA[python小练习六——小游戏]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/73384782</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/73384782</guid><author>kill0383</author><pubDate>Sat, 17 Jun 2017 20:20:25 +0800</pubDate><description><![CDATA[题目要求使用面向对象设计出一个小游戏，可以控制一个人物做一些操作代码#!/usr/bin/env python
# coding:utf-8
import pickle
import os,sys
import shelve
def write_girl(meinv):
    girl = shelve.open("girl")
    girl[meinv.name] = meinv
    g]]></description><category></category></item><item><title><![CDATA[运维小白的python之路（六）——面向对象]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/72926557</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/72926557</guid><author>kill0383</author><pubDate>Thu, 08 Jun 2017 16:45:35 +0800</pubDate><description><![CDATA[概述面向过程：根据业务逻辑，从上到下写代码，一步一步的执行适用于简单的脚本编写。 
函数式：将代码封装进函数中，程序通过函数的调用来完成，适用于较复杂的脚本编写。 
面向对象：对函数进行类和封装，适合大型的程序开发。面向过程编程最易被初学者接收，一般用一段代码或者时一个函数来完成程序的某一个功能。有些代码通过复制粘贴即可完成。 
例如：while True：
    if 分数 >= 90 :]]></description><category></category></item><item><title><![CDATA[运维小白的python之路（五）——模块]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/71122758</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/71122758</guid><author>kill0383</author><pubDate>Wed, 03 May 2017 13:52:56 +0800</pubDate><description><![CDATA[OS模块

用于系统级别的操作



os.getcdw()

获取当前目录，及python脚本执行时所在的目录

>>> import os
>>> os.getcwd()
'/home/dy'

os.chdir(“dirname”)

改变当前目录，相当于shell的cd

>>> os.chdir("/home/dy/iso")
>>> os.getcwd()
'/home/dy/iso']]></description><category></category></item><item><title><![CDATA[Python小练习五——ATM系统]]></title><link>https://blog.youkuaiyun.com/kill0383/article/details/70853772</link><guid>https://blog.youkuaiyun.com/kill0383/article/details/70853772</guid><author>kill0383</author><pubDate>Thu, 27 Apr 2017 14:37:35 +0800</pubDate><description><![CDATA[题目要求做一个ATM系统可以实现下列功能
每个用户有15000的额度，或可以自定义
实现购物商城，买东西加入购物车，使用信用卡接口结账
可提现，手续费%5
每月22号出账单，10号为还款日，过期未还按欠款总额万分之5，每日计息
支持多账户登陆
支持用户间转账
记录每月日常消费流水
提供还款接口
ATM操作日志
提供管理接口：创建用户、冻结账户、设置额度等
流程图#目录结构atm_admin.py：p]]></description><category></category></item></channel></rss>