1很多人的努力都是浅尝辄止的

2.很多牛逼的人还在努力

3.半年会后牛逼的转身

冒泡算法:for n in range(1,len(li)):

for m in range(len(li) -n) :

num1 = li[m]

num2 = li[m+1]

if num1 > num2:

temp = li[m]

li[m] = num2

li[m+1] = temp

print li

ha 配置思路#!/usr/bin/env python

#-*- coding:utf-8 -*-

# powered by xiaobing

#查,加,删

#定义读的函数

import os,json

def fetch(backend):

#打开文件ha

with open('ha') as obj:

flag = False

fetch_list = []

#按行读取文件,每次只读取一行

for line in obj:

#建个空列表,为后续将backend 下的值存储用

#如果这行内容等于 backend 参数值,就设置个flage值为True,认为找到了要找的代码块,然后跳出这个循环,读取代码块的下一行内容

if line.strip() == "backend %s" % backend:

flag = True

continue

#如果这个flag = True 说明已找到代码块,然后将这行内容加入到空列表fetch_list

if flag and line.strip():

fetch_list.append(line.strip())

#如果这个flag = True 说明已找到代码块并且又遇到了backend开头的代码,则说明后面的内容已无关,不需要继续循环

if line.strip().startswith("backend") and flag:

break

return fetch_list

def add_ha(dict_info):

#获取要添加的 backend值

backend_title = dict_info.get("backend")

current_title = "backend %s" % backend_title

#要添加的backend 的server记录

server_record_dict = dict_info.get("record")

current_record = "server %s %s weight %s maxconn %s" %(server_record_dict.get("server"),server_record_dict.get("server"),server_record_dict.get("weight"),server_record_dict.get("maxconn"))

#获取当前这个backend记录下的server列表

serverlist = fetch(backend_title)

#判断这个新增backend 是否存在

if serverlist:

#增加server记录

#打开旧文件,并打开新文件

with open('ha') as read_obj,open('ha_new',w) as write_obj:

#设置是否已经读取的标识

flag = False

#设置是否写入新记录的标识

has_write_flage = False

#读取文件,按行读取

for line in read_obj:

#如果读取行到了要写入的backend行,就设置读取标识为Ture,并跳出本次循环,读取下一行

if line.strip() == current_title:

flag = True

continue

#如果已读取到写入行,并且读取到了新的backend记录,就设置

if flag and line.strip().startswith("backend"):

flag = False

if flag:

if not has_write_flage:

for new_line in serverlist:

write_obj.write("%s %s \n" %(" "*8,new_line))

else:

has_write_flage=True

else:

write_obj.write(line)

else:

#增加backend并添加记录

#打开文件写入新记录,同时打开旧文件和新文件

with open('ha') as read_obj,open('ha_new','w') as write_obj:

for line in read_obj:

write_obj.write(line)

write_obj.write("\n")

write_obj.write(current_title+"\n")

write_obj.write("%s %s \n" %(" "*8,current_record) )

#os.rename('ha','ha.bak')

#os.rename('ha_new','ha')

s = '{"backend": "test.oldboy.org","record":{"server": "100.1.7.9","weight": 20,"maxconn": 30}}'

read_input=json.loads(s)

add_ha(read_input)

fetch("www.oldboy.org")

lambda  简化函数

学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示

#处理简单函数

#自动return

#!/usr/bin/env python

#-*- coding:utf-8 -*-

# powered by xiaobing

def func1(arg):

return arg+1

result = func1(100)

print result

func2 = lambda a:a+1

result = func2(1000)

print result

map函数

l1=[1,2,3]

l2=[3,4,5]

l3=[4,5,6]

print map(lambda a1,a2,a3:a1+a2+a3,l1,l2,l3)

filter() 过滤只符合条件的数据

l4 = [1,44,55,22,11,33]

print filter(lambda a:a>33,l4)

reduce()  对于序列内所有元素进行累计操作

l5 = [1,2,3,4,5,6,7,8,9,10]

print reduce(lambda a1,a2:a1+a2,l5)

map 所有元素操作

filter 过滤,获取指定元素集合

reduce ,累计操作

yield

记住上一次操作,下次在执行时,继续执行#!/usr/bin/env python

#-*- coding:utf-8 -*-

# powered by xiaobing

'''

def func1():

yield 1

yield 2

yield 3

for i in func1():

print i

'''

def mrange(arg):

seed = 0

while True:

seed = seed +1

if seed >10 :

return

else:

yield seed

for i in mrange(10):

print i

装饰器:

装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或类,使用装饰器可以在函数执行前和执行后添加相应操作。

场景:如果一个python程序已经有500个函数了,但突然老板要求我们要增加登陆验证,只有通过验证的才能执行,而且不要用户更改调用方式。

#!/usr/bin/env python

#-*- coding:utf-8 -*-

# powered by xiaobing

def wrapper(func):

if login("xiaobing"):

return func

else:

print '未认证'

def login(user):

if user == 'xiaobing':

return True

else:

print 'error name '

@wrapper

def home():

print 'home'

@wrapper

def shop():

print 'shop'

def over():

print 'over'

#home = wrapper(home)

home()

shop()

python之路day4_python之路day4相关推荐

  1. 开启Python自动化运维之路

    关于Python的入门,推荐Dive into Python及廖雪峰的Python教程. 第一个程序 学一门语言,按惯例都要先来一个Hello World! 代码高亮效果 代码如下: print(&q ...

  2. python自动化运维之路~DAY1

    python自动化运维之路~DAY1 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件大小单位单位换算 我们一起看一下下面的图: 没错,都是数字,而且这些数字都是二进制的数字 ...

  3. Python小白的进阶之路---Day5

    Python小白的进阶之路---Day5 1.file 1.1打开文件方式(读写两种方式) 1.2文件对象的操作方法 1.3学习对excel及csv文件进行操作 2.os模块 3.datatime模块 ...

  4. python 全栈开发之路 day1

    python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进 ...

  5. 【学无止境】Python技术栈起步之路 (01)—— 需求与环境

    Python技术栈起步之路 (01)-- 需求与环境 1 技术之前的事情 2 找到适合自己的技术栈 3 初步上手 3.1 安装Python3及pipenv 3.2 安装vscode和python相关插 ...

  6. python自动化运维之路~DAY6

    python自动化运维之路~DAY6 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  如果你想开发一款游戏,会存在角色的混搭的情况,这个时候"面向对象过程"就出 ...

  7. 2021-02-25 Python人工智能(自学之路)分享(一)

    Python人工智能(自学之路)分享(一) 这是本人学习Python的一些学习笔记和项目练习 一般每周都会更新博客 链接:https://pan.baidu.com/s/1k8cFgnvWlSkK7u ...

  8. Python小白的进阶之路---Day2

    Python小白的进阶之路---Day2 1. 列表 1.1 标志 1.2 基本操作 (1)创建列表 (2)向列表添加元素 (3)从列表删除元素 (4)拷贝 1.3列表相关方法 2.元祖 2.1标志 ...

  9. 战争热诚的python全栈开发之路

    战争热诚的python全栈开发之路 从学习python开始,一直是自己摸索,但是时间不等人啊,所以自己为了节省时间,决定报个班系统学习,下面整理的文章都是自己学习后,认为重要的需要弄懂的知识点,做出链 ...

最新文章

  1. IE6/IE7中JavaScript json最后一个键值后不能增加逗号
  2. 条款20 :宁以pass-by-reference-to-const 替换pass-by-value
  3. Java IO流学习总结二:File
  4. HashMap测试程序2
  5. 五合体机器人乐高_又来一波新品,高达、乐高全都有
  6. python启动远端 exe_python打包exe开机自动启动的实例(windows)
  7. PDF以及PPT技巧
  8. linux重装显卡驱动后黑屏,manjaro系统用msm更换显卡驱动失败后黑屏的处理
  9. android落花效果 字体渐变,落花有情 亲花有趣
  10. ar面部识别_AR面部识别有什么品牌?
  11. 机器学习:二分类到多分类-ovr,ovo,mvm,sofmax
  12. 随身WIFI折腾日记(一)---霓虹灯
  13. Leaflet中Maker碰撞监测
  14. 国内食品品牌策划公司排名,食品品牌设计公司哪家好?2021最新
  15. 当下比较火的直销分销预订返佣模式系统软件定制开发
  16. python - windows 之 SetCursorPOS与GetCursorPos操控鼠标
  17. 深度!2019年国家自然基金在线填报答疑帖
  18. [RedHat笔记]第一课:Linux的发展史 以及 基础命令的使用
  19. 学会锻炼感悟爱与幸福的能力
  20. IT 入职感言 模板

热门文章

  1. 文本相似度-相似度度量
  2. 在Activity启动过程中如何任务栈的栈顶是否是将要启动的Activity的实例
  3. 服务器上的Linux中Tomcat有时会挂掉的问题及方法
  4. Beam概念学习系列之Pipeline 数据处理流水线
  5. ggplot2绘图入门系列之四:再说散点图
  6. 网络字节序 —— 主机字节序 (Socket编程) 转
  7. 最近发包给朋友,搞定软件小活儿、解决小功能模块的感受
  8. 4.2-户部告急-百姓们太太太太太能生了2333
  9. 操作系统学习笔记-04-操作系统的运行机制和体系结构
  10. 如何获取filecoin_获得Filecoin币有哪些条件?