Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为函数中的变量赋值?_Python_Python 3.x - Fatal编程技术网

Python 如何为函数中的变量赋值?

Python 如何为函数中的变量赋值?,python,python-3.x,Python,Python 3.x,我正在为我的大学做一项作业,他们要求我用三个不同的半径值调用print_volume函数 编写您自己的函数,说明您在本单元中学习的功能。函数必须至少包含一个参数 我有一个错误,我将写在下面,请注意,我还是一个初学者,这是我学习python的第二周,我不想为我的作业找到解决方案,我只是想知道如何将我的x y和z设置为这些数字,所以当我运行代码时,它将使用3个不同的答案进行计算。如果有人也可以告诉我一个参数和一个参数之间的区别,因为它们看起来是一样的。谢谢 我试着包括3个不同的值并为它们设置变量,在

我正在为我的大学做一项作业,他们要求我用三个不同的半径值调用print_volume函数

编写您自己的函数,说明您在本单元中学习的功能。函数必须至少包含一个参数

我有一个错误,我将写在下面,请注意,我还是一个初学者,这是我学习python的第二周,我不想为我的作业找到解决方案,我只是想知道如何将我的x y和z设置为这些数字,所以当我运行代码时,它将使用3个不同的答案进行计算。如果有人也可以告诉我一个参数和一个参数之间的区别,因为它们看起来是一样的。谢谢

我试着包括3个不同的值并为它们设置变量,在我的代码中我试着包括x=5y=6和z=10,然后我试着做一个数学计算,根据我的x-y和z输入给出3个不同的答案

def print_volume (x,y,z):

    print_volume(5,6,10)


    print (4/3*pi*x**3)
    print (4/3*pi*y**3)
    print (4/3*pi*z**3)

TypeError:print_volume()缺少3个必需的位置参数:“x”、“y”和“z”

一个参数和一个参数的含义通常相同。由于它与您的方法相关,所以它是递归地调用自己。您需要从外部(在另一个方法中或在运行时)调用该方法

请尝试以下操作:

def print_volume (x, y, z):
    print (4 / 3 * math.pi * x**3)
    print (4 / 3 * math.pi * y**3)
    print (4 / 3 * math.pi * z**3)

print_volume(5, 6, 10)

因此,首先我建议使用有意义的变量名称定义函数,以便代码易于阅读和理解。 与现在一样,您的函数只需再次调用该函数

必须将函数的定义与调用函数分开,定义应为:

def function(arg1, arg2, arg3):
  return arg1 + arg2 + arg3
result = function(10, 20, 30)
print(result)
### would print - 60
对该函数的调用将是:

def function(arg1, arg2, arg3):
  return arg1 + arg2 + arg3
result = function(10, 20, 30)
print(result)
### would print - 60
回到你的问题上来,定义应该是

def print_volume (x, y, z):
    print (4 / 3 * math.pi * x**3)
    print (4 / 3 * math.pi * y**3)
    print (4 / 3 * math.pi * z**3)

print_volume(5, 6, 10)

在调用函数本身中的函数时,必须做一些研究,这会导致无限递归,而不执行print语句

**注意:确保在程序开始时将pi的值初始化为全局变量或作为参数传递**

def print_volume (x,y,z):
    print (4/3*pi*x**3)
    print (4/3*pi*y**3)
    print (4/3*pi*z**3)

print_volume(5,6,10)
如果将pi=3.14添加为程序的第一行,并执行上述函数,则将获得以下输出

523.3333333333334
904.3199999999999
4186.666666666667

我希望你能清楚地了解基本情况。:)

此代码不会导致该错误。它将递归循环,直到崩溃。为什么要在
print\u volume
的内部调用
print\u volume
?在尝试测试函数时,不会重新定义函数。你的代码毫无意义。如果您已经编写了
print_function()
(听起来好像只需要一个参数),用不同的输入值连续调用三次。@Carcigenicate我在youtube上的一个视频中看到过,我认为会这样work@JohnColeman我是否可以不包含3个参数,每次依次打印一次?“对我的数学问题给我不同的答案吗?”法瑞斯坎达利,不像你这里说的那样<代码>打印卷(5,6,10)不应在其自身定义内。这将导致它循环并崩溃。在函数外调用那一行。有没有其他方法可以这样做,因为我的研究中还没有包含名称,但是谢谢你让我注意到math.pi的东西你可以删除_name_uu行,而不去调用方法。我更新了我的答案以反映这一点。它仍然在我的回答中给我同样的错误question@FaresJandali你用什么IDE来写程序?我做了你写的,它仍然给我一个error@FaresJandali什么错误?这里写的代码很好,只要您在某处定义了
pi
。TypeError:print_volume()缺少3个必需的位置参数:“x”、“y”和“z”@FaresJandali同样,此代码和您发布的代码不会导致该错误。您在其他地方有错误的代码导致了这种情况。@FaresJandali,但这不是代码导致的。重新启动IDE并重试。我刚刚运行了这个答案中的代码。很好。如果仍然出现错误,请准确检查它指向的位置,因为它不是答案中的代码。您可能有另一个正在运行的旧代码文件。我尝试了它,但仍然给我一个错误