python辦公例項 Python 階乘例項

2021-10-10 02:19:37 字數 848 閱讀 7299

學渣觀點:

1.遞迴實現不可取

def factorial(n):

if n > 1:

return n*factorial(n-1)

return 1

while true:

try:

n = input("請輸入乙個數字(輸入 q 退出):")

if n == "q":

break

n = int(n)

if n < 1:

raise valueerror

x = factorial(n)

print(x)

except valueerror:

print("不是乙個正數")

超過 1000 的階乘計算後會報錯:

recursionerror: maximum recursion depth exceeded in comparison

解決辦法:可以修改遞迴深度的值,讓它變大大一點。

**看起來很好,但是有個致命問題,你試試看 1000 的階乘,記得乙個經典例題 ibm 出 1000 的階乘,都說很容易,但是考慮過這資料的儲存嗎?遞迴做這種大數字計算感覺不怎麼行了。而且有更加簡單且有效的方法,python 的特點應該是自帶的數學公式。

2.示例**,和下面用階乘函式的**,實際操作 70000 的階乘計算速度才受到一些影響,肉眼感覺相差不大。

3.入門python感覺,python最大的優勢還是在於自帶的數學計算式,**的簡潔,大數的計算,因此學python應盡可能用數學公式來碼**。

teachdark

teachdark

101***[email protected]年前 (2019-05-10)

Python學習筆記 1 1 2 認識Python

一.課程目標 二.詳情解讀 1.初識pythonpython語言是一種高階程式語言,它於1991年由吉多.範羅蘇姆 guido van rossum 發明。目前主要應用於web開發 gui開發 網路爬蟲 資料科學 人工智慧等領域。python官方 python語言也是一種多正規化程式語言,即物件導向...

python實現演算法 kmp演算法python實現

kmp演算法python實現 kmp演算法 kmp演算法用於字串的模式匹配,也就是找到模式字串在目標字串的第一次出現的位置 比如abababc 那麼bab在其位置1處,bc在其位置5處 我們首先想到的最簡單的辦法就是蠻力的乙個字元乙個字元的匹配,但那樣的時間複雜度會是o m n kmp演算法保證了時...

python呼叫qt Qt 下呼叫 Python

qt是乙個跨平台的c 圖形使用者介面應用程式框架,而python是一門非常強大的程式語言,本文主要介紹了如何在osx系統下qt呼叫python指令碼。先上 include 包含呼叫python相應的標頭檔案 include int main int argc,char ar 初始化python直譯器...