一日两计:各种符号转数字与快速获取 IP

简介: 一日两计:各种符号转数字与快速获取 IP

摄影:产品经理油炸牡蛎

今天我们来看两个很有用的小技巧。

奇形怪状的数字转阿拉伯数字

我们知道,在某些场景下面,有些人会使用各种奇奇怪怪的符号来表示数字。例如有些人写自己的 QQ 号,是这样写的:

加扣:五⑦捌二3玖

对于这种奇奇怪怪的数字,如果我们想要批量转化为数字,可能要提前创建一个字典来映射:

{'一': 1, '二': 2, '三': 3, ...}

显然,这样写起来非常麻烦。那么有没有什么办法来解决这个问题呢?实际上 Python 是认识这些表示数字的符号的,我们不需要提前设置任何映射,Python 自动就能转换。例如:

from unicodedata import numeric
print(numeric('五'))
print(numeric('⑦'))

运行效果如下图所示:

所以,对于上面这种特殊的数字,我们可以很容易地转换成阿拉伯数字:

from unicodedata import numeric
data = '五⑦捌二3玖'
result = 0
for char in data:
    result = 10 * result + int(numeric(char))
print(result)

Linux 如何快速获取本机 IP 字符串

在服务器上,有些脚本在运行的时候,需要传入它所在服务器的 IP 地址。但这些脚本具体运行在哪个服务器上,这是由 K8S 这类的东西管理的,我们提前不知道脚本会运行在哪个服务器上,所以不能提前设置。

如果你的脚本是 Python 开发的,那么显然你可以直接在 Python 里面获得当前服务器的 IP 地址。但不是所有编程语言都像 Python 这么方便。而且有时候你是通过.sh文件来调用开源项目。

所以,如何使用shell 命令获取 IP 地址呢?

老版本的 Ubuntu 可以使用ifconfig命令查看当前 IP,如下图所示:

新版本的 Ubuntu 可以使用ip addr,如下图所示:

无论是哪种方法,如何把其中的 IP 地址提取出来呢?这个时候我们可以使用grep配合awk实现。大家可以试一试,如何写才能把其中的10.0.0.4

但实际上,我们有一种更简单的方法:

hostname -i

运行效果如下图所示:

目录
相关文章
|
15小时前
数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
数一下 1到 100 的所有整数中出现多少个数字9并输出这些数字
18 0
|
16小时前
|
编译器 C语言
关于合法浮点数、转义字符、八进制、十六进制、字符常量的判断
关于合法浮点数、转义字符、八进制、十六进制、字符常量的判断
16 0
|
7月前
对于十进制数 -1023,包含符号位在内,至少需要多少个二进制位表示该数
对于十进制数 -1023,包含符号位在内,至少需要多少个二进制位表示该数
55 0
|
9月前
|
存储 C语言
有符号位与无符号位超超超详解!!!
有符号位与无符号位超超超详解!!!
209 0
|
9月前
wustojc2001输出四位整数的各位数字
wustojc2001输出四位整数的各位数字
52 0
如何同时匹配字符串中的整数和浮点数
如何同时匹配字符串中的整数和浮点数
223 0
c++数字和字符串的转换
c++数字和字符串的转换
199 0
【c】打印数字之间添加符号
【c】打印数字之间添加符号
98 0
【c】打印数字之间添加符号