首页 新闻 搜索 专区 学院

python如何在正则中进行表达式计算

0
悬赏园豆:10 [待解决问题]
本人python小白,最近在学习中,由于觉得标题无法明确解释我的问题,所以如下直接贴上我的小白脚本,哈哈。
该脚本是想求一个矩阵的对角线之和,现将矩阵的宽度输入给变量“N”,然后开始匹配输入的字符串规则是否类似于
1,2,3,4.....的格式,使用
re.match("(\d+,){N - 1}(\d+)$", ss) 来进行匹配,但改正则表达式中的 “N-1”并
没有如我想象中的那么进行数值计算,查了下使用eval和repr也无法成功,也不知道是我是用方式不对还是要更换
正则去实现,心塞~~~
if __name__ == '__main__':
 N = int(input("请输入矩阵宽度:"))
 list_1 = []
 result = 0
for i in range(N):
 ss = input("请输入{0}个数字,以逗号间隔:".format(N))
 r1 = re.match("(\d+,){N - 1}(\d+)$", ss)
 while r1 is None:
 ss = input("输入错误,请输入{0}个数字,以逗号间隔:".format(N))
 r1 = re.match("(\d+,){N - 1}(\d+)$", ss)
 result += int(ss.split(',')[i])
 print(result)

 

 
phimo的主页 phimo | 初学一级 | 园豆:194
提问于:2018-08-02 10:30
< >
分享
所有回答(1)
0

没想到在下午的学习过程突然想到是用print()时候发现变量在引号里面要结合%转换,所以下午试了这个就可以了。

re.match("(\d+,){%d}(\d+)$" % (N - 1), ss)
phimo | 园豆:194 (初学一级) | 2018-08-02 17:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册