Python如何用*打印正三角、倒三角、等邊三角形、菱形及空心菱形
【問(wèn)題描述】
使用循環(huán)嵌套輸出三角形、菱形
1、分別使用*打印正三角、倒三角、等邊三角形、菱形、空心菱形
(1)正三角
*
**
***
****
*****
1)實(shí)現(xiàn)代碼
m=0
for w in range(1,6): #5行
# *的個(gè)數(shù)與行相同,range(1,2),第二行,range(1,3)
for m in range(1,w+1):
print('*',end='')
print()
2)輸出結(jié)果

(2)倒三角
*****
****
***
**
*
1)實(shí)現(xiàn)代碼
for i in range(1,6):
# range(1,6) range(1,5) range(1,4),找行與列之間的關(guān)系7-1=6;7-2=5,7-3=4....
for e in range(1,7-i):
print('*',end='')
print()2)輸出結(jié)果

(3)等邊三角形
*
***
*****
*******
*********
1)實(shí)現(xiàn)代碼
for a in range(1,6): # 外循環(huán)5行
for b in range(1,6-a): # 倒三角形
print(' ',end='') # 需要打印空格,不換行
for c in range(1,a*2): # 1,3,5,7..等腰三角形,range(1,2),range(1,4),range(1,6)....
print('*',end='')
print()2)輸出結(jié)果

(4)菱形
(以7行為例,因?yàn)榱庑问禽S對(duì)稱圖形,可將菱形分為兩部分,那就是一個(gè)正三角和一個(gè)倒三級(jí)拼接在一起了,我是將前4行一組,后3行一組)
*
***
*****
*******
*****
***
*
1)實(shí)現(xiàn)代碼
row=eval(input('請(qǐng)輸入菱形的行數(shù):'))
while row%2==0: #判斷行數(shù)的奇偶性,若為偶數(shù)則重新輸入
print('請(qǐng)重新輸入!')
row=eval(input('請(qǐng)輸入菱形的行數(shù):'))
# 輸出菱形
top_row=(row+1)//2 #上半部分的行數(shù)
for t in range(1,top_row+1):
for t2 in range(1,top_row+1-t):
print(' ',end='')
for t3 in range(1,t*2):
print('*',end='')
print() #當(dāng)兩個(gè)并列的for循環(huán)執(zhí)行結(jié)束后,在換行執(zhí)行
# 7行為例子
low_row=row//2 # 3
for l in range(1,low_row+1):
for l2 in range(1,l+1): #直角三角形
print(' ',end='')
for l3 in range(1,low_row*2-2*l+2): # 第1行-->5個(gè),range(1,6),第2行-->3個(gè),range(1,4),...
# for l3 in range(1,2*(low_row+1-l)):
# 第一次(1,low_row=3*2)=(1,6),(1,6+2)
print('*',end='')
print() #當(dāng)兩個(gè)并列的for循環(huán)執(zhí)行結(jié)束后,在換行執(zhí)行2)輸出結(jié)果

(5)空心菱形
{以7行為例,因?yàn)榱庑问禽S對(duì)稱圖形,可將菱形分為兩部分,前4行一部分(由一個(gè)倒三角+一個(gè)挖空的等腰三角形),后三行一部分(由一個(gè)正三角+一個(gè)倒立等腰三角形),挖空的三角形可以使用if-else語(yǔ)句判斷,if(如果)是在第一位或最后一位則打印*,else(否則)打印空格}
*
* *
* *
* *
* *
* *
*
這張圖我把空格都打印出來(lái)了,這樣更清楚。

1)實(shí)現(xiàn)代碼
row=eval(input('請(qǐng)輸入菱形的行數(shù):'))
while row%2==0: #判斷行數(shù)的奇偶性,若為偶數(shù)則重新輸入
print('請(qǐng)重新輸入!')
row=eval(input('請(qǐng)輸入菱形的行數(shù):'))
# 輸出菱形
top_row=(row+1)//2 #上半部分的行數(shù)
for t in range(1,top_row+1):
for t2 in range(1,top_row+1-t):
print(' ',end='')
for t3 in range(1,t*2):
if t3==1 or t3==t*2-1:
print('*',end='')
else:
print(' ',end='')
print() #當(dāng)兩個(gè)并列的for循環(huán)執(zhí)行結(jié)束后,在換行執(zhí)行
# 7行為例子
low_row=row//2 # 3
for l in range(1,low_row+1):
for l2 in range(1,l+1): #直角三角形
print(' ',end='')
for l3 in range(1,low_row*2-2*l+2): # 第1行-->5個(gè),range(1,6),第2行-->3個(gè),range(1,4),...
# for l3 in range(1,2*(low_row+1-l)):
# 第一次(1,low_row=3*2)=(1,6),(1,6+2)
if l3==1 or l3==(low_row*2-2*l+2)-1:
print('*',end='')
else:
print(' ',end='')
print() #當(dāng)兩個(gè)并列的for循環(huán)執(zhí)行結(jié)束后,在換行執(zhí)行
2)輸出結(jié)果

總結(jié)
到此這篇關(guān)于Python如何用*打印正三角、倒三角、等邊三角形、菱形及空心菱形的文章就介紹到這了,更多相關(guān)Python用*打印各種形狀內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyTorch模型創(chuàng)建與nn.Module構(gòu)建
這篇文章主要為大家介紹了PyTorch模型創(chuàng)建與nn.Module構(gòu)建示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
使用Python實(shí)現(xiàn)圖片轉(zhuǎn)ICO格式
這篇文章主要為大家詳細(xì)介紹了如何使用Python編寫一個(gè)基于PyQt5的用于將圖像文件轉(zhuǎn)換為ICO格式GUI應(yīng)用程序,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-01-01
Python+Jmeter實(shí)現(xiàn)自動(dòng)化性能壓測(cè)的流程步驟
性能測(cè)試是一個(gè)全棧工程師/架構(gòu)師必會(huì)的技能之一,只有學(xué)會(huì)性能測(cè)試,才能根據(jù)得到的測(cè)試報(bào)告進(jìn)行分析,找到系統(tǒng)性能的瓶頸所在,而這也是優(yōu)化架構(gòu)設(shè)計(jì)中重要的依據(jù),本文給大家介紹了Python+Jmeter實(shí)現(xiàn)自動(dòng)化性能壓測(cè)的流程步驟,需要的朋友可以參考下2024-05-05
Python函數(shù)的周期性執(zhí)行實(shí)現(xiàn)方法
這篇文章主要介紹了Python函數(shù)的周期性執(zhí)行實(shí)現(xiàn)方法,涉及Python使用sched模塊實(shí)現(xiàn)函數(shù)周期性調(diào)度觸發(fā)的相關(guān)技巧,需要的朋友可以參考下2016-08-08
對(duì)Python中內(nèi)置異常層次結(jié)構(gòu)詳解
今天小編就為大家分享一篇對(duì)Python中內(nèi)置異常層次結(jié)構(gòu)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10

