python 實戰31 大大的叉

2021-09-30 18:46:31 字數 2183 閱讀 5271

大大的叉

題目內容:

列印出n階的「叉」,這個叉圖案由字元『+』和『x』構成,n越大,這個圖案也就越大

輸入格式:

乙個正整數n,1<=n<=20

輸出格式:

乙個n階叉圖案

輸入樣例:

輸出樣例:x

輸入樣例:

輸出樣例

x+++x

+x+x+

++x++

+x+x+

x+++x

輸入樣例:

輸出樣例:

x+++++++++++x

+x+++++++++x+

++x+++++++x++

+++x+++++x+++

++++x+++x++++

+++++x+x+++++

++++++x++++++

+++++x+x+++++

++++x+++x++++

+++x+++++x+++

++x+++++++x++

+x+++++++++x+

x+++++++++++x

my answer

思路一:先從例子裡找規律。。

x+++x        # 0個+, 1個x, 3個+,1個x,0個+

+x+x+ # 1個+, 1個x, 1個+,1個x,0個+

++x++ # 2個+, 1個x,2個+

+x+x+ #

x+++x #

最中間的那一行,給一條命令打出來,第

一、二行跟

四、五行對稱,我只要打出上半部分,下半部分倒著過來打就好了

n =

int(

input()

)for i in

range

(n -1)

:print

('+'

* i +

'x'+

"+"*(2

*(n - i)-3

)+'x'+

'+'* i)

print

('x'

.center(

2* n -1,

'+')

)for j in

range

(n-2,-

1,-1

):print

('+'

* j +

'x'+

"+"*(2

*(n - j)-3

)+'x'+

'+'* j)

思路二:老師的解法:為方便理解,直接取值為3

n =

int(

input()

)-1# n=2

lst =

['x']*

(2* n +1)

# lst = ['x','x','x','x','x']

for i in

range

(n):

# 迴圈2次,打出前兩行

s ='+'* i +

'x'+

'+'*

(n - i -1)

# 打出每一行的前半部分

s = s +

'+'+ s[::

-1]# 把 s 倒過來合併字串

lst[i]

= lst[-1

- i]

= s # 迴圈替換lst[i]的值

lst[n]

="+"

* n +

'x'+

'+'* n # 把中間一行,即第2行進行修改

for l in lst:

print

(l)# 遍歷lst裡的元素,輸出

我的方法非常老實,就是乙個個把需要的字串列印出來,老師的方法用了列表,利用了圖案的對稱,列表的方法,就 lst[i] = lst[-1 - i] = s, 這個就看出我跟老師的差距了 ╮(╯_╰)╭

廖大python實戰專案第三天

為了看懂這一天的原始碼,翻了之前好多的文章才算是勉強理解了一點。廖大在這本文中並沒有很詳細的介紹,那是因為之前就已經告訴過我們了。使用元類這一篇中在介紹元類的同時也介紹了一點orm。因為是後來補上的,從歷史紀錄上看我找了好多東西,而且都很有用,乾脆根據範圍列乙個參考文章表,也方便自己回顧的時候用。有...

產品的十大實戰流程

整個產品體系 圖1,url 包含產品哲學 產品設計 產品實施 產品營銷的全線10大實戰流程及產品人心智模式的5項修煉,配以it全景案例 圖2,及全行業大案要案舉一反三,目標是解決中國產品人三大硬傷 大局的系統能力,觸類旁通的關聯能力及取長為用的整合能力。一產品哲學 圖3,url 闡述了it行業做產品...

廖大python實戰專案第五天

ps 決定還是堅持寫部落格記錄一下比較好。今天的實戰內容是編寫web框架,如果之前的知識不熟悉的話確實看不大懂。在這裡奉上自己的理解以及幫助理解的相關資料和文件。首先我們要知道web框架是什麼東西,它到底要怎麼實現。這一點廖大在web開發的wsgi介面 使用web框架這兩篇文章裡已經說過了。摘要一些...