【问题标题】:Unable to understand how function is being called in python无法理解如何在 python 中调用函数
【发布时间】:2020-09-20 07:20:11
【问题描述】:

函数(正方形、立方体)如何存储在操作变量中。这里如何调用函数?这段代码实际上是如何执行的?

def square(n):
 return n**2

def cube(n): 
 return n**3
operations = [square, cube]
numbers = [2, 1, 3, 4, 7, 11, 18, 29]
for i, n in enumerate(numbers):
      action = operations[i % 2]
      print(f"{action.__name__}({n}):", action(n))

输出:

square(2): 4
cube(1): 1
square(3): 9
cube(4): 64
square(7): 49
cube(11): 1331
square(18): 324
cube(29): 24389

【问题讨论】:

  • 首先,请尽量把代码放在``(code)```格式下,让代码更易读。
  • 在发布之前是可读的。我不知道每次发布后它会发生什么变化
  • 电话是action(n)
  • 然后n**2返回给action(n)?

标签: python function


【解决方案1】:

第一部分定义了函数squarecube,并将每个函数的引用存储在操作列表中。

def square(n):
 return n**2

def cube(n): 
 return n**3
operations = [square, cube]

第二部分枚举并循环遍历数字,当i 为偶数时使用square,当非偶数时使用cube

numbers = [2, 1, 3, 4, 7, 11, 18, 29]
for i, n in enumerate(numbers):
      action = operations[i % 2]
      print(f"{action.__name__}({n}):", action(n))

【讨论】:

  • 我想知道,n**2 是否返回到最初在操作列表中的正方形。在程序的第二部分,action(n) 一开始是如何打印 4 的?您能否提供任何网站链接以更好地理解它?
  • 1) 动作变量有函数,没有参数。 2) i%2 为 0,2,4... 返回 0,为 i 的 1,3,5 值返回 1。 3) 这意味着 numbers[0], numbers[2] 等用于平方函数,即操作 [0] 4) numbers[1], numbers[3] 用于立方体函数,即操作 [1]。这就是原因,首先返回 SQUARE 然后返回 CUBE 然后返回 SQUARE 然后返回 CUBE 等等,
猜你喜欢
  • 2022-11-12
  • 2021-11-22
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-11
相关资源
最近更新 更多