ref: excel_formulas_and_functions, https://support.office.com/en-us/article/overview-of-formulas-in-excel-ecfdc708-9162-49e8-b993-c311f47ca173?wt.mc_id=fsn_excel_formulas_and_functions

0 示例表格

A B C
1 NO key value
2 1 0 0
3 2 5 25
4 3 10 100
5 4 15 225
6 5 20 400
7 6 25 625
8 7 30 900
9 8 35 1225
10 9 40 1600
11 10 45 2025

1 已知key,查找对应value

  • VLOOKUP(lookup value, lookup array, column, range lookup)
F G H
4 key Formula value
5 20 =VLOOKUP(F5,B2:C11,2) 400
6 25 =VLOOKUP(F6,B2:C11,2,FALSE) 625
7 24 =VLOOKUP(F7,B2:C11,2) 400
8 24 =VLOOKUP(F8,B2:C11,2,FALSE) #N/A
阅读全文 »

有道翻译 API 简介

参数说明:

  • i="text",引号内为要翻译的单词或句子,中文、英文都行,默认是中英互译;
  • doctype=xml,指定返回值的格式为 xml 格式,还可以是 textjson

其他可选:

  • type,默认是type=auto;可以指定语言,比如中文->日语:type=zh_cn2ja
  • version,指定 api 版本等

在 excel 里调用有道翻译 api

  • 首先用 WEBSERVICE 函数获得调用 api,返回值格式指定为 xml;

  • 然后用 FILTERXML 函数解析 xml,翻译的结果在 <translation> 标签里面

  • 完整代码如下:

    1
    =FILTERXML(WEBSERVICE("http://fanyi.youdao.com/translate?&i="&A1&"&doctype=xml"),"//translation")

这个 api 有调用次数的限制,且用且珍惜。

之前常用的物性计算软件是 Nist Refprop,在 Excel 中计算时调用起来非常好使。
但是计算方程组求解时 Excel 就不太好用了。。

发现了一个开源软件:CoolProp,它支持多种程序或语言的调用,接口比较好;
对 python 的支持也非常方便。

1. 安装 CoolProp

  • 直接使用 pip 安装:

    1
    pip install CoolProp
  • 或者安装开发版(稳定版偶尔有编译问题,导致安装失败):

    1
    2
    # install the latest nightly release version
    pip install -vvv --pre --trusted-host www.coolprop.dreamhosters.com --find-links http://www.coolprop.dreamhosters.com/binaries/Python/ -U --force-reinstall CoolProp

2. 基本使用

2.1 参数说明

ref: http://www.coolprop.org/coolprop/HighLevelAPI.html

D, DMASS kg/m^3 Mass density 密度
H, HMASS J/kg Enthalpy
P Pa Pressure 压力
Q mol/mol Mass vapor quality 气体占比
T K Temp 温度
A, SPEED_OF_SOUND m/s Speed of sound 声速
CONDUCTIVITY, L W/m/K Thermal conductivity 热导率
CVMASS, O J/kg/K Mass specific constant volume specific heat 定容比热容
C, CPMASS J/kg/K Mass specific constant pressure specific heat 定压比热容
I, SURFACE_TENSION N/m Surface tension 表面张力
M, MOLARMASS kg/mol Molar mass 摩尔质量
PCRIT Pa Pressure at the critical point 临界压力
TCRIT K Temperature at the critical point 临界温度
V, VISCOSITY Pa·s Viscosity 粘度
Z Compressibility factor 压缩系数
  • 示例1:

    1
    2
    3
    4
    5
    6
    7
    from CoolProp.HumidAirProp import HAPropsSI
    from CoolProp.CoolProp import PropsSI

    p = 101325
    t = PropsSI('T', 'P', p, 'Q', 0, 'Water')
    print('\n-------------CoolProp-------------')
    print('- 在 {} Pa(abs) 时,水的饱和温度: {:.2f} K \n'.format(p, t)) # 373.12 K
  • 示例2:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    from CoolProp.HumidAirProp import HAPropsSI
    from CoolProp.CoolProp import PropsSI
    paras = {'D': 'kg/m^3',
    'H': 'J/kg',
    'A': 'J/kg/K',
    'L': 'W/m/K',
    'O': 'J/kg/K',
    'C': 'J/kg/K',
    'M': 'kg/mol',
    'V': 'Pa.S',
    'Z': '-'}

    for (k, v) in paras.items():
    v1 = CP.PropsSI(k, 'T', 273.15+20, 'P', 101325, 'water')
    print(f' {k}: {v1:10.4f} {v}')
阅读全文 »

Nist Refprop 是一个常用到的物性计算软件,在 Excel 中调用起来也比较方便。

1. 安装 Nist Refprop V9.1

安装完之后:

  • 32位系统默认安装路径是 C:\Program Files\REFPROP
  • 64位系统默认安装路径是 C:\Program Files (x86)\REFPROP
阅读全文 »

1. 新建远程仓库

  • 在 github.com 上新建 repository :xxxx , 链接为:https://github.com/shenbo/xxxx.git
  • 本地新建文件夹:xxxx
    1
    2
    3
    4
    5
    6
    7
    cd ~/xxxx
    git init

    git add .
    git commit -m "first commit"
    git remote add origin https://github.com/shenbo/xxxx.git
    git push -u origin master
    阅读全文 »

20170626

可遇不可求的事

此时此刻的你

1. os.popen 命令

python 内置的 os.popen 命令可以用于执行简单的命令。

1
2
3
4
5
6
7
8
import os

# 直接运行的命令,如:打开记事本
os.popen('notepad')

# 获得运行的log或结果,如:列出文件清单
r = os.popen('tree')
print(r.read())

2. subprocess 模块

复杂一点的命令可以使用 subprocess 模块,也是 python 内置的,可以对输入/输出进行操作;

2.1 subprocess.call 命令

1
2
3
4
5
6
7
8
9
10
11
import subprocess

# 可显示运行log/结果
subprocess.call('pip list', shell=True)

# 可交互
subprocess.call('pip uninstall pip', shell=True)

# 返回值为错误代码
retcode = subprocess.call('tree', shell=True)
print(retcode)

2.2 subprocess.Popen 命令

1
2
3
4
5
6
7
8
9
10
import subprocess

# 获得运行结果,一次读取所有,要等待命令运行结束
p = subprocess.Popen('ping baidu.com', shell=True, stdout=subprocess.PIPE).stdout
print(p.read().decode('gbk'))

# 获得运行结果,一次读取一行
p = subprocess.Popen('ping baidu.com', shell=True, stdout=subprocess.PIPE)
for line in iter(p.stdout.readline, b''):
print(line.strip().decode('gbk'))

subprocess.Popen 参数比较复杂,更多用法参见:
帮助文档

20170524

20170418

草在结它的种子

风在摇它的叶子

你们坐着,不说话

就十分美好

1. 设置默认国内源

  • Windows系统

命令行修改配置

1
2
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# pip config list

或手动修改/新建文件 C:\Users\XXXX\pip\pip.ini ,内容为:

1
2
[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple/

国内源

加利福尼亚大学python扩展库(非官方)

2. 更新所有安装包

1
2
3
4
5
6
7
8
9
10
11
from pip._internal.utils.misc import get_installed_distributions
import subprocess

def pip_upgrade_all():
for dist in get_installed_distributions():
print(dist)
ustc_source = 'https://pypi.mirrors.ustc.edu.cn/simple/'
cmd = 'pip install --upgrade {} -i {}'.format(dist.project_name, ustc_source)
subprocess.call(cmd, shell=True)

pip_upgrade_all()
阅读全文 »

20170218

硬件准备

  • 树莓派3B,5V 2A充电器 + 充电线
  • TF卡(>8g,class10) + 读卡器
  • 无线路由器
  • 笔记本/电脑
  • 显示器 + HDMI线

软件准备

阅读全文 »

出去兜风,一不小心上新闻了。

20161204

千人徒步越野 尽赏横山秋色

2016-12-03 微江宁

今天,1500多名户外徒步爱好者齐聚秋色迷人的革命老区横山,参加由江宁广电网络公司冠名的2016首届南京横溪•横山徒步越野大会。景致优美的赛道路线,准专业越野赛事的体验,让市民充分领略到全民健身的魅力。

最小登山者:四个月大的沈悠悠小朋友。

阅读原文

嘟嘟~

20161014

hello,world!
我出生啦。

20160706

小名 糖圆
性别
出生时间 2016-07-06 17:33
出生地点 南京军区总院
出生孕周 41周(+3)
出生体重 3.6kg
出生身高 49cm

0. 安装前提

Windows系统下安装 Hexo,需要先安装下列应用程序。

1. 安装、初始化 Hexo

1
2
3
4
5
6
7
8
npm install -g cnpm --registry=https://registry.npmmirror.com

npm install -g hexo-cli

# 创建博客主文件夹为: hexo
hexo init hexo
cd hexo
npm install

创建新 post,新建的 post 文件位于source/_posts文件夹内。

1
hexo new "My New Post"
阅读全文 »

pip

  • 设置默认国内源 - Windows系统
    1
    2
    3
    pip config set global.index-url 'https://pypi.tuna.tsinghua.edu.cn/simple'

    pip config list

git

1
2
3
4
5
6
7
8
9
git config --global user.name 'shenbo'
git config --global user.email '[email protected]'

git config --global http.proxy 'http://127.0.0.1:9981'

git config -l

git config --global core.editor code
git config --global -e

scoop

  • 设置 aria2 下载

    1
    2
    3
    4
    5
    scoop config aria2-enabled true                   # default: true
    scoop config aria2-retry-wait 8 # default: 2
    scoop config aria2-split 8 # default: 5
    scoop config aria2-max-connection-per-server 8 # default: 5
    scoop config aria2-min-split-size] 2M # default: 5M
  • 设置 proxy

    1
    2
    3
    scoop config proxy 127.0.0.1:9981

    scoop config

npm

  • 设置默认国内源

    1
    2
    3
    4
    5
    npm config set registry https://registry.npmmirror.com/

    # 或用 nrm
    npm install nrm -g
    nrm use taobao
  • 设置 proxy

    1
    2
    3
    npm config set proxy http://127.0.0.1:9981

    npm config list
阅读全文 »

田忌赛马

从前,有一只小兔子,它长了三颗牙齿,一颗金牙齿,一颗银牙齿,一颗铜牙齿。

有一天,它去地里拔萝卜。地里有三棵胡萝卜,一棵金胡萝卜,一棵银胡萝卜,一棵铜胡萝卜。

小兔子用它的金牙啃金胡萝卜,哎呀,金萝卜太硬,小兔子的金牙一下子断掉了,好疼呀,5555。

小兔子又用它的银牙啃银胡萝卜,银萝卜也很硬,小兔子的银牙也断了,5555。

最后,小兔子又用它的铜牙啃铜胡萝卜,铜胡萝卜也很硬,铜牙也断了。小兔子三颗牙都断了,它再也忍不住,哇的一声哭了起来。

正在这时,兔妈妈来了,小兔子看见妈妈来了,哭的更伤心啦。

兔妈妈安慰小兔子,孩子,你不要伤心了,牙齿断了还可以再长出来,没关系。吃胡萝卜也要动脑筋呀,不能着急。下次你可以用你的金牙去啃银胡萝卜,用你的银牙去啃铜胡萝卜,铜牙啃不动金胡萝卜就不吃了,两个胡萝卜够你吃饱了呀!

小兔子听了妈妈的话,恍然大悟。

第二天,它按兔妈妈讲的方法,果然吃了个饱。


三只斧头

有一天,小白兔在河边玩耍,突然不小心摔了一跤,小白兔的门牙磕掉了。小白兔疼的哭了起来,这时小乌龟从河里爬了出来。

小白兔,你为什么哭的这么伤心啊?

我的牙磕掉了,好疼啊,555…

那我帮你找吧。

小乌龟游到河里,过了一会,拿了一颗金牙出来了,小白兔,这颗金牙是不是你的啊?

小白兔摇摇头,不是哒。

小乌龟又游到河里,过了一会,拿了一颗银牙出来了,小白兔,这颗银牙是不是你的啊?

小白兔摇摇头,不是哒。

小乌龟又游到河里,过了一会,拿了一颗普通的牙出来了,小白兔,这颗牙是不是你的啊?

小白兔点点头,是我的,这就是我的牙~

小乌龟说,小白兔,你真是个诚实的好孩子,这三颗牙都送给你了。


守株待兔

有一天,小乌龟在河里寻找食物,突然被什么东西砸了一下。

原来是小白兔在河边玩耍,突然不小心摔了一跤,小白兔的金牙磕掉了。

小乌龟捡起金牙高兴的走了,拿金牙换了两条鱼吃。

第二天,小乌龟又到之前游泳的地方,小白兔在河边玩耍的时候不小心又摔了一跤,小白兔的银牙也磕掉了。

小乌龟捡起银牙高兴的走了,拿银牙换了一条鱼吃。

后来,小乌龟天天在河里等着小兔子摔跤,但是小兔子玩了很多天也没摔跤,小乌龟每次都空手而归。

最后小乌龟饿死了。


刻舟求剑

有一天,小兔子在河里划船,突然摔了一跤,小兔子的门牙摔断了,掉进了水里。

河里水很深,小兔子不会游泳,它打电话给小乌龟,想叫小乌龟帮忙把门牙捞出来,但是小乌龟去外婆家了。

小兔子想啊想,终于想到一个好办法。它在船上做个记号,然后把船划到岸边水浅的地方,顺着做记号的地方跳到水里,开始找门牙。

小兔子找了很久,也没找到它的门牙。


乌鸦喝水+司马光砸缸

有一天,小兔子和小乌龟在假山上玩,假山下边有一口空的水缸,突然小乌龟掉进了缸里。

幸好小乌龟有壳,摔下去没有受伤。但是水缸里面很滑,小乌龟爬不出来。水缸很深,小兔子伸手拉小乌龟也拉不到它。

怎么办呢?小乌龟急的要哭了。

有了!小兔子找了一个水瓶,从山上接满水,倒进缸里,等缸里水满了,小乌龟就可以游出来了!

小兔子接水、倒水,过了很长时间,缸里的水终于就要满了。小乌龟快要能爬出来了。

这时,小熊走了过来,它看见小乌龟掉进了缸里,急忙从路边捡了一块大石头,朝水缸砸去。

哗~

水缸碎了个大洞,水从缸里流了出来。

小乌龟终于得救了。

求解非线性方程

使用scipy库的 root, fsolve 函数求解非线性方程。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from scipy.optimize import fsolve
from scipy.optimize import root


def func(x):
return x ** 4 - x - 5


x_root = root(func, 1.0)
x_fsolve = fsolve(func, 1.0)
print(x_root.x)
print(x_fsolve)

# [1.60300708]
# [1.60300708]

阅读全文 »