0

我正在使用 3 个参数创建一个无用的函数,输出是'That was a waste of my time' 我尝试的代码是:

def useless("Hello, 95, "jello"):
   x = 'That was a waste of my time'
   return x

应该有一个输出,但没有......它还说我在第一行犯了一个语法错误。

输出应该是'This was a waste of my time'

我无法检测到任何错误...我该怎么办?我没有得到输出,我也有语法错误

4

3 回答 3

2

您没有得到任何输出,因为您有语法错误。

您的函数参数无效;它们是 a) 像那样无效的 Python,并且 b) 不完整:

def useless("Hello, 95, "jello"):

"Hello字符串缺少右括号,但无论如何您都不能将文字值放在函数头中。删除括号之间的所有内容:

def useless():
    x = 'That was a waste of my time'
    return x

您的其余功能很好:

>>> def useless():
...     x = 'That was a waste of my time'
...     return x
... 
>>> useless()
'That was a waste of my time'
于 2013-09-13T17:15:33.253 回答
1
def useless("Hello, 95, "jello"):
   x = 'That was a waste of my time'
   return x

应该...

def useless(Hello, value, jello):
   x = 'That was a waste of my time'
   return x

您不能将字符串或 int 作为变量名。您在设置参数时声明变量。

在您的情况下,也def useless()没有 args 更好。

于 2013-09-13T17:19:28.650 回答
1

首先,您错过了结束"于. Python 现在认为你想要包含,然后它就会变得混乱,等等。uselessHello"Hello, 95, "jello

此外,您似乎对函数如何使用参数和参数有一个基本的误解。首先,让我们定义两者之间的区别。
参数是定义函数时放入函数的内容:

def Function(parameter_1,parameter_2):
    a = parameter_1
    b = parameter_2

同时,参数是您在调用函数时传递给函数的值:

Function(argument_1,argument_2)

用数学术语思考,当你调用 X=? 的函数时 和 Y=?,你是说:

"call Function, and plug in "value" for x and "value2" for y"

运行这些示例,你可以useless用两种方式重写你的函数:
你可以不做任何参数,它总是返回“x”:

def useless():
    x='That was a waste of my time'
    return x

或者,您可以通过函数中的参数传递参数,从而为您的函数提供更大的灵活性:

def useless(x):
    return x

useless('That was a waste of my time')

要么将返回同一行。

return最后,确保您知道和之间的区别print;使用函数时,您并不总是想打印结果,但仍想得到它。这就是return工作的地方;然后调用该函数将带回您告诉它对该return行所做的任何值。

例如,在第一个useless不带参数的 I 定义中,函数不带参数并x始终按定义返回。

然而,我定义的另一个useless本质上是一个“打印”函数,因为它接受你给它的参数并自动返回它。

为什么return在这些情况下而不是print?因为现在你正在return学习,你可以选择告诉 Pythonprint 存储useless
感谢return,您可以编写:

print useless(x)

或者

variable = useless(x)

现在你可以随心所欲地使用variable,即使你只是这样做print variable

我希望我的过度解释没有被压倒。如果您仍然不明白,请尝试学习 Codecademy Python 教程,这可能会帮助您从概念上掌握所有这些内容(该网站目前尚未完全正常运行,但如果您在Codecademy Labs 学习课程,您仍然可以通过教程破解你的方式)。

于 2013-09-13T17:28:03.190 回答