我想将整个列表打印到函数
给出的元素如[1,1,2,3,5,8]
def Fib(a):
b=[ ]
if a==0:
b.append(1)
elif a==1:
b.append(1)
else:
b.append(Fib(a-1)+Fib(a-2))
print(b)
Fib(6)
我收到“+不支持的操作数类型”的错误:'NoneType'和'NoneType'“ 在此先感谢,所有的帮助表示赞赏。
答案 0 :(得分:1)
可以制造发电机
def fibGen(n, a=1, b=1):
while n > 0:
yield a
a, b, n = b, a+b, n-1
运行它
>>> [i for i in fibGen(6)]
[1, 1, 2, 3, 5, 8]
答案 1 :(得分:0)
该函数需要一个return语句。 此外, 在每个条件语句之后,应该存在一个return语句
If n ==0:
return 0
Elif n ==1:
return 1
Else:
return fib(n-1) + fib(n-2)
答案 2 :(得分:0)
#include<dirent.h>
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
int main(void)
{
DIR *d;
struct dirent *dir;
char folder_address[100];
strcpy(folder_address,"c://myproject/task1");
d = opendir(folder_address);
if (d)
{
while ((dir = readdir(d)) != NULL)
{
if(strcmp(dir->d_name,".")==0 || strcmp(dir->d_name,"..")==0 )
{continue;}
ifstream myReadFile;
char fname[200];
strcpy(fname, folder_address);
strcat(fname, "/");
strcat(fname, dir->d_name);
myReadFile.open(fname);
char output;
if (myReadFile.is_open())
{
while (1)
{
myReadFile >> output;
if(myReadFile.eof())
break;
cout<<output<<endl;
}
}
myReadFile.close();
}
closedir(d);
}
return(0);
}
输出:
result = {}
def fibo(n):
if n ==0 :
result[n] = 0
return 0
elif n == 1:
result[n] = 1
return 1
else:
val = fibo(n-1) + fibo(n-2)
result[n] = val
return (val)
fibo(10)
print(result.values())