如何在Python的print中拼接文本?打印格式问题求助
问题解决方法
你代码里有两个核心问题:
- 正则表达式没匹配到原字符串里的负号,导致
textnumber拿到的是1.75而非-1.75,后续还要手动加负号完全没必要 - 用逗号分隔元素赋值给
number1是创建元组,不是字符串拼接,所以打印会带括号和引号
修正步骤:
修正正则,捕获带负号的数字
把正则改成r'(-?\d+(?:\.\d+)?)',其中-?表示匹配0个或1个负号,这样能正确拿到-1.75。正确拼接成目标字符串
有几种简单方式实现:- f-string格式化(推荐):语法简洁,直接插入计算后的数值
- str.join()方法:把数值转成字符串后用
,连接 - 字符串+拼接:逐个拼接字符串(稍繁琐)
完整修正代码
import re numbers = "Number is -1.75" # 修正正则,捕获带负号的数字 textnumber = re.findall(r'(-?\d+(?:\.\d+)?)', numbers)[0] number = float(textnumber) # 方法1:f-string格式化 number1 = f"{number - 0.25}, {number + 0.25}" # 方法2:str.join() # number1 = ', '.join([str(number - 0.25), str(number + 0.25)]) # 方法3:+拼接 # number1 = str(number - 0.25) + ', ' + str(number + 0.25) print(number1)
运行后就能得到你想要的输出:-1.5, -2.0
内容的提问来源于stack exchange,提问作者JakeM
相关产品推荐
相关产品推荐

