打印语句未在终端中显示
我最近开始玩scikit-learn,因为上学期的人工智能课让我很享受。我之前没有用过python(我们用的是WEKA),所以我设置了python3,并创建了一个虚拟环境,里面装了所有需要的包。我已经激活了这个虚拟环境,然后尝试通过 python3 <filename.py>
来运行下面的代码。
代码内容是:
from sklearn import svm, datasets
from numpy import genfromtxt, savetxt
import sys
def main():
digits = datasets.load_digits()
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(digits.data[:-1], digits.target[:-1])
SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0, degree=3,
gamma=0.001, kernel='rbf', max_iter=-1, probability=False,
random_state=None, shrinking=True, tol=0.001, verbose=False)
print(clf.predict(digits.data[-1]))
sys.stdout.flush()
但是在iterm(一个mac os x的bash终端)里什么都没有打印出来。所以我又尝试运行了这段代码:
def main():
print("hi", end='\n', file=sys.stdout, flush=True)
结果也没有任何输出。我查看了打印的文档,还问了一个只用过2.7版本的朋友,但还是没搞明白这是怎么回事。
3 个回答
0
我之前也遇到过类似的问题,跟几种不同的Python脚本都有关系。最后我通过检查代码的缩进来解决了这个问题。确保缩进正确就可以了。
1
你真的有运行这个main()
函数吗?在上面的代码中,你定义了一个叫main()
的过程,但你必须调用它才能让它做点什么。因为你是在终端上工作,只需输入main()
然后按下[ENTER]
键。
如果你是从文件中运行这个程序,那么@AndrewJohnson的回答是完全正确的。
5
你的 main() 函数有没有被调用过?试着在你的模块最后加上这个。
if __name__=="__main__":
main()