Python 鲜为人知的数值格式化

大家在工作的时候经常用到的字符格式化,今天就总结一下

Python
Last login: Wed Jan 9 10:06:43 on ttys000 ➜ ~ ipython3 微信公众号:zeropython Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46) Type 'copyright', 'credits' or 'license' for more information IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: a = 123 In [2]: b = 1234567890.123456 In [3]: c = -123456.654321 In [4]: type(a) Out[4]: int In [5]: type(b) Out[5]: float In [9]: "数值{}".format(a) Out[9]: '数值123' In [10]: "数值{}".format(b) Out[10]: '数值1234567890.123456' # 新增 In [11]: f"数值{a}" Out[11]: '数值123' In [9]: "数值{}".format(a) Out[9]: '数值123' In [10]: "数值{}".format(b) Out[10]: '数值1234567890.123456' In [11]: f"数值{a}" Out[11]: '数值123' In [12]: f"数值{b}" Out[12]: '数值1234567890.123456' In [13]: # 以浮点型的方式显示呢 In [14]: f"数值{a:f}" Out[14]: '数值123.000000' In [15]: "数值{:f}".format(a) Out[15]: '数值123.000000' In [16]: # 正负数 显示,整数只能显示整数,负数只显示负数 In [17]: "数值{:+f}".format(a) Out[17]: '数值+123.000000' In [18]: "数值{:-f}".format(a) Out[18]: '数值123.000000' In [19]: "数值{:+f}".format(c) Out[19]: '数值-123456.654321' In [20]: a Out[20]: 123 In [21]: b Out[21]: 1234567890.123456 # 如果想三位显示一个逗号进行区分直接在第二个f前面加, In [23]: f"数值{b:,f}" Out[23]: '数值1,234,567,890.123456' # 如果设置保留精度呢? # .2f 就表示保留两位小数,保留规则为四舍五入 In [26]: f"数值{b:,.2f}" Out[26]: '数值1,234,567,890.12' In [27]: f"数值{b:,.3f}" Out[27]: '数值1,234,567,890.123' In [28]: f"数值{b:,.4f}" Out[28]: '数值1,234,567,890.1235' In [29]: # 如果想以百分比显示呢? In [30]: In [30]: x = 10 In [31]: y = 3 In [35]: "百分比{:.2%}".format(x/y) Out[35]: '百分比333.33%'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
Last login : Wed Jan    9 10 : 06 : 43 on ttys000
➜    ~ ipython3   微信公众号: zeropython
Python 3.6.8 | Anaconda , Inc . | ( default , Dec 29 2018 , 19 : 04 : 46 )
Type 'copyright' , 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python . Type '?' for help .
 
In [ 1 ] : a = 123
 
In [ 2 ] : b = 1234567890.123456
 
In [ 3 ] : c = - 123456.654321
 
In [ 4 ] : type ( a )
Out [ 4 ] : int
 
In [ 5 ] : type ( b )
Out [ 5 ] : float
 
In [ 9 ] : "数值{}" . format ( a )
Out [ 9 ] : '数值123'
 
In [ 10 ] : "数值{}" . format ( b )
Out [ 10 ] : '数值1234567890.123456'
# 新增
In [ 11 ] : f "数值{a}"
Out [ 11 ] : '数值123'
 
In [ 9 ] : "数值{}" . format ( a )
Out [ 9 ] : '数值123'
 
In [ 10 ] : "数值{}" . format ( b )
Out [ 10 ] : '数值1234567890.123456'
 
In [ 11 ] : f "数值{a}"
Out [ 11 ] : '数值123'
 
In [ 12 ] :    f "数值{b}"
Out [ 12 ] : '数值1234567890.123456'
 
In [ 13 ] : # 以浮点型的方式显示呢
 
In [ 14 ] : f "数值{a:f}"
Out [ 14 ] : '数值123.000000'
 
In [ 15 ] : "数值{:f}" . format ( a )
Out [ 15 ] : '数值123.000000'
 
In [ 16 ] : # 正负数 显示,整数只能显示整数,负数只显示负数
 
In [ 17 ] : "数值{:+f}" . format ( a )
Out [ 17 ] : '数值+123.000000'
 
In [ 18 ] : "数值{:-f}" . format ( a )
Out [ 18 ] : '数值123.000000'
 
In [ 19 ] : "数值{:+f}" . format ( c )
Out [ 19 ] : '数值-123456.654321'
 
In [ 20 ] : a
Out [ 20 ] : 123
 
In [ 21 ] : b
Out [ 21 ] : 1234567890.123456
# 如果想三位显示一个逗号进行区分直接在第二个f前面加,
In [ 23 ] : f "数值{b:,f}"
Out [ 23 ] : '数值1,234,567,890.123456'
 
# 如果设置保留精度呢?
# .2f 就表示保留两位小数,保留规则为四舍五入
In [ 26 ] : f "数值{b:,.2f}"
Out [ 26 ] : '数值1,234,567,890.12'
 
In [ 27 ] : f "数值{b:,.3f}"
Out [ 27 ] : '数值1,234,567,890.123'
 
In [ 28 ] : f "数值{b:,.4f}"
Out [ 28 ] : '数值1,234,567,890.1235'
 
 
In [ 29 ] : # 如果想以百分比显示呢?
 
In [ 30 ] :
 
In [ 30 ] : x = 10
 
In [ 31 ] : y = 3
 
In [ 35 ] : "百分比{:.2%}" . format ( x / y )
Out [ 35 ] : '百分比333.33%'
 
 

math 模块中的向上取值 ceil{天花板} 向下取值floor{地板}

Python
In [37]: b Out[37]: 1234567890.123456 In [38]: c Out[38]: -123456.654321 In [39]: import math In [40]: math.trunc(b) Out[40]: 1234567890 In [41]: math.trunc(c) Out[41]: -123456 In [42]: # 只截取整数 不牵扯四舍五入 In [43]: In [43]: math.floor(b) Out[43]: 1234567890 In [44]: # 向下取数 In [45]: In [45]: math.ceil(123.0) Out[45]: 123 In [46]: math.ceil(123.1) Out[46]: 124 In [47]: # ceil 向上取数 In [48]: In [48]: # 平时我用内建函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
In [ 37 ] : b
Out [ 37 ] : 1234567890.123456
 
In [ 38 ] : c
Out [ 38 ] : - 123456.654321
 
In [ 39 ] : import math
 
In [ 40 ] : math . trunc ( b )
Out [ 40 ] : 1234567890
 
In [ 41 ] : math . trunc ( c )
Out [ 41 ] : - 123456
 
In [ 42 ] : # 只截取整数 不牵扯四舍五入
 
In [ 43 ] :
 
In [ 43 ] : math . floor ( b )
Out [ 43 ] : 1234567890
 
In [ 44 ] : # 向下取数
 
In [ 45 ] :
 
In [ 45 ] : math . ceil ( 123.0 )
Out [ 45 ] : 123
 
In [ 46 ] : math . ceil ( 123.1 )
Out [ 46 ] : 124
 
In [ 47 ] : # ceil 向上取数
 
In [ 48 ] :
 
In [ 48 ] : # 平时我用内建函数
 
 

平时我用内建函数 ,参数第一个数值,第二个是要保留的位数 支持四舍五入

Python
<br />In [49]: #round In [50]: round(b,1) Out[50]: 1234567890.1 In [51]: round(b,2) Out[51]: 1234567890.12 In [52]: round(b,4) Out[52]: 1234567890.1235 In [53]: # 参数第一个数值,第二个是要保留的位数 支持四舍五入
1
2
3
4
5
6
7
8
9
10
11
12
13
< br / > In [ 49 ] : #round
 
In [ 50 ] : round ( b , 1 )
Out [ 50 ] : 1234567890.1
 
In [ 51 ] : round ( b , 2 )
Out [ 51 ] : 1234567890.12
 
In [ 52 ] : round ( b , 4 )
Out [ 52 ] : 1234567890.1235
 
In [ 53 ] : # 参数第一个数值,第二个是要保留的位数 支持四舍五入
 



  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
标题中的"EthernetIP-master.zip"压缩文档涉及工业自动化领域的以太网通信协议EtherNet/IP。该协议由罗克韦尔自动化公司基于TCP/IP技术架构开发,已广泛应用于ControlLogix系列控制设备。该压缩包内可能封装了协议实现代码、技术文档或测试工具等核心组件。 根据描述信息判断,该资源主要用于验证EtherNet/IP通信功能,可能包含测试用例、参数配置模板及故障诊断方案。标签系统通过多种拼写形式强化了协议主题标识,其中"swimo6q"字段需结合具体应用场景才能准确定义其技术含义。 从文件结构分析,该压缩包采用主分支命名规范,符合开源项目管理的基本特征。解压后预期可获取以下技术资料: 1. 项目说明文档:阐述开发目标、环境配置要求及授权条款 2. 核心算法源码:采用工业级编程语言实现的通信协议栈 3. 参数配置文件:预设网络地址、通信端口等连接参数 4. 自动化测试套件:包含协议一致性验证和性能基准测试 5. 技术参考手册:详细说明API接口规范与集成方法 6. 应用示范程序:展示设备数据交换的标准流程 7. 工程构建脚本:支持跨平台编译和部署流程 8. 法律声明文件:明确知识产权归属及使用限制 该测试平台可用于构建协议仿真环境,验证工业控制器与现场设备间的数据交互可靠性。在正式部署前开展此类测试,能够有效识别系统兼容性问题,提升工程实施质量。建议用户在解压文件后优先查阅许可协议,严格遵循技术文档的操作指引,同时需具备EtherNet/IP协议栈的基础知识以深入理解通信机制。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值