请问这个错误怎么解决
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 错误原因:无效语法。
应该是你搞错了变量作用域 第3行,不能把数字付给前面的东西 本帖最后由 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)
Hoiste 发表于 2020-3-29 11:28
函数是不能赋值的,只能通过返回值反馈给其他变量,另外在下面的print方法里面的%没有跟上数据类型,后面也 ...
谢谢,可是我copy你的代码还是报错 蒋博文 发表于 2020-3-29 11:04
错误原因:无效语法。
应该是你搞错了变量作用域
谢谢,新手请求您可以说详细一点么{:5_110:} kirte 发表于 2020-3-29 11:22
第3行,不能把数字付给前面的东西
好的 谢谢 zshill 发表于 2020-3-29 13:39
谢谢,可是我copy你的代码还是报错
我跑过没问题啊,打开一个空的py文件复制过去运行看看,还是报错的话看下错误信息是什么。 我改的代码和三楼一样,问题很多:第一个是==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]