我的作业是找出这段代码的逐行说明

时间:2014-11-07 09:49:50

标签: python

当我运行此代码时,它没有输出,请您解释一下这段代码的用途,并逐一解释它是如何实现其目的的。

def mystery(n):
    a, b = 0, 1
    while a < n
       print (a)
       a, b = b, a + b

我也想出了如何让它输出 你添加一个神秘的线(n),例如神秘(200)

我认为是这样的:

•第一行定义了一个带有一个参数的函数。 “def”一词表示功能
  定义。函数“def”必须后跟函数名称,例如谜。

•第二行包含多个赋值。这是说变量“a”是相等的   为0,“b”等于1

•该函数定义“n”的值。在第三行“n”未定义。

•第四行是打印(a)

•第五行

3 个答案:

答案 0 :(得分:0)

此代码是 Fibonacci系列生成器,最高为n。唯一的错误是:语句后缺少冒号(while)。它以a=0 abd b=1开头:比较a < n;如果比较生成prints a,则True;分配b to a并增加b by a;继续while循环,直到比较生成False

>>> def mystery(n):
...     a, b = 0, 1
...     while a < n:
...        print (a)
...        a,b = b,a+b
... 
>>> mystery (10)
0
1
1
2
3
5
8

答案 1 :(得分:0)

# This is a method. 
# You can call this method to its logic. (sea last line)
# N would be the maximum value
def mystery(n):
    # This is the same as:
    # a = 0 Asign a to 0
    # b = 1 Asign b to 1
    a, b = 0, 1
    # Do the following until a is the same or bigger than n.
    while a < n:
       # Print the value of a
       print a
        # This is the same as:
        # temp = a
        # a = b
        # b = a + b
        # Example: a =1 and b =2
        # temp = a
        # a = 2
        # b = temp + 2
       a, b = b, a + b
# Calling the method with value 10
# you first have to call this before it executes
mystery(10)

输出:

0
1
1
2
3
5
8

这称为斐波那契

答案 2 :(得分:0)

为什么不将代码更改为:

,而不是为代码内部定义Fibonacci序列的值。
def mystery(n):
   a, b = 0, 1
   while a < n:
      print (a)
      a, b = b, a + b
mystery(int(input("Insert A Number: ")))

这将允许用户输入一个值,将显示Fibonacci序列。