佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫(kù) > python3 將階乘改成函數(shù)形式進(jìn)行調(diào)用的操作

python3 將階乘改成函數(shù)形式進(jìn)行調(diào)用的操作

熱門標(biāo)簽:客戶服務(wù) 硅谷的囚徒呼叫中心 呼叫中心市場(chǎng)需求 Win7旗艦版 語音系統(tǒng) 電話運(yùn)營(yíng)中心 百度AI接口 企業(yè)做大做強(qiáng)

定義一個(gè)函數(shù),求一個(gè)數(shù)的階乘,比如求5!

#方法1,遞歸

def jc(num):
  if num==1:
    return 1
  else:
    return num*jc(num-1)
print(jc(5)) #返回120

# 方法2 ,for遍歷

def func(num):
  '求一個(gè)數(shù)字的階乘,例如5!'
  sum=1
  for i in range(1,num+1):
    sum=sum*i #可以簡(jiǎn)化sum*=i
  return sum
func(5)
print(func(5))#返回120

# 方法3,lambda表達(dá)式寫

#lambda不能調(diào)用數(shù)組,如列表。

# 這里需要借助一個(gè)函數(shù)去做(這個(gè)函數(shù)調(diào)用了lambda表達(dá)式作為參數(shù),即需要使用高階函數(shù)reduce#使用高階函數(shù),需要調(diào)用一個(gè)模塊# 將階乘改成函數(shù)形式進(jìn)行調(diào)用functools

from functools import reduce
print(reduce(lambda x,y:x*y,range(1,6)))

補(bǔ)充:Python極少代碼實(shí)現(xiàn)階乘函數(shù)

from functools import reduce
def my_factorial(x):
  if x  0:
    raise ValueError('參數(shù)不能為負(fù)數(shù)')
  return reduce(lambda x, y: x*y, range(1, x+1)) if x != 0 else 1

運(yùn)行結(jié)果:

>>> for i in range(10):
...   print(my_factorial(i), end=' ')
>>> 1 1 2 6 24 120 720 5040 40320 362880

用好lambda、reduce、filter、map等可以很方便地定義函數(shù)。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Python 怎么定義計(jì)算N的階乘的函數(shù)
  • python遞歸函數(shù)求n的階乘,優(yōu)缺點(diǎn)及遞歸次數(shù)設(shè)置方式
  • Python3 實(shí)現(xiàn)遞歸求階乘
  • python求前n個(gè)階乘的和實(shí)例
  • Python階乘求和的代碼詳解

標(biāo)簽:喀什 崇左 山西 海南 濟(jì)南 長(zhǎng)沙 安康 山西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python3 將階乘改成函數(shù)形式進(jìn)行調(diào)用的操作》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    瑞丽市| 商都县| 兴山县| 齐齐哈尔市| 绍兴县| 普兰县| 鄂托克旗| 芦山县| 平舆县| 利津县| 峡江县| 图木舒克市| 牟定县| 永川市| 墨玉县| 隆尧县| 吴桥县| 景泰县| 临沂市| 和林格尔县| 银川市| 常德市| 澄迈县| 威信县| 南投市| 郯城县| 阜新市| 临猗县| 都匀市| 石屏县| 五莲县| 裕民县| 长子县| 正宁县| 甘洛县| 白玉县| 邮箱| 丰宁| 金昌市| 淮南市| 遵义县|