-1
我是新来的蟒蛇我正在geeting错误TypeError: 'str' object is not callable
类型错误:“海峡”对象不是可调用的蟒蛇
当输入
3
111+23
1638-1350
1992+133
然后porgram成功运行,但是当输入字符串包含“* “意味着我的else条件则阵痛TypeError
例如,如果输入的是
3
111*23
1638-1350
110+456
则得到了错误类型错误:“海峡”对象不是可调用
这里是我的代码 链接ideone代码 - >http://ideone.com/bDuXpW
def MAX(a,b,c):
if(a>b and a>c):
return a
elif(b>a and b>c):
return b
else:
return c
t=input()
for x in range(0,t):
myinput=raw_input()
if(myinput.find('+')!=-1):
num1,num2=myinput.split('+')
result=int(num1)+int(num2)
result_str=str(result)
num2='+'+num2
len1=len(num1)
len2=len(num2)
len3=len(result_str)
max=MAX(len1,len2,len3)
line='-'*max
num1=' '*(max-len1)+num1
num2=' '*(max-len2)+num2
result_str=' '*(max-len3)+result_str
print num1
print num2
print line
print result_str
print '\n'
elif(myinput.find('-')!=-1):
num1,num2=myinput.split('-')
result=int(num1)-int(num2)
result_str=str(result)
num2='-'+num2
len1=len(num1)
len2=len(num2)
len3=len(result_str)
max=MAX(len1,len2,len3)
line='-'*max
num1=' '*(max-len1)+num1
num2=' '*(max-len2)+num2
result_str=' '*(max-len3)+result_str
print num1
print num2
print line
print result_str
print '\n'
else:
num1,num2=myinput.split('*')
result=int(num1)*int(num2)
result_str=str(result)
num1_int=int(num1)
ascii_num2=[]
for y in num2:
ascii_num2.append(ord(y)-48)
mul_list=[]
k=0
num2='*'+num2
len1=len(num1)
len2=len(num2)
len3=len(result_str)
max=MAX(len1,len2,0)
line='-'*max
for dig2 in reversed(ascii_num2):
new=dig2*(num1_int)
new_str=str(new)+' '*k
mul_list.append(new_str)
k+=1
count=len(mul_list)
max=MAX(len1,len2,len3)
num1=' '*(max-len1)+num1
num2=' '*(max-len2)+num2
line=' '*(max-len(line))+line
another_line='-'*max
for i in range(0,count):
str=mul_list[i]
str=' '*(max-len(str))+str
mul_list[i]=str
print num1
print num2
print line
for i in range(0,count):
print mul_list[i]
print another_line
print result_str
print '\n'
result=0
#....print num1,num2
感觉像分享回溯? –
你可以发布整个回溯? –
你为什么要发明自己的'max'功能? – mishik