这篇文章主要给大家介绍了利用Python实现斐波那契数列的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
文章源自设计学徒自学网-http://www.sx1c.com/38610.html
斐波那契数列——经典例子,永不过时!!!文章源自设计学徒自学网-http://www.sx1c.com/38610.html
1.for循环
| 
 1 
2 
3 
4 
5 
6 
7 
8 
 | 
def fibonacci1(n):    a, b = 0, 1    for i in range(n):        a, b = b, a+b        print(a)fibonacci1(3) | 
或文章源自设计学徒自学网-http://www.sx1c.com/38610.html
| 
 1 
2 
3 
4 
5 
6 
7 
 | 
def fib1(w):    a, b = 1, 1    for i in range(w-1):        a, b = b, a+b    return aprint(fib1(3)) | 
[^1]刚好得出这个位置的数文章源自设计学徒自学网-http://www.sx1c.com/38610.html
2.while循环
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
 | 
def fibnaqi2(m):    a, b = 0, 1    i = 0    while i < m:        print(b)        a, b = b, a+b        i += 1fibnaqi2(4) | 
[^1]刚好得出这个位置的数文章源自设计学徒自学网-http://www.sx1c.com/38610.html
3.使用递归
| 
 1 
2 
3 
4 
5 
6 
 | 
def fib2(q):    if q == 1 or q == 2:        return 1    return fib2(q-1)+fib2(q-2)print(fib2(9)) | 
4.递归+for循环
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
 | 
def fibnacci3(p):    lst = []    for i in range(p):        if i == 1 or i == 0:            lst.append(1)        else:            lst.append(lst[i-1]+lst[i-2])    print(lst)fibnacci3(5) | 
5.递归+while循环
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
 | 
def fibnacci4(k):    lis = []    i = 0    while i<k:        if i == 0 or i == 1:            lis.append(1)        else:            lis.append(lis[i-2]+lis[i-1])        i += 1    print(lis)fibnacci4(6) | 
6.递归+定义函数+for循环
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
 | 
def fibnacci5(o):    def fn(i):        if i < 2:            return 1        else:            return (fn(i-2)+fn(i-1))    for i in range(o):        print(fn(i))fibnacci5(8) | 
7.指定列表
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
 | 
def fib3(e):    if e == 1:        return [1]    if e == 2:        return [1, 1]    fibs = [1, 1]    for i in range(2, e):        fibs.append(fibs[-1]+fibs[-2])    return fibsprint(fib3(12)) | 
趣方程求解
题目描述文章源自设计学徒自学网-http://www.sx1c.com/38610.html
二次方程式 ax**2 + bx + c = 0 (a、b、c 用户提供,为实数,a ≠ 0)文章源自设计学徒自学网-http://www.sx1c.com/38610.html
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
 | 
# 导入 cmath(复杂数学运算) 模块import cmatha = float(input('输入 a: '))b = float(input('输入 b: '))c = float(input('输入 c: '))# 计算d = (b ** 2) - (4 * a * c)# 两种求解方式sol1 = (-b - cmath.sqrt(d)) / (2 * a)sol2 = (-b + cmath.sqrt(d)) / (2 * a)print('结果为 {0} 和 {1}'.format(sol1, sol2)) | 
pandas 每日一练
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
 | 
# -*- coding = utf-8 -*-# @Time : 2022/7/26 21:48# @Author : lxw_pro# @File : pandas -8 练习.py# @Software : PyCharmimport pandas as pdimport numpy as npdf = pd.read_excel('text5.xlsx')print(df)print() | 
程序运行结果如下:文章源自设计学徒自学网-http://www.sx1c.com/38610.html
Unnamed: 0 Unnamed: 0.1 project ... test_time date time
0 0 00:00:00 Python ... 2022-06-20 18:30:20 2022-06-20 18:30:20
1 1 1 Java ... 2022-06-18 19:40:20 2022-06-18 19:40:20
2 2 2 C ... 2022-06-08 13:33:20 2022-06-08 13:33:20
3 3 3 MySQL ... 2021-12-23 11:26:20 2021-12-23 11:26:20
4 4 4 Linux ... 2021-12-20 18:20:20 2021-12-20 18:20:20
5 5 5 Math ... 2022-07-20 16:30:20 2022-07-20 16:30:20
6 6 6 English ... 2022-06-23 15:30:20 2022-06-23 15:30:20
7 7 7 Python ... 2022-07-19 09:30:20 2022-07-19 09:30:20
[8 rows x 7 columns]文章源自设计学徒自学网-http://www.sx1c.com/38610.html
41、将test_time列设置为索引文章源自设计学徒自学网-http://www.sx1c.com/38610.html
| 
 1 
2 
3 
 | 
print(df.set_index('test_time'))print() | 
程序运行结果如下:
Unnamed: 0 Unnamed: 0.1 ... date time
test_time ...
2022-06-20 18:30:20 0 00:00:00 ... 2022-06-20 18:30:20
2022-06-18 19:40:20 1 1 ... 2022-06-18 19:40:20
2022-06-08 13:33:20 2 2 ... 2022-06-08 13:33:20
2021-12-23 11:26:20 3 3 ... 2021-12-23 11:26:20
2021-12-20 18:20:20 4 4 ... 2021-12-20 18:20:20
2022-07-20 16:30:20 5 5 ... 2022-07-20 16:30:20
2022-06-23 15:30:20 6 6 ... 2022-06-23 15:30:20
2022-07-19 09:30:20 7 7 ... 2022-07-19 09:30:20
[8 rows x 6 columns]
42、生成一个和df长度相同的随机数dataframe
| 
 1 
2 
3 
4 
 | 
df1 = pd.DataFrame(pd.Series(np.random.randint(1, 10, 8)))print(df1)print() | 
程序运行结果如下:
0
0 1
1 3
2 2
3 7
4 7
5 3
6 5
7 1
43、将上一题生成的dataframe与df合并
| 
 1 
2 
3 
4 
 | 
df = pd.concat([df, df1], axis=1)print(df)print() | 
程序运行结果如下:
Unnamed: 0 Unnamed: 0.1 project ... date time 0
0 0 00:00:00 Python ... 2022-06-20 18:30:20 1
1 1 1 Java ... 2022-06-18 19:40:20 3
2 2 2 C ... 2022-06-08 13:33:20 2
3 3 3 MySQL ... 2021-12-23 11:26:20 7
4 4 4 Linux ... 2021-12-20 18:20:20 7
5 5 5 Math ... 2022-07-20 16:30:20 3
6 6 6 English ... 2022-06-23 15:30:20 5
7 7 7 Python ... 2022-07-19 09:30:20 1
[8 rows x 8 columns]
44、生成新的一列new为popularity列减去之前生成随机数列
| 
 1 
2 
3 
4 
 | 
df['new'] = df['popularity'] - df[0]print(df)print() | 
程序运行结果如下:
Unnamed: 0 Unnamed: 0.1 project popularity ... date time 0 new
0 0 00:00:00 Python 95 ... 2022-06-20 18:30:20 1 94
1 1 1 Java 92 ... 2022-06-18 19:40:20 3 89
2 2 2 C 145 ... 2022-06-08 13:33:20 2 143
3 3 3 MySQL 141 ... 2021-12-23 11:26:20 7 134
4 4 4 Linux 84 ... 2021-12-20 18:20:20 7 77
5 5 5 Math 148 ... 2022-07-20 16:30:20 3 145
6 6 6 English 146 ... 2022-06-23 15:30:20 5 141
7 7 7 Python 149 ... 2022-07-19 09:30:20 1 148
[8 rows x 9 columns]
45、检查数据中是否含有任何缺失值
| 
 1 
2 
3 
4 
 | 
jch = df.isnull().values.any()print(jch)    # 运行结果为:Falseprint() | 
46、将popularity列类型转换为浮点数
| 
 1 
2 
3 
4 
 | 
fds = df['popularity'].astype(np.float64)print(fds)print() | 
程序运行结果如下:
0 95.0
1 92.0
2 145.0
3 141.0
4 84.0
5 148.0
6 146.0
7 149.0
Name: popularity, dtype: float64
47、计算popularity大于100的次数
| 
 1 
2 
3 
4 
 | 
cs = len(df[df['popularity'] > 100])print(cs)    # 运行结果为:5print() | 
48、查看project列共有几种学历
| 
 1 
2 
3 
4 
 | 
ckj = df['project'].nunique()print(ckj)    # 运行结果为:7print() | 
49、查看每科出现的次数
| 
 1 
2 
3 
4 
 | 
ckc = df.project.value_counts()print(ckc)print() | 
程序运行结果如下:
Python 2
Java 1
C 1
MySQL 1
Linux 1
Math 1
English 1
Name: project, dtype: int64
50、提取popularity与new列的和大于136的最后3行
| 
 1 
2 
3 
4 
 | 
df1 = df[['popularity', 'new']]hh = df1.apply(np.sum, axis=1)res = df.iloc[np.where(hh > 136)[0][-3:], :]print(res) | 
程序运行结果如下:
Unnamed: 0 Unnamed: 0.1 project popularity ... date time 0 new
5 5 5 Math 148 ... 2022-07-20 16:30:20 3 145
6 6 6 English 146 ... 2022-06-23 15:30:20 5 141
7 7 7 Python 149 ... 2022-07-19 09:30:20 1 148
[3 rows x 9 columns]
到此这篇关于Python实现斐波那契数列的多种写法总结的文章就介绍到这了
					
					
							
                
                
评论