VLOOKUP的使用

VLOOKUP是excel中常用的一个函数,用于在 要查找的位置 中查找 要查找的内容 ,并且返回 要查找的位置 中的某一列 公式: = VLOOKUP (你想要查找的内容,要查找的位置,包含要返回的值的区域中的列号,返回近似或精确匹配-表示为 1/TRUE 或 0/假 要查找的内容 和 要查找的位置:可以是一个单元格,一列,或者一个表格。而 要查找的位置 可以在当前sheet页中,也可以是不同s...

阅读更多

如何在excel中添加文本框并固定位置

操作工具,excel 2016 选择 插入-文本框 ,选择 绘制横排文本框 ,点击表格空白处可建立一个文本框。 此时文本框没有大小且是透明的,移开鼠标就找不着了,需要在点击表格空白处新建文本框时就输入文字,然后选择 绘图工具-格式 (只有在鼠标选择了文本框才会显示该菜单),在 形状样式 中选择一个不透明的背景,最后调整文本框大小,一个基本的文本框就完成了。其他的设置可以选择文本框(鼠标显示移动符号...

阅读更多

[转]EXCEL如何自动下拉到底

如何快速填充公式 方法1,双击填充柄,如果前一列连续多行,则可填充相同多行 方法2,先输入要填充的公式,按下SHIFT+CTRL+方向键下,再按下CTRL+D 方法3,选中要输入公式的第一个单元格,按下SHIFT+CTRL+方向键下,再在编辑栏里输入公式,再按下CTRL+回车 方法4,名称框输入需要填充的范围 (比如 A2:A1000) 回车 ,编辑栏输入要复制的公式后,同时按 CTRL+回车输入...

阅读更多

[转]Python3 * 和 ** 运算符

在 Python 中,* 和 ** 具有语法多义性,具体来说是有四类用法。 1. 算数运算 *代表乘法 ** 代表乘方 >>> 2 * 5 10 >>> 2 ** 5 32 2. 函数形参 *args 和 **kwargs 主要用于函数定义。 你可以将不定数量的参数传递给一个函数。不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。其实并不是必须写成...

阅读更多

为何建议在python中使用**kwargs参数

在python中,我们常常这样定义一个类: class TestClass(object): def __init__(self, a, b, c=None): self.a = a self.b = b self.c = c 这是没有任何问题的,但是为了做到通用和兼容性,我们最好加上_*args_ 和 **kwargs 参数,像下面这样...

阅读更多

使用python实现一个简单的逻辑引擎

需求 考虑一种场景,后台给客户端下发规则,客户端根据规则判断是否匹配,作相应处理。例如后台给客户端下发如下规则: { "key": "env_temperature", "level": 5, "logic": "gt", "presetValue": 30 } 则表示当温度大于30时候触发规则,触发后可能播放声音,开启警示灯等。当然触发规则后的操作也可以写入到规则中 预备知识 ...

阅读更多

AQS抽象队列同步器的原理分析

AQS(AbstractQueuedSynchronizer)是一个使用FIFO队列实现的同步框架,通过提供对变量state的读写,实现线程间的同步,常见的同步类如ReentrantLock,CountDownLatch都依赖它实现。 实现原理 AQS内部维护了一个双向链表,每个节点引用了一个不同的线程,AQS内部也分别引用了头节点和尾节点。 获取锁时,首先尝试获取锁(通过CAS设置state值)...

阅读更多

synchronized中的偏向锁,轻量级锁,重量级锁和锁升级

使用synchronized锁可以实现代码块的原子性,内存可见性,但是不防止指令重排 synchronized实现加锁是通过在字节码中加入monitorenter和monitorexit指令,最终底层调用操作系统的同步函数实现,这些函数都涉及到用户态和内核态的切换、进程的上下文切换等,成本较高。 为了降低开销,JMV引入了偏向锁,轻量级锁和重量级锁,这三种锁对应了不同场景下synchronized...

阅读更多