python之路day4_python之路day4

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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园的建设目标是通过数据整合、全面共享,实现校园内教学、科研、管理、服务流程的数字化、信息化、智能化和多媒体化,以提高资源利用率和管理效率,确保校园安全。 智慧校园的建设思路包括构建统一支撑平台、建立完善管理体系、大数据辅助决策和建设校园智慧环境。通过云架构的数据中心与智慧的学习、办公环境,实现日常教学活动、资源建设情况、学业水平情况的全面统计和分析,为决策提供辅助。此外,智慧校园还涵盖了多媒体教学、智慧录播、电子图书馆、VR教室等多种教学模式,以及校园网络、智慧班牌、校园广播等教务管理功能,旨在提升教学品质和管理水平。 智慧校园的详细方案设计进一步细化了教学、教务、安防和运维等多个方面的应用。例如,在智慧教学领域,通过多媒体教学、智慧录播、电子图书馆等技术,实现教学资源的共享和教学模式的创新。在智慧教务方面,校园网络、考场监控、智慧班牌等系统为校园管理提供了便捷和高效。智慧安防系统包括视频监控、一键报警、阳光厨房等,确保校园安全。智慧运维则通过综合管理平台、设备管理、能效管理和资产管理,实现校园设施的智能化管理。 智慧校园的优势和价值体现在个性化互动的智慧教学、协同高效的校园管理、无处不在的校园学习、全面感知的校园环境和轻松便捷的校园生活等方面。通过智慧校园的建设,可以促进教育资源的均衡化,提高教育质量和管理效率,同时保障校园安全和提升师生的学习体验。 总之,智慧校园解决方案通过整合现代信息技术,如云计算、大数据、物联网和人工智能,为教育行业带来了革命性的变革。它不仅提高了教育的质量和效率,还为师生创造了一个更加安全、便捷和富有智慧的学习与生活环境。
在 Day17 中,我们可以通过 Flask 框架快速搭建一个 BBS 论坛。具体步骤如下: 1. 创建 Flask 应用 ```python from flask import Flask app = Flask(__name__) ``` 2. 创建数据库 ```python from flask_sqlalchemy import SQLAlchemy app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///bbs.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) ``` 3. 创建数据库模型 ```python class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) password = db.Column(db.String(20), nullable=False) class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) ``` 4. 创建路由和视图函数 ```python @app.route('/') def index(): posts = Post.query.all() return render_template('index.html', posts=posts) @app.route('/post/<int:post_id>') def post(post_id): post = Post.query.get(post_id) return render_template('post.html', post=post) @app.route('/new_post', methods=['GET', 'POST']) def new_post(): if request.method == 'POST': title = request.form['title'] content = request.form['content'] user_id = 1 # 假设当前用户为 id 为 1 的用户 post = Post(title=title, content=content, user_id=user_id) db.session.add(post) db.session.commit() return redirect('/') return render_template('new_post.html') @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] user = User.query.filter_by(username=username, password=password).first() if user: session['user_id'] = user.id return redirect('/') else: flash('用户名或密码错误') return render_template('login.html') @app.route('/logout') def logout(): session.pop('user_id', None) return redirect('/') ``` 5. 创建 HTML 模板 创建 index.html、post.html、new_post.html、login.html 四个模板文件,并且使用 jinja2 模板引擎渲染数据。 6. 运行应用 ```python if __name__ == '__main__': app.run() ``` 以上就是快速搭建 BBS 论坛的主要步骤,当然在实际应用中还需要考虑更多细节问题,比如用户认证、数据校验、页面美化等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值