zshill 发表于 2020-3-29 10:45:19

请问这个错误怎么解决

def F(n):
                if n==1 or n==2:
                        F(1)==F(2)=1
                if n>2:
                        F(n)=F(n-1)+F(n-2)
result = F(8)
if result !=1:
        print ("共有%对小兔子!")
       
SyntaxError: invalid syntax

蒋博文 发表于 2020-3-29 11:04:47

错误原因:无效语法。
应该是你搞错了变量作用域

kirte 发表于 2020-3-29 11:22:35

第3行,不能把数字付给前面的东西

Hoiste 发表于 2020-3-29 11:28:39

本帖最后由 Hoiste 于 2020-3-29 11:30 编辑

函数是不能赋值的,只能通过返回值反馈给其他变量,另外在下面的print方法里面的%没有跟上数据类型,后面也没有加变量地址。
第三是就算能赋值,==号也只能用在分支和循环的判断上,不能用在赋值语句里面

def F(n):
    if n == 1 or n == 2:
      return 1
    if n > 2:
      return F(n - 1) + F(n - 2)

result = F(8)
if result != 1:
    print('共有%d对小兔子' %result)

zshill 发表于 2020-3-29 13:39:38

Hoiste 发表于 2020-3-29 11:28
函数是不能赋值的,只能通过返回值反馈给其他变量,另外在下面的print方法里面的%没有跟上数据类型,后面也 ...

谢谢,可是我copy你的代码还是报错

zshill 发表于 2020-3-29 13:40:26

蒋博文 发表于 2020-3-29 11:04
错误原因:无效语法。
应该是你搞错了变量作用域

谢谢,新手请求您可以说详细一点么{:5_110:}

zshill 发表于 2020-3-29 13:41:31

kirte 发表于 2020-3-29 11:22
第3行,不能把数字付给前面的东西

好的 谢谢

Hoiste 发表于 2020-3-29 14:29:12

zshill 发表于 2020-3-29 13:39
谢谢,可是我copy你的代码还是报错

我跑过没问题啊,打开一个空的py文件复制过去运行看看,还是报错的话看下错误信息是什么。

Chysial 发表于 2020-3-29 14:49:06

我改的代码和三楼一样,问题很多:第一个是==s是判断,不是赋值,哪个地方如果想给两个变量赋值,可以写成f,d=1,1,这里递归不用这样用;问题二是返回的是return不要用F(n)=啥,因为一旦出现F就会调用函数,又回去了死循环,第三发代码时候在回复框中上边有个<>形状的东西。
def F(n):
    if n==1 or n==2:
      return 1
    else:
      return F(n-1)+F(n-2)
result = F(8)
print(result)
if result !=1:
      print ("共有%对小兔子!")
页: [1]
查看完整版本: 请问这个错误怎么解决