for x in non_neutral.collect():
tweet = str(x[2])
sid = x[1]
status = x[0]
text = word_tokenize(tweet)
text1 = list(text)
tweet = x[2].split()
pronoun = intersect(second_pronoun,tweet)
perojective = intersect(less_offensive,tweet)
if pronoun:
pronoun_index = tweet.index(pronoun[0])
pero_index = tweet.index(perojective[0])
if pero_index <= pronoun_index+3:
status = 1
return Row(status=status,tid=sid,tweet = str(tweet))
else:
status = 0
return Row(status=status,tid=sid,tweet = str(tweet))
对于这段特殊代码,我不断收到此错误,我不明白为什么
File "<ipython-input-5-0484b7e6e4fa>", line 15
return Row(status=status,tid=sid,tweet = str(tweet))
SyntaxError: 'return' outside function
我尝试过再次编写代码,但仍然遇到同样的错误。
答案 0 :(得分:3)
您的程序实际上并不包含某个功能。返回语句必须包含在函数中,在这种情况下您尚未定义任何函数。
尝试更多类似下面的内容(请注意,这不包括您的所有代码,仅作为示例):
def Foo():
#Here is where you put all of your code
#Since it is now in a function a value can be returned from it
if pronoun:
pronoun_index = tweet.index(pronoun[0])
pero_index = tweet.index(perojective[0])
if pero_index <= pronoun_index+3:
status = 1
return Row(status=status,tid=sid,tweet = str(tweet))
else:
status = 0
return Row(status=status,tid=sid,tweet = str(tweet))
Foo()
只要将代码放在函数中就可以了。 python中基本函数定义的语法是:def Foo(Bar):
其中Foo是函数的名称,Bar是您可能需要的任何参数,每个参数用逗号分隔。
答案 1 :(得分:1)
我在您的代码段中没有看到关键字def
,这表示函数定义的开头。片段是从函数体中取出的吗?
以下是for循环中返回的工作示例:
from random import shuffle
def loop_return():
values = [0,1]
shuffle(values)
for i in values:
if i == 0:
return 'Zero first.'
if i == 1:
return 'One first.'
答案 2 :(得分:1)
您实际上没有功能,所以您无法返回任何内容。您可以通过将代码作为过程来修复它。