一日两计:各种符号转数字与快速获取 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

运行效果如下图所示:

目录
相关文章
|
5月前
|
存储
【BigDecima】不可变的,任意精度的有符号十进制数。
【BigDecima】不可变的,任意精度的有符号十进制数。
49 0
|
12月前
对于十进制数 -1023,包含符号位在内,至少需要多少个二进制位表示该数
对于十进制数 -1023,包含符号位在内,至少需要多少个二进制位表示该数
|
5月前
|
C++
写一个函数,输入一个四位数字,要求输出这四位数字字符,但是每两个数字间空一个字符,如输入1990,输出1 9 9 0
这是一个C++代码段,用于打印整数的逆序。程序从用户输入接收一个整数,然后通过递归方法将其逆序输出。示例结果展示了一张图片,但因摘要限制无法显示。代码功能是将数字如12345逆序输出为54321。
31 0
|
2月前
数字符号概述
数字符号概述
13 0
|
5月前
|
算法
实现一个标准数字字符串四舍五入截取不指定位数的小数
实现一个标准数字字符串四舍五入截取不指定位数的小数
40 0
wustojc2001输出四位整数的各位数字
wustojc2001输出四位整数的各位数字
65 0
【c】打印数字之间添加符号
【c】打印数字之间添加符号
113 0
【c】打印数字之间添加符号
|
C#
C#字母转换成数字/数字转换成字母 - ASCII码转换
字母转换成数字 byte[] array = new byte[1];   //定义一组数组arrayarray = System.Text.Encoding.ASCII.GetBytes(string); //string转换的字母int asciicode = (short)(array[0]); ASCII码 = Convert.
3692 0
mathjax符号
mathjax公式 \(\delta\): \delta \(\Delta\): \Delta \(\int\): \int \(\iint\): \iint \(\approx\): \approx \(\theta\): \theta \(\alpha\): \alp...
1164 0