- 博客(28)
- 收藏
- 关注
原创 迭代器和生成器的一些注意问题
一、迭代器可迭代的(可迭代对象): 可迭代对象都是可迭代的。如:str、list、dict、tuple、文件对象等等 只要是对象有__iter__内部方法,就可以称之为可迭代对象迭代器: 迭代器也是可迭代的,他不光有__iter__方法,还有__next__方法。 迭代器一次只能取一个值,直到取完后引发一个错误 获得一个迭代器: 调用可迭代对象的__iter__()就可以获得迭代器 使
2017-11-06 19:04:55 641
原创 nonlocal
n = 0def func(): n = 1 def func2(): # n = 2 def func3(): nonlocal n n+=1 func3() print(n) func2() print(n)func()print(n)220上面
2017-11-02 13:49:48 232
原创 装饰器详解
闭包如果一个函数反复调用,会造成内存消耗,闭包的特性就是当调用外部函数的变量的时候,运行结束后再内存中不会释放,反复调用就不会对内存造成消耗 闭包的定义:当内部函数使用了外部函数的变量(注意不是全局变量)的时候,称这种方式为闭包def f1(a): def f2(): print(a) return a return f2概念如果想在某个函数的之前或
2017-11-02 13:41:59 306
原创 Web开发之路——Django初探
一、Django流程介绍我的环境,系统使用的是ubuntu16.04 python是python3.7 Django是1.11.6 数据库使用的是MySQL(同时还需要安装pymysql) 注:由于python3还不支持MySQLDB,然而D它又是Django与MySQL链接必要的模块,我们需要在settings.py所在目录的”__init_ _.py”里添加这样的内容import pym
2017-10-27 13:48:27 574
原创 web开发之路——jQuery(下)
一、小例子——tab菜单<!DOCTYPE html><html lang='en'><head> <meta charset="UTF-8"> <title></title> <!-- line-height:33px; 让标题的内容居中显示 padding:5px; 边距 --> <style> .tab-box
2017-10-19 09:16:54 323
原创 web开发之路——javascript、dom、jQuery(上)
JavaScriptJavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。1、代码存放形式以及存放的位置1、JavaScript代码存在形式 javascript是浏览器可以直接编译的语言,他可以实现网页的各种“动作”。 JavaScript的存在形式分为两种 第一种是直
2017-09-14 10:12:04 568
原创 web开发之路——HTML
1、HTML简介定义 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,
2017-09-01 14:15:47 534
原创 python运维之路——sqlalchemy ORM
一、ORM介绍orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用sql语言
2017-08-28 15:37:22 378
原创 python运维之路——mysql、pymysql
MySQL1、数据库介绍什么是数据库 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数
2017-08-17 12:03:23 2376
原创 python运维之路——Twsited、memcache、Redis、RabbitMQ
Twsited网络框架Twisted是一个事件驱动的网络框架,其中包含了诸多功能,例如:网络协议、线程、数据库管理、网络操作、电子邮件等等事件驱动简而言之,事件驱动分为两个部分,第一、注册事件;第二、出发事件。 自定义事件驱动框架#!/usr/bin/env python3#自定义事件驱动框架event_list = []def run(): for event in event_li
2017-08-10 18:10:16 1461
原创 Python运维之路——协程、事件驱动与异步IO
协程的概念协程,又称微线程,coroutine。是一种用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,回复先前保存的寄存器上下文和栈。因此,协程能保持上一次调用的状态(即所有局部状态的一个特定组合),每次过程重如时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置。协程的好处: 无需线程上下文
2017-07-24 22:27:21 2344 1
原创 python小练习八——多线程的发布工具
题目要求1、对机器进行分组 2、对指定组的机器进行批量操作(执行某条命令,上传下载文件) 3、要有操作日志代码#!/usr/bin/env python3import sys, paramiko, os, time, picklefrom multiprocessing import Process, Lockimport logginglogging.basicConfig(filena
2017-07-13 00:53:11 276
原创 运维小白的python之路——paramiko
paramiko模块SSHClient()基于用户名密码连接#!/usr/bin/env python3#基于用户名密码的连接import paramiko#创建SSH对象ssh = paramiko.SSHClient()#允许链接不在know_host文件中的主机ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#链接服
2017-07-07 15:42:13 1025
原创 运维小白的python之路——异常、进程与线程
异常异常是python中比较基础的概念,在之前的代码中也有用到过,简而言之就是铺捕获代码中的异常,防止程序的中断。 断言:#!/usr/bin/env python3class DingyiException(Exception): def __init__(self, massage): self.massage = massage def __str__(sel
2017-07-06 22:34:35 442
原创 python小练习七——支持多用户在线的FTP程序
题目要求用户加密认证 允许同时多用户登录 每个用户有自己的家目录 允许用户在ftp server上随意切换目录 允许用户查看当前目录下文件 允许上传和下载文件,保证文件一致性代码server端#!/usr/bin/env python3import socketserver,os,pickle,hashlibclass MyServer(socketserver.BaseRequestH
2017-07-01 18:55:08 1395
原创 运维小白的Python之路——socket编程
一、基础概述socket通常也称作“套接字”,用户描述IP地址和端口,是一个通信链的句柄,应用程序通常通过“套接字”,想网络发出请求或者应答网络请求。 socket起源于Unix,而Unix\Linux的基本哲学之一就是“一切皆文件”,对于文件用“打开”,“读写”,“关闭”模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的一种操作(读写
2017-06-26 20:52:45 2337
原创 python小练习六——小游戏
题目要求使用面向对象设计出一个小游戏,可以控制一个人物做一些操作代码#!/usr/bin/env python# coding:utf-8import pickleimport os,sysimport shelvedef write_girl(meinv): girl = shelve.open("girl") girl[meinv.name] = meinv g
2017-06-17 20:20:25 411
原创 运维小白的python之路(六)——面向对象
概述面向过程:根据业务逻辑,从上到下写代码,一步一步的执行适用于简单的脚本编写。 函数式:将代码封装进函数中,程序通过函数的调用来完成,适用于较复杂的脚本编写。 面向对象:对函数进行类和封装,适合大型的程序开发。面向过程编程最易被初学者接收,一般用一段代码或者时一个函数来完成程序的某一个功能。有些代码通过复制粘贴即可完成。 例如:while True: if 分数 >= 90 :
2017-06-08 16:45:35 632
原创 运维小白的python之路(五)——模块
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'
2017-05-03 13:52:56 3598
原创 Python小练习五——ATM系统
题目要求做一个ATM系统可以实现下列功能每个用户有15000的额度,或可以自定义实现购物商城,买东西加入购物车,使用信用卡接口结账可提现,手续费%5每月22号出账单,10号为还款日,过期未还按欠款总额万分之5,每日计息支持多账户登陆支持用户间转账记录每月日常消费流水提供还款接口ATM操作日志提供管理接口:创建用户、冻结账户、设置额度等流程图#目录结构atm_admin.py:p
2017-04-27 14:37:35 973
原创 运维小白的python之路(四)
冒泡排序法遍历一个队列,把第一个值与第二个值比较,如果后面的比前面的值大,就将两个值互换,直到遍历结束。 再进行第二次循环,这次循环是上次循环次数的减一次,也是做同上次循环一样的操作。 直到最后一次循环。#!/usr/bin/env pythona = [10,4,33,21,54,3,8,11,5,22,2,1,17,13,6]for j in range(1,len(a)): f
2017-04-16 20:36:36 328
原创 Python小练习四——计算器
题目要求写出一个计算器,可以计算下面的公式: 1 - 2 * ((60 - 30 + (-40.0 / 5) * (9 - 2 * 5 / 3 + 7 / 3 * 99 / 4 * 2998 + 10 * 568 / 14)) - (-4 * 3) / (16 - 3 * 2))流程图代码#!/usr/bin/env python3import refrom decimal import De
2017-04-14 21:01:40 389
原创 运维小白的Python之路(三)
迭代器和生成器迭代器迭代器的定义:从对象的第一个元素开始访问,直到最后一个元素。迭代器不需要准备好所有的元素,适用于读取较大的文件。 特点: 1、不许呀关心迭代器的内部结构,仅需通过next()(在python2.7中是next())方法,不断取下一个内容。 2、不能随机访问集合中的某个值,只能从头到尾访问 3、访问一半时不能后退 4、便于循环比较的数据集合,可以节省内存
2017-04-09 11:59:50 552
原创 Python小练习三
题目要求给出下列文档,但求用户可以不用户文本编辑器的情况下修改配置文档 1.只修改backend的配置就可以 2.用户需要输入backend,在输入域名、最后输入具体配置流程图代码#!/usr/bin/env python3the_key = input("请输入需要修改的标识1")the_value = input("请输入需要修改的标识2")the_content = input("请输
2017-04-08 21:24:22 332
原创 运维小白的Python之路(二)
集合集合与字典类似,都是无序的。集合没有key,在同一集合内,不允许相同的元素出现集合的定义s = set() #定义空集合s = set([1,2,3,4,5]) #定义集合集合的内部方法s.difference
2017-04-04 15:33:06 3619
原创 Python小练习二
题目:购物车这个小练习是综合上一个联系的基础上再添加一个购物车的功能,我主要实现了下面的几个功能:用户登录(三次登录失败锁定账户)三级菜单(商品的目录)向购物车添加商品与移除商品购物车结算功能,结算后自动清除购物车付款功能,余额不足的情况会提示用户充值流程图流程图我也是才刚刚开始画,可能画的不标准,现在只能是表达我的一个思路,如果规范的画流程图我会在以后抽出时间来学习。 目录结构主文件
2017-03-30 23:50:24 533
原创 Python小练习(一)
题目一:编写登录接口输入用户名和密码输入成功后显示欢迎信息输错三次后锁定用户流程图 ####代码#####!/usr/bin/env pythonimport pickledef file_read(): f = open('login.txt', 'rb') user_list = pickle.load(f) return user_listdef logi
2017-03-28 11:19:56 429
原创 运维小白的python之路(一)
运维小白的python之路(一) 本人运维小白一枚,目前在负责某银行的测试服务器的基础运维。浑浑噩噩的过了一年,工作上也涉及不到什么技术。身边的朋友们都在各自的领域内奋斗发展,感觉自己不能这样下去了,于是乎开始学习python,并用博客记录自己的点点滴滴。废话就到此为止,开始学习。1. Python2.X与Python3.X的区别 Python2.X与Python3.X是并行开发的,但
2017-03-27 11:12:54 3220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人