python 使用遞歸實現(xiàn)打印一個數(shù)字的每一位示例
我就廢話不多說了,直接上代碼吧!
def func(n):
# 從高分為開始打印
lengh = len(str(n)) # 確定數(shù)字的長度
x = 10**(lengh-1) # 確定數(shù)字的分位
if n < 10:
print(n)
else:
print(int(n/x))
func(n % x) # 對n的x分位取余得到
def func1(n):
# 從低分位開始打印
if n < 10:
print(n)
else:
print(n % 10)
func(int(n / 10))
上述兇高分位打印的時候,會出現(xiàn)0無法打出的現(xiàn)象,現(xiàn)在加一個判斷做一個優(yōu)化
def f(n):
num_len = len(str(n))
if n < 10:
print(n)
# return n
else:
print(int(n / (10**(num_len-1))), end=' ')
mod = n % (10**(num_len-1))
dif_value = num_len - len(str(mod))
if dif_value > 1:
for i in range(1, dif_value):
print(0, end=' ')
f(mod)
f(200400900000)
當然也有同學有跟簡單的方法來寫,但是需要一定的理解力,就是把低分為的實現(xiàn)方法打印和調(diào)用換一個位置變可實現(xiàn)
def func1(n):
# 從低分位開始打印
if n < 10:
print(n)
else:
func(int(n / 10))
print(n % 10)
func(int(n / 10))這一步呢其實是先一直在調(diào)用,并沒有實現(xiàn)打印,等調(diào)用到最后一位的時候,就開始回溯,沒回溯一步,便打印一位數(shù)數(shù)來
補充拓展:使用python遞歸打印楊輝三角
啥也不說了,上代碼吧
# 楊輝三角
# 1
# 1 1
# 1 2 1
#1 3 3 1
# ........
#傳入上一行,生成下一行
def next_line(lst):
newline = [1]
for x in range(len(lst) - 1):
newline.append(lst[x] + lst[x + 1])
newline.append(1)
return newline
#定義二位數(shù)組,存放;如果為了節(jié)約空間,也可以不用放二維數(shù)組
def yanglst(n):
yanghui = []
L = [1]
for x in range(n):
yanghui.append(L)
L = next_line(L)
return yanghui
for I in yanglst(20):
print(I)
以上這篇python 使用遞歸實現(xiàn)打印一個數(shù)字的每一位示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Tensorflow分類器項目自定義數(shù)據(jù)讀入的實現(xiàn)
這篇文章主要介紹了Tensorflow分類器項目自定義數(shù)據(jù)讀入的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
使用python腳本實現(xiàn)Redis未授權(quán)訪問檢測
Redis未授權(quán)訪問漏洞是一種安全漏洞,可能導致未經(jīng)授權(quán)的用戶或攻擊者訪問Redis數(shù)據(jù)庫,甚至修改或刪除其中的數(shù)據(jù),這種漏洞通常發(fā)生在管理員未正確配置Redis實例的訪問控制和認證機制時,本文介紹了python腳本實現(xiàn)Redis未授權(quán)訪問漏洞利用,需要的朋友可以參考下2024-10-10
Python面向?qū)ο笾惡蛯ο髮傩缘脑鰟h改查操作示例
這篇文章主要介紹了Python面向?qū)ο笾惡蛯ο髮傩缘脑鰟h改查操作,結(jié)合實例形式分析了Python面向?qū)ο笙嚓P(guān)的類與對象屬性常見操作技巧,需要的朋友可以參考下2018-12-12
python實現(xiàn)生成字符串大小寫字母和數(shù)字的各種組合
這篇文章主要給大家介紹了關(guān)于python生成各種字符串的方法實例,給大家提供些思路,拋磚引玉,希望大家能夠喜歡2019-01-01
基于python實現(xiàn)FTP文件上傳與下載操作(ftp&sftp協(xié)議)
這篇文章主要介紹了基于python實現(xiàn)FTP文件上傳與下載操作(ftp&sftp協(xié)議),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
MacBook m1芯片采用miniforge安裝python3.9的方法示例
這篇文章主要介紹了MacBook m1芯片采用miniforge安裝python3.9的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04

