Pat乙级1027题——打印沙漏(Python)

注意

  • 一行打印空格和符号时,不能用逗号连接(会多出一个空格)

代码如下

# -*- coding:UTF-8 -*-

def hourglassPrint():
    content = raw_input().split(' ')
    if content[0] == 0:
        print 0
        return
    content[0] = int(content[0]) - 1 ##因为已经在下一行代码把1放进列表里了,所以这里直接减去1
    symbolNum = [1] ##存放每行要打印的符号个数的列表
    nextNum = 3 ##1已经放入列表,直接从3开始计算
    while content[0] >= (2*nextNum):
        symbolNum.insert(0, nextNum) ##沙漏是对称的,所以在开始和末尾插入符号个数
        symbolNum.append(nextNum)
        content[0] = content[0] - (2*nextNum)
        nextNum += 2
    for i in range(len(symbolNum)):
        print ((symbolNum[0] - symbolNum[i])/2)*' ' + symbolNum[i]*content[1] ##不能用逗号连接(会多出一个空格)
    print content[0]

if __name__ == '__main__':
    hourglassPrint()

测试结果

Pat乙级1027题——打印沙漏(Python)_第1张图片

你可能感兴趣的:(python,PAT)