我正在嘗試使用正則運算式和后來的多個方程從這個方程中獲取系數:
2a 3b=c
但是我得到了這個煩人的錯誤。我檢查了我的代碼,一切對我來說都很好。這是錯誤:
AttributeError: 'int' object has no attribute 'group'
這是我的代碼:
import re
all_coefficients = []
def equation_solver(*equations):
for equation in equations:
sides = equation.split('=')
coefficients = []
for side in sides:
terms = re.split(r"\ ", side)
for term in terms:
coefficient = re.match(r"\d", term)
if coefficient == None:
coefficient = 1
coefficients.append(int(coefficient.group(0)))
all_coefficients.append(coefficients)
equations = []
while True:
equations.append(input())
if input() == 's':
break
equation_solver(*equations)
提前致謝
uj5u.com熱心網友回復:
它導致錯誤,因為re.match在術語中沒有找到任何系數,c所以如果它沒有找到任何系數(仔細閱讀),你將系數值分配為1但你現在不能使用group,因為系數現在是一個整數!因此,在將其轉換為整數之前使用group函式,它看起來像這樣:
import re
all_coefficients = []
def equation_solver(*equations):
for equation in equations:
sides = equation.split('=')
coefficients = []
for side in sides:
terms = re.split(r"\ ", side)
for term in terms:
coefficient = re.match(r"\d", term)
if coefficient == None:
coefficient = 1
else:
coefficient = coefficient.group(0) # Use group beforehand
coefficients.append(int(coefficient))
all_coefficients.append(coefficients)
equations = []
while True:
equations.append(input())
if input() == 's':
break
equation_solver(*equations)
希望這可以幫助
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/518169.html
上一篇:以yaml格式寫入時如何解碼檔案
下一篇:模板類錯誤中的顯式特化
