Python 思維練習-8: 打印一個菱形

打印一個菱形

方法一:

while True:
    max = int(input('請輸入長度(奇數):'))
    first = -max//2
    last = max//2+1
    for line in range(first,last):
        if line < 0:
            spaceNumber = - line
        else:
            spaceNumber = line
        starNumber = max - spaceNumber * 2
        print('{0}{1}{0}'.format(spaceNumber * ' ', starNumber * '*'))

方法二:

while True:
    halfHeigth = int(input('三角形高度:'))
    starNumber = -1
    spaceNumber = 0
    for line in range(1,halfHeigth*2):
        if line < halfHeigth + 1:
            starNumber = starNumber + 2
            spaceNumber = int((halfHeigth * 2 - starNumber) / 2)
            print(spaceNumber*' ' + starNumber*'*' + spaceNumber*' ')
        else:
            spaceNumber = spaceNumber + 1
            starNumber = (halfHeigth*2 - 1) - spaceNumber * 2
            print(spaceNumber*' ' + starNumber*'*' + spaceNumber*' ')

使用 print( ) ,輸出內容有多行時,每行開頭會多一個空格
把連接符 , 換成 + 即可

方法三:

maxLength = int(input('對角線的長度:',))
space = " "
for i in range(1,maxLength+1):
    if i < int((maxLength+1) / 2):
        starNumber = int(2 * i - 1)
        posion = int((maxLength - starNumber) / 2)
        print(' ' * (posion-1) , '*' * starNumber ,' ' * (posion-1))
    elif i == int((maxLength+1) / 2):
        print('*' * maxLength)
    elif i > int((maxLength+1) / 2):
        newStarNumber = int((maxLength - i) * 2 + 1)
        posion = int((maxLength - newStarNumber) / 2)
        print(space * (posion-1) , '*' * newStarNumber , space * (posion-1))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章