用Python画棱形

定义一个函数画棱形

def diamond(height):
    """Return a string resembling a diamond of specified height (measured in lines).
    height must be an even integer.
    """
    L=[]
    line=''
    s='/'
    bs='\\'
    for i in range(1,int(height/2+1)):
        a=line.rjust(i,s).ljust(i*2,bs).center(height)
        L.append(a)
    for j in range(int(height/2),0,-1):
        b=line.rjust(int(j),bs).ljust(j*2,s).center(height)
        L.append(b)
    for item in L:
        line+=item+'\n'
    return line
def diamond(height):
    s = ''
    # The characters currently being used to build the left and right half of 
    # the diamond, respectively. (We need to escape the backslash with another
    # backslash so Python knows we mean a literal "\" character.)
    l, r = '/', '\\'
    # The "radius" of the diamond (used in lots of calculations)
    rad = height // 2
    for row in range(height):
        # The first time we pass the halfway mark, swap the left and right characters
        if row == rad:
            l, r = r, l
        if row < rad:
            # For the first row, use one left character and one right. For
            # the second row, use two of each, and so on...
            nchars = row+1
        else:
            # Until we go past the midpoint. Then we start counting back down to 1.
            nchars = height - row
        left = (l * nchars).rjust(rad)
        right = (r * nchars).ljust(rad)
        s += left + right + '\n'
    # Trim the last newline - we want every line to end with a newline character
    # *except* the last
    return s[:-1]

你可能感兴趣的:(用Python画棱形)