~玉米糊~
慢慢来,也会很快。 非宁静无以志学,学什么都一样,慢慢打基础,找规律、认真、坚持,其余的交给时间。
随笔 - 117,  文章 - 17,  评论 - 1,  阅读 - 82072

用正则表达式擦或者字符串中所有的浮点数,并格式化这些浮点数,保留小数点后2位,最后将格式后的浮点数替换原来的浮点数,同时输出替换后的结果和替换的次数。要求用一条语句实现

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
import re
 
'''
1. 表示浮点数的正则表达式 -?\d+(\.\d+)?
2. 格式化浮点数 format
3. 如何替换原来的浮点数 sub subn
'''
 
result = re.subn('-?\d+(\.\d+)?', '##', 'Pi is 3.141592654, e is 2.71828183, -0.2 + 1.3 = 1.1')
print(result)
print(result[0])
print(result[1])
 
def fun(matched):
    return '<' + matched.group() + '>'
result = re.subn('-?\d+(\.\d+)?', fun, 'Pi is 3.141592654, e is 2.71828183, -0.2 + 1.3 = 1.1')
print(result)
print(result[0])
print(result[1])
 
def fun(matched):
    return format(float(matched.group()), '0.2f')
result = re.subn('-?\d+(\.\d+)?', fun, 'Pi is 3.141592654, e is 2.71828183, -0.2 + 1.3 = 1.1')
print(result)
print(result[0])
print(result[1])

  

('Pi is ##, e is ##, ## + ## = ##', 5)
Pi is ##, e is ##, ## + ## = ##
5
('Pi is <3.141592654>, e is <2.71828183>, <-0.2> + <1.3> = <1.1>', 5)
Pi is <3.141592654>, e is <2.71828183>, <-0.2> + <1.3> = <1.1>
5
('Pi is 3.14, e is 2.72, -0.20 + 1.30 = 1.10', 5)
Pi is 3.14, e is 2.72, -0.20 + 1.30 = 1.10
5

 

sub 和 subn 都用于替换字符串中的所有符合条件的子字符串,但sub函数只返回替换后的结果,而subn返回一个元组,元组的第1个元素返回替换后的结果,第2个元素返回替换的次数。

posted on   yuminhu  阅读(133)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!

< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5
点击右上角即可分享
微信分享提示