【问题标题】:error, File "<ipython-input-45-3a28643f7b0c>", line 12 return random.choice(bots_greeting) ^ SyntaxError: 'return' outside function错误,文件“<ipython-input-45-3a28643f7b0c>”,第 12 行 return random.choice(bots_greeting) ^ SyntaxError: 'return' outside function
【发布时间】:2020-12-24 22:29:56
【问题描述】:

在以下代码中,我在 return 语句中遇到语法错误

#function to return a random greeting to user's greeting
def greeting_response(text):
 text = text.lower()

#Bots Greeting Response
bot_greeting = ['hi', 'hello', 'how can i help you', 'welcome']
#users greetings
user_greeting = ['hi', 'hello','hey']

for word in text.split():
    if word in user_greeting:
     return random.choice(bot_greeting)

运行时遇到的错误是:

文件“”,第 12 行 返回随机选择(bots_greeting) ^ SyntaxError: 'return' 外部函数

谁能帮我找出我犯了什么错误? 当我尝试打印而不是返回它的工作正常,但返回它给出错误。

【问题讨论】:

  • 错误就是它所说的。您的意思是要使用不同的缩进来将 return 语句带入您的函数中吗?
  • 是的,我想执行它,我认为将return语句带入内部很重要。我也尝试更改缩进,但没有任何效果。
  • 打印命令可以正常工作,但不能返回
  • 更改缩进是否可以解决您的语法错误?
  • 不,没有用。

标签: python python-3.x return google-colaboratory


【解决方案1】:

基本上它是由于无效缩进而发生的。下面的代码应该可以工作:

import random


#function to return a random greeting to user's greeting
def greeting_response(text):
    text = text.lower()

    #Bots Greeting Response
    bot_greeting = ['hi', 'hello', 'how can i help you', 'welcome']
    #users greetings
    user_greeting = ['hi', 'hello', 'hey']

    for word in text.split():
        if word in user_greeting:
            return random.choice(bot_greeting)


print(greeting_response('hi'))

我强烈建议您使用任何代码编辑器,例如 PyCharmVS

【讨论】:

  • 在这里你导入随机,我已经在早期的单元格中做到了。两者有什么区别
  • import random 没有引起问题。问题是由于代码的其他部分。像那些变量一样,for 循环应该在def 内。需要遵循四个空格的适当缩进。虽然你的代码逻辑没有问题。
  • 打印语句在定义的函数之外,对吧?
  • 对,打印在外面。
  • 感谢您让我知道缩进,我对此一无所知
猜你喜欢
  • 1970-01-01
  • 2021-03-01
  • 2016-03-27
  • 1970-01-01
  • 2022-11-20
  • 2013-03-26
  • 2022-11-29
  • 1970-01-01
相关资源
最近更新 更多