Python如何用*打印正三角、倒三角、等邊三角形、菱形及空心菱形
【問題描述】
使用循環(huán)嵌套輸出三角形、菱形
1、分別使用*打印正三角、倒三角、等邊三角形、菱形、空心菱形
(1)正三角
*
**
***
****
*****
1)實(shí)現(xiàn)代碼
m=0 for w in range(1,6): #5行 # *的個數(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對稱圖形,可將菱形分為兩部分,那就是一個正三角和一個倒三級拼接在一起了,我是將前4行一組,后3行一組)
*
***
*****
*******
*****
***
*
1)實(shí)現(xiàn)代碼
row=eval(input('請輸入菱形的行數(shù):')) while row%2==0: #判斷行數(shù)的奇偶性,若為偶數(shù)則重新輸入 print('請重新輸入!') row=eval(input('請輸入菱形的行數(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)兩個并列的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個,range(1,6),第2行-->3個,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)兩個并列的for循環(huán)執(zhí)行結(jié)束后,在換行執(zhí)行
2)輸出結(jié)果
(5)空心菱形
{以7行為例,因?yàn)榱庑问禽S對稱圖形,可將菱形分為兩部分,前4行一部分(由一個倒三角+一個挖空的等腰三角形),后三行一部分(由一個正三角+一個倒立等腰三角形),挖空的三角形可以使用if-else語句判斷,if(如果)是在第一位或最后一位則打印*,else(否則)打印空格}
*
* *
* *
* *
* *
* *
*
這張圖我把空格都打印出來了,這樣更清楚。
1)實(shí)現(xiàn)代碼
row=eval(input('請輸入菱形的行數(shù):')) while row%2==0: #判斷行數(shù)的奇偶性,若為偶數(shù)則重新輸入 print('請重新輸入!') row=eval(input('請輸入菱形的行數(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)兩個并列的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個,range(1,6),第2行-->3個,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)兩個并列的for循環(huán)執(zhí)行結(jié)束后,在換行執(zhí)行
2)輸出結(jié)果
總結(jié)
到此這篇關(guān)于Python如何用*打印正三角、倒三角、等邊三角形、菱形及空心菱形的文章就介紹到這了,更多相關(guān)Python用*打印各種形狀內(nèi)容請搜索腳本之家以前的文章或繼續(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編寫一個基于PyQt5的用于將圖像文件轉(zhuǎn)換為ICO格式GUI應(yīng)用程序,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-01-01Python+Jmeter實(shí)現(xiàn)自動化性能壓測的流程步驟
性能測試是一個全棧工程師/架構(gòu)師必會的技能之一,只有學(xué)會性能測試,才能根據(jù)得到的測試報告進(jìn)行分析,找到系統(tǒng)性能的瓶頸所在,而這也是優(yōu)化架構(gòu)設(shè)計中重要的依據(jù),本文給大家介紹了Python+Jmeter實(shí)現(xiàn)自動化性能壓測的流程步驟,需要的朋友可以參考下2024-05-05Python函數(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對Python中內(nèi)置異常層次結(jié)構(gòu)詳解
今天小編就為大家分享一篇對Python中內(nèi)置異常層次結(jié)構(gòu)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10