python3 題解(12)字母金字塔

2021-09-27 02:13:09 字數 1219 閱讀 4467

【問題】在控制台上列印輸出乙個字母組成的金字塔。

比如7層的塔如下:

這問題應該有很多可行的解法。

下面的解法強調的是:小函式風格。

把每個函式做得足夠小,功能足夠單一。這樣出現的錯誤好發現,將來好維護。

更重要的是,小函式的組合會爆發出極強的靈活性。

#已知當前行比如aba,求下一行abcba

defne

(x):

t =[chr

(ord

(i)+1)

for i in x]

return

"a"+

"".join(t)

+"a"

# 返回n層塔的關鍵資訊(不含空格)

defta

(n):

if n==1:

return

["a"

] la = ta(n-1)

-1])

)return la

#對所有行,按底行寬度居中處理

defcen

(x):

w =len(x[-1

])return

[ i.center(w)

for i in x]

if __name__ ==

'__main__'

:for i in ta(7)

:print

(i)for i in cen(ta(7)

):print

(i)

核心的設計是把字母塔的內容與它居中顯示這兩件事完全分開處理。

呼叫 ta 函式只會得到字母序列,格式不在乎。

如果直接調它,結果:

cen 函式則專門負責居中顯示的事情。它可以用在很多地方,不是特別針對本題目而設計。

ne 函式則根據當前的最後一行內容生成它的下一行應該的內容。

有了這些函式的分解。可以試一下,對【問題10】【問題11】只要改一下 ne 函式就可以做出來了。是不是比較靈活。

軟體設計的最大殺手是需求的變化,我們要時刻準備好應對需求的變化。

小函式的組合就是一種很不錯的應對手段。

python3字典詳解 python3中字典詳解

字典 dict 1.建立字典的幾種方式 class dict kwarg class dict iterable,kwarg 使用上面的方法構建字典 方法1構建字典 a dict one 1,two 2,three 3 a輸出結果 方法2構建字典 a dict a輸出結果 方法3構建字典 d dic...

python3字典遍歷 python3字典遍歷

python版本 python3.7 info infog.get name 得到字典info中name的值 info.keys 得到字典info中所有的鍵,結果是乙個物件 dict keys name age 需要注意在python2中該操作得到的是乙個列表 遍歷key for temp in i...

python3字串相等 python3 字串

1 拼接 1 多個字串進行連線 連線符,必須左右資料型別一致 例 print hello world 結果 helloworld 例 print 5 world 結果 typeerror unsupported operand type s for int and str 2 多個相同字串連線 字串...