【问题标题】:can not print the return value from a function无法打印函数的返回值
【发布时间】:2013-05-09 10:40:00
【问题描述】:

我试图在 Python 中做一个简单的函数,这个函数应该返回一个值。 问题是,当我尝试打印函数的输出时,没有出现任何值。

请在下面找到 Python 代码:

# Fibonacci Series.
def Fibonacci(num) :
F_1 = 0
F_2 = 1
Fibo = 0
for i in list(range(num)) :
    Fibo = F_1 + F_2
    F_1 = F_2
    F_2 = Fibo
    return Fibo

print(Fibonacci(7))

【问题讨论】:

  • 你得到什么输出/错误?什么都没有?
  • 是的,什么都没有。
  • 这不是你的问题,但值得注意的是你只能从一个函数返回一个值——你可能希望yield 生成一个生成器(然后将函数调用包装在@987654323 @ 或循环打印以获取所有值)。
  • 我知道我的问题,我会删除这篇文章。

标签: python syntax for-loop indentation


【解决方案1】:

这是您的代码格式的问题,

这样格式化就可以了,我刚刚测试过

# Fibonacci Series.
def Fibonacci(num) :
    F_1 = 0
    F_2 = 1
    Fibo = 0
    for i in list(range(num)) :
        Fibo = F_1 + F_2
        F_1 = F_2
        F_2 = Fibo
    return Fibo

print(Fibonacci(7))

Python 依赖于执行块的选项卡式缩进,就像 C++ 或 Java 依赖于花括号 { }

【讨论】:

  • 如果这是问题所在,OP 会收到语法错误。
  • 它返回 1 的原因是如果 return 被标记到 for 循环中,所以它立即返回,给出 1
【解决方案2】:

只是你的缩进是错误的。 Python 严重依赖制表符和空格。这行得通

# Fibonacci Series.
def Fibonacci(num) :
  F_1 = 0
  F_2 = 1
  Fibo = 0
  for i in list(range(num)) :
      Fibo = F_1 + F_2
      F_1 = F_2
      F_2 = Fibo
  return Fibo

print(Fibonacci(7))

【讨论】:

    猜你喜欢
    • 2020-01-26
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多