Python實(shí)現(xiàn)斐波那契數(shù)列的多種寫法總結(jié)
斐波那契數(shù)列——經(jīng)典例子,永不過時!?。?/p>
1.for循環(huán)
def fibonacci1(n):
a, b = 0, 1
for i in range(n):
a, b = b, a+b
print(a)
fibonacci1(3)
或
def fib1(w):
a, b = 1, 1
for i in range(w-1):
a, b = b, a+b
return a
???????
print(fib1(3))
[^1]剛好得出這個位置的數(shù)
2.while循環(huán)
def fibnaqi2(m):
a, b = 0, 1
i = 0
while i < m:
print(b)
a, b = b, a+b
i += 1
fibnaqi2(4)
[^1]剛好得出這個位置的數(shù)
3.使用遞歸
def fib2(q):
if q == 1 or q == 2:
return 1
return fib2(q-1)+fib2(q-2)
???????
print(fib2(9))
4.遞歸+for循環(huán)
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循環(huán)
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.遞歸+定義函數(shù)+for循環(huán)
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.指定列表
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 用戶提供,為實(shí)數(shù),a ≠ 0)
# 導(dǎo)入 cmath(復(fù)雜數(shù)學(xué)運(yùn)算) 模塊
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('結(jié)果為 {0} 和 {1}'.format(sol1, sol2))pandas 每日一練
# -*- coding = utf-8 -*-
# @Time : 2022/7/26 21:48
# @Author : lxw_pro
# @File : pandas -8 練習(xí).py
# @Software : PyCharm
import pandas as pd
import numpy as np
df = pd.read_excel('text5.xlsx')
print(df)
print()
程序運(yùn)行結(jié)果如下:
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列設(shè)置為索引
print(df.set_index('test_time'))
???????print()
程序運(yùn)行結(jié)果如下:
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長度相同的隨機(jī)數(shù)dataframe
df1 = pd.DataFrame(pd.Series(np.random.randint(1, 10, 8))) print(df1) ???????print()
程序運(yùn)行結(jié)果如下:
0
0 1
1 3
2 2
3 7
4 7
5 3
6 5
7 1
43、將上一題生成的dataframe與df合并
df = pd.concat([df, df1], axis=1) print(df) ???????print()
程序運(yùn)行結(jié)果如下:
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列減去之前生成隨機(jī)數(shù)列
df['new'] = df['popularity'] - df[0] print(df) ???????print()
程序運(yùn)行結(jié)果如下:
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、檢查數(shù)據(jù)中是否含有任何缺失值
jch = df.isnull().values.any() print(jch) # 運(yùn)行結(jié)果為:False ???????print()
46、將popularity列類型轉(zhuǎn)換為浮點(diǎn)數(shù)
fds = df['popularity'].astype(np.float64) print(fds) ???????print()
程序運(yùn)行結(jié)果如下:
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的次數(shù)
cs = len(df[df['popularity'] > 100]) print(cs) # 運(yùn)行結(jié)果為:5 ???????print()
48、查看project列共有幾種學(xué)歷
ckj = df['project'].nunique() print(ckj) # 運(yùn)行結(jié)果為:7 ???????print()
49、查看每科出現(xiàn)的次數(shù)
ckc = df.project.value_counts() print(ckc) print()
程序運(yùn)行結(jié)果如下:
Python 2
Java 1
C 1
MySQL 1
Linux 1
Math 1
English 1
Name: project, dtype: int64
50、提取popularity與new列的和大于136的最后3行
df1 = df[['popularity', 'new']] hh = df1.apply(np.sum, axis=1) res = df.iloc[np.where(hh > 136)[0][-3:], :] print(res)
程序運(yùn)行結(jié)果如下:
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]
到此這篇關(guān)于Python實(shí)現(xiàn)斐波那契數(shù)列的多種寫法總結(jié)的文章就介紹到這了,更多相關(guān)Python斐波那契數(shù)列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中range、np.arange和np.linspace的區(qū)別
本文主要介紹了Python中range、np.arange和np.linspace的區(qū)別,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
OpenCV4.1.0+VS2017環(huán)境配置的方法步驟
這篇文章主要介紹了OpenCV4.1.0+VS2017環(huán)境配置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
pyautogui自動化控制鼠標(biāo)和鍵盤操作的步驟
這篇文章主要介紹了pyautogui自動化控制鼠標(biāo)和鍵盤操作的步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python 文本滾動播放器的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python 文本滾動播放器的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04

