Python中使用循環語句打印三角形、菱形


前言:在學習開發語言循環語句的使用過程中,經常會打印各種形狀來驗證對循環語句的熟練掌握程度,接下來就使用python來打印多種形狀練習。

如下示例中:變量i用於控制外層循環(圖形行數),j用於控制空格的個數,k用於控制星號(*)的個數


1. 打印三角形


 1.1 打印直角三角形

#/usr/bin/python
rows = int(raw_input('please input a rows:'))    
i=j=k=1
if rows >= 3:                                     
    for i in range(0,rows+1):
        for k in range(0,i):  
           print '*',      # 注意這里的",",一定不能省略,可以起到不換行的作用
           k = k+1
        print '\n'
    i = i+1
else:
    print ('Please enter a number that greater than or equal to 3,thank you!')

1.2 打印空心等邊三角形

#/usr/bin/python
rows = int(raw_input('please input a rows:'))    
for i in range(0,rows):
    for j in range(0,rows-i-1):
        print " ",
        j += 1
    for k in range(0,2*i+1):
        if k == 0 or k == 2*i:
            print "*",
        else:
            if i+1==rows and k%2==0:
                print "*",
            else:
                print " ",
        k += 1
    print "\n"
i += 1

2. 打印菱形


 2.1 打印實心菱形

#/usr/bin/python
rows = int(raw_input('please input a rows that rather than 2 :'))
for i in range(0,rows):
    for j in range(0,rows-(i+1)):
        print " ",
        j += 1
    for k in range(0,(rows-1)*i+1):
        if k>=2*i+1 :
            print " ",
        else:
            print "*",
        k += 1
    print "\n"
i += 1

for i in range(0,rows-1):
    for j in range(0,i+1):
        print " ",
        j += 1
    for k in range(0,2*((rows-1)-i)-1):
        print "*",
        k += 1
    print "\n"
i += 1

2.2 打印空心菱形

# 打印空心菱形先打印上半部分rows行,在打印下半部分rows-1行

#/usr/bin/python
rows = int(raw_input('please input a rows:'))
for i in range(0,rows):
    for j in range(0,rows-(i+1)):
        print " ",
        j += 1
    for k in range(0,(rows-1)*i+1):
        if k == 0 or k == 2*i:
            print "*",
        else:
            print " ",
        k += 1
    print "\n"
i += 1

for i in range(0,rows-1):
    for j in range(0,i+1):
        print " ",
        j += 1
    for k in range(0,2*((rows-1)-i)-1):
        if k == 0 or k==2*((rows-1)-i)-2:
            print "*",
        else:
            print " ",
        k += 1
    print "\n"
i += 1

# 網上也有些朋友先打印上半部分rows-1行,然后打印下半部分rows行

#/usr/bin/python
rows = int(raw_input('please input a rows:')) 
for i in range(0,rows):
    for j in range(0,rows-i):
        print " ",
        j += 1
    for k in range(0,2*i-1):
        if k == 0 or k == 2*i-2:
            print "*",
        else:
            print " ",
        k += 1
    print "\n"
i += 1

for i in range(0,rows):
    for j in range(0,i):
        print " ",
        j += 1
    for k in range(0,2*(rows-i)-1):
        if k == 0 or k == 2*(rows-i)-2:
            print "*",
        else:
            print " ",
        k += 1
    print "\n"
i += 1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM