我真的找不到错误。你能帮忙吗?
A1 B1 C1 D1 E1 F1
Warm Cold Warm Cool Warm Cold
我得到的错误:
import re
while True:
a = raw_input() #unos
# stepenovanje
list = re.findall(r'\d+(?:\.\d+)?(?:[\^]\d+(?:\.\d+)?)+', a) #odvajamo stepene
for elem in list:
powers = elem.split("^")
powers = list(reversed(powers)) #obrtanje liste
print powers, 'pow'
result = float(powers[1]) ** float(powers(0))
powers = powers.remove[0]
powers = powers.remove[0]
while len(powers) > 1:
result = result ** float(powers[0])
powers = powers.remove[0]
result = result ** float(powers[0])
a = a.replace(list[list.index(elem)], str(result)) #smestanje rezultata na mesto cinilaca u stringu a
print a, 'posle stepenovanja'
答案 0 :(得分:1)
您已将re.findall()
的结果分配给名称list
:
list = re.findall(r'\d+(?:\.\d+)?(?:[\^]\d+(?:\.\d+)?)+', a) #odvajamo stepene
不要这样做。现在它是一个列表实例而不是list
类型。重命名该变量:
degrees = re.findall(r'\d+(?:\.\d+)?(?:[\^]\d+(?:\.\d+)?)+', a)
for elem in degrees:
我还不确定当您直接使用list[list.index(elem)]
时使用elem
的原因。
答案 1 :(得分:0)
我发现了一个错误。在result = float(powers[1]) ** float(powers(0))
我使用()而不是[]。谢谢!