蓝桥杯 2013年第四届真题 剪格子

蓝桥杯 2013年第四届真题 剪格子

问题描述
如下图所示,3 x 3 的格子中填写了一些整数。

+–*–+–+
|10* 1|52|
+–****–+
|20|30* 1|
*******–+
| 1| 2| 3|
+–+–+–+

我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。

本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。

如果存在多种解答,请输出包含左上角格子的那个区域包含的格子的*小数目。

如果无法分割,则输出 0。

输入格式
程序先读入两个整数 m n 用空格分割 (m,n<10)。

表示表格的宽度和高度。

接下来是n行,每行m个正整数,用空格分开。每个整数不大于10000。

输出格式
输出一个整数,表示在所有解中,包含左上角的分割区可能包含的*小的格子数目。

样例输入1
3 3
10 1 52
20 30 1
1 2 3

样例输出1
3

样例输入2
4 3
1 1 1 1
1 30 80 2
1 1 1 100

样例输出2
10

解决:使用DFS算法搜索所有可能的划分
首先根据输入求得格子总值的半数half_sum,题目要求我们将所有格子划分为两个区域,每个区域的总值为half_sum。

定义dfs前进的四个方向,其横纵坐标分别用x_ori,y_ori表示。定义数组 visit 记录每个格子是否已被访问。

从[0,0]位置开始深度优先搜索。

深度优先搜索部分:

利用格子横纵坐标进行DFS。每次遍历上下左右四个方向,朝可以前进的方向迈进一步。
DFS过程中记录当前区域的格子总值total,若total>half_sum,则该划分失败,回溯;否则若total==half_sum,则说明得到一个有效划分。此时分为两种情况:
如果count=True,即正在划分*个区域(包含[0,0]的区域),则需要继续DFS划分第二个区域;
如果count=False,即正在划分第二个区域。若两个区域的格子总个数==m*n,说明找到了一个成功的划分,成功次数+1。
如果成功次数==0,则打印0,否则打印[0,0]格子所在区域的*小格子数。
n,m = map(int, input().split())
matrix = []
visit = [[True] * n for _ in range(m)]
total_sum = 0
for i in range(m):
l = [int(i) for i in input().split()]
total_sum += sum(l)
matrix.append(l)
half_sum = int(total_sum/2) # 格子总值的一半

x_ori = [1, 0, -1, 0] # 下 右 上 左
y_ori = [0, 1, 0, -1]

success = 0 # 记录成功次数
min_blocks = m*n # 记录*个格子所在区域的*少格子数

# 深度优先搜索,
# x,y表示当前搜索到的格子所在横纵坐标
# total表示当前搜索格子总值
# count=True表示需要记录区域格子数,为了计算*个格子所在区域的*少格子数。因此count=True也可以用来表示当前正在寻找*个区域还是第二个区域
# counter表示*个格子所在区域的格子数(只有count=True时需要计数)
# total_blocks用于记录两个区域的格子总数是否为m*n
def dfs(x, y, total, counter, total_blocks,count = True):
if total > half_sum: # 若当前区域的格子总值大于half_num则返回
return
if total == half_sum: # 找到一个区域
if count: # count=True表示正在寻找[0,0]格子所在区域,即*个区域,需要继续寻找下一个区域
#print(‘Find first 60!’)
for i in range(m): # 遍历寻找下一个起始点
for j in range(n):
if visit[i][j]:
dfs(i, j, matrix[i][j], counter, total_blocks+1, False) # count=False表明开始寻找下一个区域
elif total_blocks == m*n: # count=False,且total_blocks=m*n,说明找到了满足题目要求的两个区域
#print(‘Find second 60!’)
global success, min_blocks
success += 1
if min_blocks > counter: # 更新区域*小格子数
min_blocks = counter
return

for i in range(4): # 四个方向
x_new = x + x_ori[i]
y_new = y + y_ori[i]
if x_new < 0 or y_new<0 or x_new>=m or y_new>=n:
continue
if visit[x_new][y_new]:
visit[x_new][y_new] = False
if count:
dfs(x_new, y_new, total+matrix[x_new][y_new], counter+1, total_blocks+1, count)
else:
dfs(x_new, y_new, total+matrix[x_new][y_new], counter, total_blocks+1, count)
visit[x_new][y_new] = True

# 从[0,0]开始dfs
visit[0][0] = False
dfs(0, 0, matrix[0][0], 1, 1,True)
if success:
print(min_blocks)
else:
print(0)

K均值聚类

K均值聚类

# -*- coding=utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

# 从sklearn中直接生成聚类数据
from sklearn.datasets import make_blobs
#100个样本点,6个中心点(即聚6个类)
x, y = make_blobs( n_samples=100, centers=6, random_state=1234, cluster_std=0.6 )
# print(x) 100*2的矩阵,每一行就是一个样本点
# print(y) y可以不管
plt.figure(figsize=(6,6))
plt.scatter(x[:,0], x[:,1], c=y)
plt.show()

from scipy.spatial.distance import cdist

class K_Means(object):
# 初始化,参数 n_clusters(K)、迭代次数max_iter、初始质心 centroids
def __init__(self, n_clusters=5, max_iter=300, centroids=[]):
self.n_clusters = n_clusters
self.max_iter = max_iter
self.centroids = np.array(centroids, dtype=np.float)

# 训练模型方法,k-means聚类过程,传入原始数据就是x
def fit(self, data):
# 假如没有指定初始质心,就随机选取data中的点作为初始质心
if (self.centroids.shape == (0,)):
# 从data中随机生成0到data行数的6个整数,作为索引值
self.centroids = data[np.random.randint(0, data.shape[0], self.n_clusters), :]

# 开始迭代
for i in range(self.max_iter):
# 1. 计算距离矩阵,得到的是一个100*6的矩阵
distances = cdist(data, self.centroids)#每一行代表每个样本点到所有质心的距离

# 2. 对距离按有近到远排序,选取*近的质心点的类别,作为当前点的分类
c_ind = np.argmin(distances, axis=1)#取完后变成100*1的矩阵,代表每行中的*小值,c_ind就代表*小值的下标(就是类别)

# 3. 对每一类数据进行均值计算,更新质心点坐标
for i in range(self.n_clusters):
# 排除掉没有出现在c_ind里的类别
if i in c_ind:
# 选出所有类别是i的点,取data里面坐标的均值,更新第i个质心
self.centroids[i] = np.mean(data[c_ind == i], axis=0)

# 实现预测方法
def predict(self, samples):
# 跟上面一样,先计算距离矩阵,然后选取距离*近的那个质心的类别
distances = cdist(samples, self.centroids)
c_ind = np.argmin(distances, axis=1)

return c_ind

def plotKMeans(x, y, centroids, subplot, title):
# 分配子图,121表示1行2列的子图中的*个
plt.subplot(subplot)
plt.scatter(x[:,0], x[:,1], c=’r’)
# 画出质心点
plt.scatter(centroids[:,0], centroids[:,1], c=np.array(range(5)), s=100)
plt.title(title)

kmeans = K_Means(max_iter=300, centroids=np.array([[2,1],[2,2],[2,3],[2,4],[2,5]]))

plt.figure(figsize=(16, 6))
plotKMeans( x, y, kmeans.centroids, 121, ‘Initial State’ )

# 开始聚类
kmeans.fit(x)

plotKMeans( x, y, kmeans.centroids, 122, ‘Final State’ )

# 预测新数据点的类别
x_new = np.array([[0,0],[10,7]])
y_pred = kmeans.predict(x_new)

print(kmeans.centroids)
print(y_pred)

plt.scatter(x_new[:,0], x_new[:,1], s=100, c=’black’)

# 五行数据就是五个样本点,四列就是4个质心
# dist = np.array([[121,221,32,43], *个点分别到4个质心的距离
# [121,1,12,23], 第二个点分别到4个质心的距离
# [65,21,2,43], 第三个点分别到4个质心的距离
# [1,221,32,43], 第四个点分别到4个质心的距离
# [21,11,22,3],]) 第五个点分别到4个质心的距离
# c_ind = np.argmin( dist, axis=1 )
# print(c_ind) [2,1,2,0,3] 每个点的分类
# x_new=x[0:5]
# print(x_new)
# print(c_ind==2)
# print(x_new[c_ind==2])
# np.mean(x_new[c_ind==2], axis=0)

Python闭包的两个案例

Python闭包的两个案例

闭包的概念
闭包又称闭包函数或者闭合函数,其实和前面讲的嵌套函数类似,不同之处在于,闭包中外部函数返回的不是一个具体的值,而是一个函数。一般情况下,返回的函数会赋值给一个变量,这个变量可以在后面被继续执行调用。

案例一:游戏中的角色移动:闭包在实际开发中的作用 原文
在某种情况下,我们并不方便使用全局变量,所以灵活的使用闭包可以实现替代全局变量。

例如以下的游戏开发中,我们需要将游戏中角色的移动位置保护起来,不希望被其他函数轻易可以修改到,所以我们选择使用闭包操作,参考代码及注释如下:

origin = (0, 0) # 原点
legal_x = [-100, 100] # x轴的移动范围
legal_y = [-100, 100] # y轴的移动范围

def create(pos_x=0, pos_y=0):
# 初始化位于原点为主
def moving(direction, step):
# direction参数设置方向,1为向右(向上),-1为向左(向下),0为不移动
# step参数设置移动的距离
nonlocal pos_x, pos_y
new_x = pos_x + direction[0] * step
new_y = pos_y + direction[1] * step
# 检查移动后是否超出x轴边界
if new_x < legal_x[0]:
pos_x = legal_x[0] – (new_x – legal_x[0])
elif new_x > legal_x[1]:
pos_x = legal_x[1] – (new_x – legal_x[1])
else:
pos_x = new_x
# 检查移动后是否超出y轴边界
if new_y < legal_y[0]:
pos_y = legal_y[0] – (new_y – legal_y[0])
elif new_y > legal_y[1]:
pos_y = legal_y[1] – (new_y – legal_y[1])
else:
pos_y = new_y
return pos_x, pos_y
return moving

move = create(0, 0)
print(‘向右移动10步后,位置是:’, move([1, 0], 10))
print(‘向上移动130步后,位置是:’, move([0, 1], 130))
print(‘向左移动10步后,位置是:’, move([-1, 0], 10))

运行结果为:

向右移动10步后,位置是: (10, 0)
向上移动130步后,位置是: (10, 70)
向左移动10步后,位置是: (0, 70)

实际效果是相当于封装了一个对象move,并定义其起始点坐标,需要移动时可以调用内嵌函数moving。

案例二:计算一个数的n次幂 原文
#闭包函数,其中 exponent 称为自由变量
def nth_power(exponent):
def exponent_of(base):
return base ** exponent
return exponent_of # 返回值是 exponent_of 函数
square = nth_power(2) # 计算一个数的平方
cube = nth_power(3) # 计算一个数的立方

print(square(2)) # 计算 2 的平方
print(cube(2)) # 计算 2 的立方

运行结果为:

在上面程序中,外部函数 nth_power() 的返回值是函数 exponent_of(),而不是一个具体的数值。

需要注意的是,在执行完 square = nth_power(2) 和 cube = nth_power(3) 后,外部函数 nth_power() 的参数 exponent 会和内部函数 exponent_of 一起赋值给 square 和 cube,这样在之后调用 square(2) 或者 cube(2) 时,程序就能顺利地输出结果,而不会报错说参数 exponent 没有定义。

爬虫过程中 DOM 对象的处理

爬虫过程中 DOM 对象的处理

在练习过程中 尝试对一个页面 table 信息进行收集,pandas 也可读取页面全部 table,但是想使用爬虫中 DOM 的 xpath 语法,对 DOM 节点元素进行筛选,也算是*次练习,在获得 相应的 table 元素后,没有思路了,在 DOM 元素数组,string 、与 XML 或者 pandas 数据表之间 卡主了,想请教一下 下一步 如何优雅的处理,还望大家不吝赐教

实例如下:
import requests
from lxml import etree

url = ‘http://baostock.com/baostock/index.php/Python_API%E6%96%87%E6%A1%A3′
headers = {
“User-Agent” : “Mozilla\/5.0 (Windows NT 10.0; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/78.0.3904.108 Safari\/537.36”}
text = requests.post(url, headers=headers)
dom = etree.HTML(text.text) #将 web 页面文本信息解析为 HTML 文档
print(dom)
#通过 xpath 语法筛选 DO 文档中感兴趣的元素 此处返回该 id 下子节点 caption 属性为”返回数据说明”的 table 元素数组
tables = dom.xpath(‘//*[@id=”mw-content-text”]/table[@caption=”返回数据说明”]’)
#下面开始 tables 数组处理 table 数组
for table in tables:
print(type(table))
print(etree.tostring(table))

demo06
    1

demo06   3 天前 via Android

就我所了解,你这个 tables 还是个 element 对象,你调用的 entree.tostring 方法只是获取了 tables 的对象索引值,如果需要获取 tables 下的子 element 的内容可以用 xpth(‘.//a[class=”className”]/text()’),如果获取节点属性值可以用 xpath(‘.//a/@attrName/text()’)来获取,注意获取子标签下的其他标签时不能有 /table 不然会出错具体什么原因我给忘了,昨天才看完?,随后我翻翻,还有就是 /text()是获取当前标签下的直属文本内容,//text()是获取当前标签下所有的文本内容,这块刚看完,不知道我理解的对不对
demo06
    2

demo06   3 天前 via Android

另外 xpth *后获取的内容是个集合,如果只有一个值可以后缀[0]取集合*个下标的值,如果你 xpath 写的不太准确的*后获取的值有多个的话,下标写几就是取第几个值
milukun
    3

milukun   3 天前

首先,这个 xpath 就是不对的
//*[@id=”mw-content-text”]/table[@caption=”返回数据说明”]
你可以在 F12 里面直接 crtl+F 查找里面直接输入 xpath 看看能不能查找得到,这里是支持 xpath 的
milukun
    4

milukun   3 天前

%title插图%num
badacook
    5

badacook   3 天前

@milukun 因为 有多个 caption=”返回数据说明” d table,分别是 id=”mw-content-text”元素的子元素,且互为不间断的兄弟元素,我有 F12 查看 其中一个元素 xpath 检索 //*[@id=”mw-content-text”]/table[26]/caption,我只是在这个基础上改成查找 包含 caption 属性,且值为”返回数据说明” 的 table 元素
badacook
    6

badacook   3 天前

@demo06 非常感谢 能不能分享一下 python 处理 dom 文档对象的文章,没找到切合的实例
misaka19000
    7

misaka19000   3 天前

https://cuiqingcai.com/5545.html

我每次写爬虫都照着这个写 xpath 的语法

badacook
    8

badacook   2 天前

@misaka19000 我感觉 我 xpath 没写错,我有参照 W3C xpath 语法来写,就是取到了 DOM 对象,如何还原表单,后续的处理,我看 pandas 的 read_html 其中带 attrs 参数,参数为字典格式,可获取特定属性的 table,我使用 attrs = {“caption”:”返回数据说明”} 不带这个参数能获取所有 table,带了反而报错
demo06
    9

demo06   2 天前 via Android

@badacook 我看的是爬虫的这块视频,主要解析 html,刚好有讲 xpath,https://b23.tv/cplcyn
你可以去 B 站看一下,不知道能不能满足你的需求
badacook
    10

badacook   2 天前

发现了自己的一个大错误,caption 作为 table 的标题,并不是 table 的属性,而是*近的子元素,那针对 caption 的 table 筛选,何种方法*便捷呢

 

vngghgfjnff
    11

vngghgfjnff   2 天前

等答案
demo06
    12

demo06   2 天前 via Android

你贴个 HTML 吧
badacook
    13

badacook   2 天前

@demo06 http://baostock.com/baostock/index.php/Python_API%E6%96%87%E6%A1%A3
比如这个页面 我想取出 所有的 caption 为返回数据说明的 table,结合 pandas 处理 DataFrame 的能力
我上面 实例 里面的 text = requests.post(url, headers=headers) 就是获取 HTML 页面的 text.text
你也可以直接 打开这个页面 http://baostock.com/baostock/index.php/Python_API%E6%96%87%E6%A1%A3
使用 F12 查看源码
demo06
    14

demo06   1 天前

@badacook tables=tree.xpath(‘//table[@class=”wikitable”]/caption[contains(text(),”返回数据说明”)]/..’)
for table in tables:
print(etree.tostring(table, method=’html’, with_tail=False))
demo06
    15

demo06   1 天前

@badacook 这样改就 OK 了
demo06
    16

demo06   1 天前

@badacook 总结一下,用 xpath 获取 caption 包含 返回数据说明的子标签然后用 /.. 再获取他的父标签(我看了一下页面里面所有 table 的 class 都是 wikitable,用这种方法获取比较准确),然后 toString 后,获得的就是标准 table 表格
demo06
    17

demo06   1 天前

page = requests.post(url, headers=headers).text
tree = etree.HTML(page)
tables=tree.xpath(‘//table[@class=”wikitable”]/caption[contains(text(),”返回数据说明”)]/..’)
for table in tables:
content=etree.tostring(table)
# result.decode(‘utf-8’)
with open(‘./table.html’,’ab+’) as fp:
fp.write(content)
print(content)
badacook
    18

badacook   21 小时 18 分钟前

@demo06 非常感谢大神 xpath 语法真的很赞,这个语法我要好好研究一下,本来还觉得学了解 xpath,自惭形秽啊
demo06
    19

demo06   18 小时 9 分钟前 via Android

@badacook 能帮到你就好,我也就刚好看过这块内容?
zpfhbyx
    20

zpfhbyx   5 小时 47 分钟前

%title插图%num 上 pyquery 吧。比这个省事。

记一次服务器磁盘无可用空间问题的解决方案

问题回顾:

有一天突然发现A系统上传文件报500错误no space disk leaf.

环境:

linux服务器 tomcat7

问题定位:

根据tomcat的异常说明在上传文件时linux服务器本地磁盘不足,随后便登录到服务器上查看

使用df -h 发现目录/export使用了近24G的磁盘,但是用户 du -chs /export发现只有3.5G大小。根本对不上。怀疑是隐藏文件过大导致,使用命令 du -chs .[!.]* * 发现只有一个4K的隐藏文件。*后查资料后,使用lsof命令 发现存在文件被删除但是由于进程还存活导致磁盘根本没有释放。

坑点:

在删除大文件(日志文件)不要使用rm命令,尽量使用>xxx.log命令来执行清空日志文件。

云服务器的选择看哪些参数?

云服务器主要有下列几项参数:1、 CPU 2、内存 3、硬盘 4、带宽 5、操作系统 6、线路 7、地区

1.CPU就代表了云服务器的运算能力,如果网站流量较大,如果网站流量较大,动态页面比较多,建议选择2核以上CPU。

2.内存是数据的中转站,也是决定网站打开速度的重要因素,内存越大,可用缓存越大,打开速度也就越快。根据你网站的规模选择合适配置的空间,假如是一般的个人博客,或者企业展示网站类,就可以选小一点的,若是商城类,新闻类就要相对大一点的空间。

3.硬盘是存储数据的地方,硬盘的大小要根据网站的数据大小决定,在选择时应该考虑到剩余空间。另外硬盘的I/O读取速度直接决定文件读取的快慢,云服务器硬盘的读取速度比其他网站快很多,一般情况下都够用。

4.根据网站的性质选择合适的带宽,看你的网站类型、结构和访问量等指标或者预计,一般新的网站,图片不多,也做了处理的,有2M足够了。带宽只要真实,不用多,够用,合适就好;或者,先选择2M,不够再加,这样比较稳妥。如果是普通的网站。比如文字网站,图片网站,论坛等,占用的带宽非常小。5000的访问量可能也占用不到2M的带宽.如果是视频,下载等为主的网站。可能几百个人同时在线都需要占用10M以上的带宽。

5.操作系统的选择和个人的熟悉情况和网站具体情况有关,对哪种操作系统比较了解就选择哪种操作系统,另外windows系统对asp程序支持较好,不过占用内存较多,而Linux系统对php程序比较友好,更省内存,并且有的程序可能只支持某个操作系统。

6.线路的选择对于我们来说有的时候十分纠结。如果我们是针对于本地用户,那么我们本来可以选择单线路的服务器,但是双线服务器的优势一般在于双IP,并且对于一个城市来说,宽带有电信、网通不同的。就拿大连这个城市来说,虽然处于北方,但是电信的用户也十分多,所以这个时候果断选择双线可能是更好实现用户体验的好方法。

7.地区,即云服务器所在地区,*好选择在你目标用户所在的区域内,这样网站等打开速度更快。
————————————————
版权声明:本文为CSDN博主「qq2500582012」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq2500582012/article/details/100097990

Dell Windows Server 2008 服务器频繁蓝屏重启,导致崩溃的驱动程序: ntoskrnl.exe

应该是在这个节点下发吧 ^-^

基本信息如下面的截图,在网上搜索了一下,也没太明白啥原因,有没有遇到过或者解决过这个问题的老铁,望指教,如果有其他需要提供的信息,稍后再添加,谢谢! 😉

服务器的基本信息:

刚开始用 WinDbg 工具查看了一下蓝屏的那个文件,但是那个符号表不太会整,服务器没有网,在微软官网没找到对应系统的,不过搜索过程中找到了一个查看蓝屏文件的工具,所以改用 BlueScreenView 了,具体信息如图:

下午大概重启了 9 次,后来就正常了,之前偶尔会重启一下,也能接受吧,但是一天就这么多次就有点尴尬了,有 6 次是这个 ntoskrnl.exe ,还有 3 次其他的,其他的原因也查了一下,大概是网卡驱动有问题。

由于服务器是个老古董,上面装了老多东西,不敢重装,所以寻求保险一点的解决方案,*完美的就是实际使用过且行之有效的方法。不过每个人碰到的环境都不一样,有高人指点指点,涨点姿势也是不错的 😉

另外:本人知识水平比略低可能还低,希望各位指点的时候能描述的详细一些,3Q啦!!!

• 2017-11-09 12:31:16 +08:00
hjc4869 1
hjc4869 2017-10-18 20:12:58 +08:00
老古董服务器怕是不能排除硬件故障了。
ntoskrnl 要是真自己这么崩,巨硬可能早就破产了。
Tuisku 2
Tuisku 2017-10-18 20:20:06 +08:00
ntoskrnl 是涉及到 Windows 内核的文件了,不太可能这么频繁的爆炸。
考虑下全盘做镜像,然后迁移到新的服务器吧。
XiLemon 3
XiLemon 2017-10-18 20:58:15 +08:00 via iPhone
@hjc4869 对啊,不过硬件问题怎么查诶,我是临时工,不太懂这玩意儿,用什么方法查呢
XiLemon 4
XiLemon 2017-10-18 21:00:58 +08:00 via iPhone
@Tuisku 这可能是比较好的方法了,保险又安全,问题就我这儿没办法做到,不懂怎么做全盘镜像,更关键的是没有新服务器。。。
xfspace 5
xfspace 2017-10-18 21:02:28 +08:00 via Android
磁盘坏道?
XiLemon 6
XiLemon 2017-10-18 21:07:03 +08:00 via iPhone
@xfspace 老哥,稍微多解释一点,我不懂诶,不耻上问(滑稽脸
hjc4869 7
hjc4869 2017-10-18 22:23:37 +08:00
@XiLemon 先跑一下 memtest86+,看看是不是内存出问题。
wevsty 8
wevsty 2017-10-19 00:33:07 +08:00
都是内核崩溃,不知道那个地址上有什么东西或者是哪个驱动导致的。
一般来说,我会首先排除安装在这个机器上的各种带驱动的软件,比如各种安全产品,防火墙(系统自带的除外)用 Autoruns 之类的检查一下看看有哪些驱动。

虽然我认为概率比较小,不过也可以尝试排除一下硬件问题,跑个内存测试也没坏处。
hljjhb 9
hljjhb 2017-10-19 01:17:03 +08:00 via Android
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0x1e–kmode-exception-not-handled

搜了下 是内存非法访问出的 exception

建议排查*近安装或更新的驱动
XiLemon 10
XiLemon 2017-10-19 09:18:16 +08:00
@hjc4869 忙完手头的事情,来试一试,thx !!!
@wevsty 内存测试不太懂诶,楼上说的那个软件是用来跑测试的吗,稍后搜一下,3Q3Q
@hljjhb 我先看看你发的文章,*近应该是没装也没有更新驱动,软件的话也就是蓝屏后装个个 WinDbg 软件,我这忘了干净的英语,谢了^_^

Derek_S 11
Derek_S 2017-10-19 16:08:26 +08:00
按理来说,windows 内核是不这么爱崩溃的。
看看是不是硬件问题吧,如果是塔式服务器,打开侧板看一下主板上是不是有电容什么的爆浆了之类的导致的不稳定。
XiLemon 12
XiLemon 2017-10-19 20:17:46 +08:00 via iPhone
@Derek_S 啥是塔式服务器啊,服务器离我老远了,我用 * 远程上去的,不过可以让人去看看。
Derek_S 13
Derek_S 2017-10-20 07:30:36 +08:00
@XiLemon 就是像普通电脑机箱的那种,只是比普通电脑机箱大一点。机架服务器就是跟插在一个柜子里的。
具体你可以百度图片搜索一下 机架服务器、塔式服务器这两个关键词
你就知道他俩外观有啥区别了。
XiLemon 14
XiLemon 2017-10-20 12:14:00 +08:00 via iPhone
@Derek_S 哦哦,我用的是那种插在机柜架子上的。
Derek_S 15
Derek_S 2017-10-20 17:05:13 +08:00
@XiLemon 用了很久的话就不是很好判断故障点,楼上几位提到的检测现在都做了么?
yingfengi 16
yingfengi 2017-11-09 08:17:38 +08:00 via Android
慢慢测吧,这种情况全盘备份一下吧

 

学生用服务器好还是虚拟主机好?

请问没有收入的学生用服务器好还是虚拟主机好?

我用的服务器是阿里云国际版,但就做一个博客有点大材小用,但是用虚拟主机有点慢,不知道怎么选择?

虚拟主机是西部数码的,服务器是阿里云国际版,虚拟主机是 120 多一年,服务器是 8 刀一月

guoliang 1
guoliang 2017-03-10 21:47:55 +08:00
https://pages.github.com/
Gran1987 2
Gran1987 2017-03-10 21:49:41 +08:00 via iPhone
腾讯云*低配 1 元每月
LINAICAI 3
LINAICAI 2017-03-10 21:52:57 +08:00
博客。。。
一楼方案
kindjeff 4
kindjeff 2017-03-10 21:54:28 +08:00
大材小用就大材小用啊……没什么大不了的
just1 5
just1 2017-03-10 21:56:53 +08:00 via Android
完全不是一个东西,看需求。
changwei 6
changwei 2017-03-10 22:52:10 +08:00 via Android
百度云 bae 基础版*低配是两毛钱一天按天结算,自己挂点 php , py , java 项目还是可以的。而且赠送共享 mysql , memcache , redis 和日志服务,数据是隔离安全的。

如果我记得没错的话,著名的 php 开源扩展 swoole 官网也是挂在 bae 上的。

当然我自己在用腾讯云。
qa2080639 7
qa2080639 2017-03-10 23:00:04 +08:00
玩 php 的话 用阿里的免费主机挺好
golmic 8
golmic 2017-03-10 23:23:23 +08:00 via Android
github 拿到 education 验证, digitalocean 赠 50 刀随便用
kmahyyg 9
kmahyyg 2017-03-10 23:36:29 +08:00 via Android
博客 github pages

其他的看你需求,我跑编译用 linode , fq 用的 50vz 的 vps
zrj766 10
zrj766 2017-03-10 23:52:47 +08:00 via Android
学生认证个阿里或者腾讯的就行了,一个 9.9 一个 1 块钱,小博客完全没问题。

cnzfq 11
cnzfq 2017-03-10 23:54:32 +08:00 via iPhone
做產品要尊重需求,跟是不是學生身份無關。
aisin 12
aisin 2017-03-10 23:59:14 +08:00
有很多 5 到每月,然后也很靠谱的啊
yellowV2ex 13
yellowV2ex 2017-03-11 00:03:50 +08:00
vultr 两块五那个不是挺好吗
cunkouwdy007 14
cunkouwdy007 2017-03-11 00:24:24 +08:00 via Android
没记错的话 coding 也有 pages
klii 15
klii 2017-03-11 22:00:09 +08:00
@guoliang github 我不太会用,怕维护麻烦
klii 16
klii 2017-03-11 22:06:00 +08:00
@Gran1987 不喜欢腾讯的
klii 17
klii 2017-03-11 22:06:11 +08:00
@LINAICAI 不会用 github
klii 18
klii 2017-03-11 22:22:34 +08:00
@kmahyyg 请问下 linode 怎么装 Lnmp ,我装不上
kmahyyg 19
kmahyyg 2017-03-12 14:05:12 +08:00 via Android
@klii oneinstack.com

github pages 必学
LINAICAI 20
LINAICAI 2017-03-12 21:19:36 +08:00
@klii 有 LNMP 的脚本可以在初始化的时候完成搭建, build 的时候可以选
sheeta 21
sheeta 2017-03-12 23:21:10 +08:00 via Android
@klii ![]( https://lnmp.org)
woshinide300yuan 22
woshinide300yuan 2017-04-25 22:02:52 +08:00
当然是虚拟主机呀!!!!!!
eben 23
eben 2017-09-10 22:03:44 +08:00
虚拟主机啊,有学生优惠码 米国 300M cpanel 主机才要 15 元
59php.com/host.html
300MB 磁盘容量
5GB 月流量
3 个 独立站点
3 个 子站点
3 个 FTP 帐号
3 个 数据库
免费 SSL 证书
PHP 多版本选择
Cpanel 面板
ninay 24
ninay 2017-10-26 16:17:48 +08:00
check free hosting zhujidot.com/
fengyu110122 25
fengyu110122 2018-03-28 16:32:48 +08:00
可以申请免费的虚拟主机啊 http://www.dtidc.com/help/host/10261292017.html
lae 26
lae 2018-12-24 16:15:50 +08:00 via Android
虚拟主机,几个好用的国外主机,tophosting.github.io
vpsor 27
vpsor 2019-03-02 18:22:04 +08:00
你好,了解下硅云。谢谢

python中ajax的封装传参

python中ajax的封装传参

Ajax 封装

<!DOCTYPE html>
<html lang=”en”>

<head>
<meta charset=”UTF-8″>
<title>07_ajax的封装传参</title>
</head>

<body>
<h1>07_ajax的封装传参</h1>
<input type=”button” value=”测试get参数” onclick=”test1()” />
<input type=”button” value=”测试post参数” onclick=”test2()” />
<script>
function ajax(options) {
var xhr = new XMLHttpRequest()
var params = ”
for (var atr in options.data) {
params = params + atr + ‘=’ + options.data[atr] + ‘&’
}
params = params.substr(0, params.length – 1)
//get请求
if (options.type == ‘get’) {
options.url = options.url + “?” + params
}

xhr.open(options.type, options.url)
//post请求
if (options.type == ‘post’) {
xhr.setRequestHeader(‘Content-type’,’application/x-www-form-urlencoded’)
xhr.send(params)
}else{
xhr.send()
}

xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText)
}
}
}

function test1() {
ajax({
type: ‘get’,
url: ‘/login’,
data: { ‘name’: ‘吕小布’, ‘pwd’: 123 }
})

}
function test2(){
ajax({
type: ‘post’,
url: ‘/login’,
data: { ‘name’: ‘吕小布’, ‘pwd’: 123 }
})
}
</script>
</body>

</html>

#导入模块
from flask import Flask, request, render_template

app = Flask(__name__)

@app.route(‘/login’, methods=[‘GET’, ‘POST’])
def login():
if request.method == ‘GET’:
return ‘get请求成功’
elif request.method == ‘POST’:
return ‘post请求成功’
@app.route(‘/fz02′)
def fz02():
return render_template(’07_ajax的封装传参 copy.html’)

图片:%title插图%num
————————————————
版权声明:本文为CSDN博主「pytho程序员」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Wlpytho/article/details/115429683

Windows 服务器被入侵

公司的 Windows 服务器被入侵了。

服务器上部署了两个网站,主站是 Spring MVC + Spring + Hibernate,还有个小站(主要是内部使用,却是对外开放)是 Struts 2 + Spring + Hibernate。本来以为主站做好了各种优化和防护就安枕无忧了,后来查了 Nginx 的 error.log ,才发现黑客利用了 Struts 2 的执行代码漏洞,上传了一个工具 JSP,然后把文件复制到主站目录。

经验教训是,不要忽略任何细节,例如这个小站。

目前,小站升级了 Struts,做了 IP 限制,一了百了。

Athrob 1
Athrob 2017-11-04 17:47:25 +08:00
内部使用为什么要对外开放[黑人问号]
iamfirst 2
iamfirst 2017-11-04 18:40:00 +08:00 via iPhone
没一了百了的事情,安全资讯还是要时刻关注,经常升级和打补丁
kokutou 3
kokutou 2017-11-04 18:52:12 +08:00
Struts 漏洞好久了吧。。。
hugee 4
hugee 2017-11-04 18:54:31 +08:00 via Android
装了 xx 狗,xx 卫士么?
fox0001 5
fox0001 2017-11-04 19:04:28 +08:00
@hugee #4 啥都没装,基本裸奔
fox0001 6
fox0001 2017-11-04 19:04:54 +08:00
@Athrob #1 一开始是对外开放的,后来才转为内部使用
fox0001 7
fox0001 2017-11-04 19:05:27 +08:00
@kokutou #3 懒人之过…
claysec 8
claysec 2017-11-04 19:21:57 +08:00
@fox0001 没有自查内部网络是否也有沦陷的机器了吗
fox0001 9
fox0001 2017-11-04 21:38:51 +08:00
@claysec #8 没有…
Cu635 10
Cu635 2017-11-04 21:53:22 +08:00
@fox0001
是没有自查过还是检查过没有其它沦陷机器?

pq 11
pq 2017-11-04 21:56:35 +08:00
用 windows 跑这些东西,配置起来应该不比 linux 更轻松吧?又不是.net 。。。。
CFO 12
CFO 2017-11-04 22:22:08 +08:00 via Android
@pq 不都是 jdk + tomcat 吗?有什么区别?
WordTian 13
WordTian 2017-11-04 23:01:45 +08:00 via Android
别用 struts 了,都快成筛子了。就今年到现在 struts 的漏洞已经从 046 到 052 了。大部分都是远程执行漏洞。再过一段时间,再爆出几个也一点不稀奇
hcymk2 14
hcymk2 2017-11-04 23:13:15 +08:00 ❤️ 1
检测 struts 命令执行漏洞
https://github.com/Lucifer1993/struts-scan
gancl 15
gancl 2017-11-04 23:29:13 +08:00
https://www.v2ex.com/t/341483
fox0001 16
fox0001 2017-11-05 09:49:13 +08:00
@WordTian #13 老网站,有人维护已经不错了
claysec 17
claysec 2017-11-05 12:24:47 +08:00
@fox0001 …..建议马上自查。
fox0001 18
fox0001 2017-11-05 14:05:39 +08:00
@pq #11 历史问题,要是有得选,也不会用 Windows。不过 struts 的漏洞,选什么系统也一样吧?
yingfengi 19
yingfengi 2017-11-09 08:15:05 +08:00 via Android
出口架一台墙吧

友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速