首先畫一個(gè)菱形,看一下規(guī)律在哪里,先看下圖:
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到洋縣網(wǎng)站設(shè)計(jì)與洋縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋洋縣地區(qū)。
見上圖菱形,定義尺寸為size=3,
定義X坐標(biāo)為i:
A區(qū)域X坐標(biāo)為i,Y坐標(biāo)為size-i;
B區(qū)域X坐標(biāo)為i,Y坐標(biāo)為size+i;
C區(qū)域X坐標(biāo)為i,Y坐標(biāo)為i-size;
D區(qū)域X坐標(biāo)為i,Y坐標(biāo)為size*3-i
滿足1,2,3,4的情況下就輸出*,其它則輸入空格,這樣我們就得到一個(gè)菱形,代碼如下和輸出效果如下:
size?=?3?#?定義菱形尺寸
count?=?size*2+1?#?定義X,Y坐標(biāo)循環(huán)范圍
#?i為橫坐標(biāo)
for?i?in?range(count):
#?j為縱坐標(biāo)
for?j?in?range(count):?
#?當(dāng)X,Y滿足條件1和2時(shí)
if?i?=?size?and?(j?==?size-i?or?j?==?size+i):
print('*',?end='')
#?當(dāng)X,Y滿足條件3和4時(shí)
elif?i??size?and?(j?==?i-size?or?j?==?size*3-i):
print('*',?end='')
#?其它情況輸入空格
else:
print('?',?end='')
#?每打印一行就換行
print()
按照你的要求編寫的Python菱形程序如下
#!/usr/bin/python?
def?diamond(n):
for?i?in?range(1,n*2+2):?
for?j?in?range(1,abs(n-i)+1):
print?('?',end='')
for?j?in?range(1,2*n-2*abs(n-i)):
print?('*',?end='')
print()
diamond(3)
#腳本里面直接這樣寫就好了import randomdef R(): print (random.randint(1,1000))for i in range(1,10): R()
Python把生成的菱形存入二維表中方法:
直接尋找規(guī)律,發(fā)現(xiàn)前一半的第i行分別輸出了(n+1-2*i)/2個(gè)空格和2*i-1個(gè)’*’;而后一半就是前一半輸出的倒序。
#代碼如下
n = int(input("請(qǐng)輸入菱形邊長(zhǎng)整數(shù)n:"))
b = n
c = n
for i in range(1, n + 1): # 先打印正三角,由空格和*根據(jù)規(guī)律組成
print(" " * (b - 1), "*" * (2 * i - 1))
b -= 1
if i == n: # 臨界點(diǎn),當(dāng)打印到此,開始打印倒三角
for y in range(1, n):
print(" " * y, "*" * (2*c-3))
c -= 1
---------代碼運(yùn)行結(jié)果,可自己測(cè)試
請(qǐng)輸入菱形邊長(zhǎng)整數(shù)n:4
*
***
*****
*******
*****
***
*
按照你的要求編寫的輸出數(shù)字菱形的Python程序如下(abs是求絕對(duì)值的函數(shù))
N=9
for i in range(1,N*2):
for j in range(1,abs(N-i)+1):
print(' ',end='')
for j in range(N-abs(N-i),1,-1):
print(j,end='')
for j in range(1,N-abs(N-i)+1):
print(j,end='')
print()
源代碼(注意源代碼的縮進(jìn))