友友们,急,帮我看一下后三行为什么语法错误?

import math
def captureval(inputstr):
alist=inputstr.split('/')
blist=[]
for a in alist:
val=float(a)
blist.append(val)
return blist
boolflag=True
while boolflag==True:
phsolution=input('计算[1.强碱(酸);2.一元或多元强酸(碱);3.两性物质;4.缓冲溶液;5.ka或者kb;6.pka相关;7.退出]:')
if phsolution=='1':
ka=input('请输入浓度;')
kalist=captureval(ka)
ph=math.log10(kalist[0](-1)
print('pH=%.3f%ph)
elif phosolution=='4':
buffer=input('ka=10
(-5),ca=o.5,cb=0.5:')

仅从贴出来的代码看,print里的3f后边少半个引号
print('pH=%.3f'%ph)

1.请确认格式是否正确,python 严格空格对齐
2.请贴出报错信息