脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python实现斐波那契数列的多种写法总结

Python实现斐波那契数列的多种写法总结

2022-07-28 15:16lxw-pro Python

这篇文章主要给大家介绍了利用Python实现斐波那契数列的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

斐波那契数列——经典例子,永不过时!!!

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)

?
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 a
​​​​​​​
print(fib1(3))

[^1]刚好得出这个位置的数

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 += 1
 
fibnaqi2(4)

[^1]刚好得出这个位置的数

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 fibs
 
print(fib3(12))

趣方程求解

题目描述

二次方程式 ax**2 + bx + c = 0 (a、b、c 用户提供,为实数,a ≠ 0)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 导入 cmath(复杂数学运算) 模块
import cmath
 
a = 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 : PyCharm
 
import pandas as pd
import numpy as np
 
df = pd.read_excel('text5.xlsx')
print(df)
 
print()

程序运行结果如下:

   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]

41、将test_time列设置为索引

?
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)    # 运行结果为:False
 
​​​​​​​print()

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)    # 运行结果为:5
 
​​​​​​​print()

48、查看project列共有几种学历

?
1
2
3
4
ckj = df['project'].nunique()
print(ckj)    # 运行结果为:7
 
​​​​​​​print()

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实现斐波那契数列的多种写法总结的文章就介绍到这了,更多相关Python斐波那契数列内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/m0_66318554/article/details/125726666

延伸 · 阅读

精彩推荐
  • Python浅谈Python之Django(二)

    浅谈Python之Django(二)

    这篇文章主要介绍了Python3中的Django,小编觉得这篇文章写的还不错,需要的朋友们下面随着小编来一起学习学习吧,希望能够给你带来帮助...

    z-victor10562022-02-14
  • Pythonpython通过Seq2Seq实现闲聊机器人

    python通过Seq2Seq实现闲聊机器人

    这篇文章主要介绍了python通过Seq2Seq实现闲聊机器人,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好的帮助,需要的朋友可以参考下...

    IT之一小佬11622021-10-16
  • Python在windows下Python打印彩色字体的方法

    在windows下Python打印彩色字体的方法

    这篇文章主要介绍了Python在windows下打印彩色字体的方法;具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧...

    大囚长5482021-02-21
  • PythonQt5.14 与 OpenCV4.5 教程之图片增强效果

    Qt5.14 与 OpenCV4.5 教程之图片增强效果

    这篇文章主要介绍了Qt5.14 与 OpenCV4.5 教程之图片增强效果的实现,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借...

    fjqlldg4632022-03-09
  • Python使用Python自动化Microsoft Excel和Word的操作方法

    使用Python自动化Microsoft Excel和Word的操作方法

    这篇文章主要介绍了使用Python自动化Microsoft Excel和Word,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    deephub7692021-10-15
  • Pythonpython批量修改文件编码格式的方法

    python批量修改文件编码格式的方法

    这篇文章主要为大家详细介绍了python批量修改文件编码格式的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    vagerant14282021-02-27
  • PythonPython爬虫框架scrapy实现的文件下载功能示例

    Python爬虫框架scrapy实现的文件下载功能示例

    这篇文章主要介绍了Python爬虫框架scrapy实现的文件下载功能,结合实例形式分析了scrapy框架进行文件下载的具体操作步骤与相关实现技巧,需要的朋友可以参...

    Charles.L11972021-03-26
  • PythonTensorFlow的环境配置与安装方法

    TensorFlow的环境配置与安装方法

    这篇文章主要介绍了TensorFlow的环境配置与安装方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下...

    Blessy_Zhu12772021-09-06