|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 天圆突破 于 2018-4-18 12:44 编辑
- import re
- def negnum(string):
- string = string
- lst, nlst = re.findall('\(-?[\d.]+\)',string), list()
- n = len(lst)
- print(lst)
- for i in range(n):
- nlst.append('p'*('-' in lst[i]) + re.search('[\d.]+', lst[i]).group())
- print(nlst)
- for i in range(n):
- string = re.sub(lst[i],nlst[i],string)
- print(string)
- return string
- if __name__ == "__main__":
- print(negnum('(-1.1)*(-2)+(3)'))
复制代码
我输入一个字符串'(-1.1)*(-2)+(3)',希望能得到p1.1*p2+3,但是得到的结果却是(p1.1)*(p2)+(3),检查代码我觉得应该是这段代码string = re.sub(lst[i.],nlst[i.],string)
中lst[i.]的括号被当成元字符的括号处理了,那么问题来了,有没有函数能够把变量代表的字符串转化成原始字符串呢?
([i.]中的点是因为不加点会被论坛当成斜体字代码) |
|