【问题标题】:Using loops to automate functions-Python 3使用循环自动化函数-Python 3
【发布时间】:2017-01-19 09:50:17
【问题描述】:

有没有办法使用 for 循环来自动化函数?例如 如果我写..

def foo (a number):
    return (a number)

for i in range(10):
    print(foo('1{}').format(str(i))

推出AttributeError: 'NoneType' object has no attribute 'format'

【问题讨论】:

  • for i in range(10): print(foo(10 + i)),或使用for i in range(10, 20): print(foo(i))。整数不是字符串,只是使用算术来产生参数。
  • 所以,不,str.format() 仅适用于字符串,因为它是一个字符串方法。你这里没有字符串。此外,您发布的代码会抛出 SyntaxError 异常,而不是您声称得到的错误。
  • 所以该代码只是一个示例,我实际使用的是尝试连接字符串,我的错误应该以它为例。虽然数字也一样,但会改变它。
  • 您认为首先为什么需要代码生成?您可以生成一个包含表达式的字符串,然后在上面使用eval(),但在 99.9% 的情况下,有更好的方法来做你想做的事。您要在这里解决的实际问题是什么?

标签: function python-3.x loops


【解决方案1】:

好吧,我正在更改它,因为它并没有真正回答您的问题,但它比您尝试做的要简单得多。实际上,它是一个由循环调用和更新的函数。那么,让我们试试吧:

def foo(num):
    print(num)
num = 0
for i in range(1,10,1):
    foo(num + i)

所以,我在这里所做的是获取您的脚本并对其进行更改。首先,“一个数字”作为参数会在尝试定义它们时导致语法错误。所以我把它改成了“num”。

然后,我使用了一个简单的 print 语句来打印传入的数字。如果您只是想要一个循环并通过数字循环它,则可以将其删除。当然,将“foo(num + i)”更改为“print(num + i)”。

“num = 0”设置了一个变量,以便我们以后可以使用它。

问候, 杰瑞

【讨论】:

    猜你喜欢
    • 2019-03-26
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多