使用字符串替换打印准确率时触发SyntaxError语法错误求助
解决Python打印准确率时的语法错误
这个问题很典型——你写的是Python 2的语法,但运行环境是Python 3,再加上字符串格式化的小问题,直接触发了语法错误。咱们一步步来解决:
错误原因拆解
- Python 3中
print是函数,必须加括号:你写的print "Accuracy :%s"是Python 2的写法,Python 3要求必须用print(...)的函数调用形式,这是导致语法报错的直接原因。 - 不必要的格式化混用:你同时用了
%s占位符和str.format()方法,其实二者选其一就够了,混用反而显得多余。
修正后的代码
方法一:用str.format()(兼容Python 3.0+)
accuracy = metrics.accuracy_score(predictions, data[outcome]) print("Accuracy: {0:.3%}".format(accuracy))
方法二:用f-string(Python 3.6+推荐,写法更直观)
accuracy = metrics.accuracy_score(predictions, data[outcome]) print(f"Accuracy: {accuracy:.3%}")
补充说明
- 两种写法都会把准确率格式化为保留三位小数的百分比形式,比如准确率是0.925的话,会输出
Accuracy: 92.500%。 - 如果你确实需要在Python 2环境运行,可以调整为
%格式化的写法:
不过更推荐统一使用Python 3的写法,毕竟Python 2已经停止维护了。print("Accuracy: %.3f%%" % (accuracy * 100))
内容的提问来源于stack exchange,提问作者learningtocode
相关产品推荐
相关产品推荐

