我创建了一个函数来打印出一个标记化文本的统计信息:
def print_statistics(text):
print("\nThe total number of tokens is " +str(number_of_tokens(ny))+".")
return ???
这个函数给了我两个输出(第二个是"无")。但是我想让函数给我打印输出。知道我怎么能这样做吗?
答案 0 :(得分:2)
该函数可以返回要打印的字符串:
def get_statistics_string(text):
return "\nThe total number of tokens is " + str(number_of_tokens(ny)) + "."
或打印统计信息:
def print_statistics(text):
print("\nThe total number of tokens is " + str(number_of_tokens(ny)) + ".")
# note that it will still return None)
通常一个好主意是决定一个函数要么做某事,要么返回一些东西,而不是两者。
答案 1 :(得分:1)
如果您希望函数为print
所需的输出,请执行以下操作:
def print_statistics(text):
print("\nThe total number of tokens is " +str(number_of_tokens(ny))+".")
return
否则,如果您希望函数为return
所需的输出,请执行以下操作:
def print_statistics(text):
return "\nThe total number of tokens is " +str(number_of_tokens(ny))+"."
答案 2 :(得分:1)
这个函数给了我两个输出(第二个是"无")。
您正在Python shell(内置的,IPython或其他)中执行该功能。 Python shell始终显示您评估的最后一个表达式的结果。由于你的函数没有明确地返回任何东西,它(隐含地)返回None
,这是你的第二个输出" - 第一个"输出"是打印到sys.stdout
的功能。如果从脚本执行此功能,则只能看到该功能打印的内容。
你是什么意思"我希望这个功能能给我打印输出"目前还不清楚。如果您希望将功能打印到sys.stdout
,那么它就完成了,您无需更改。如果您希望它将格式化字符串(当前打印的字符串)作为Python变量返回,则将print('yourstringhere')
替换为return 'yourstringhere'
。
作为旁注:学会使用正确的字符串格式,它更容易阅读和维护:
nb_tokens = number_of_tokens(ny)
msg = "\nThe total number of tokens is {}.".format(nb_tokens)
# then either `print(msg)` or `return msg`
答案 3 :(得分:0)
你可以让函数返回输出,如:
def print_statistics(text):
return "\nThe total number of tokens is " +str(number_of_tokens(ny))+"."