x形图案(python面向对象编程)

题目描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。
输入描述:

多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。

输出描述:

针对每行输入,输出用“*”组成的X形图案。

示例1
输入

5

输出

*   *
 * * 
  *  
 * * 
*   *

示例2
输入

6

输出

*    *
 *  * 
  **  
  **  
 *  * 
*    *
class Solution :
    def __init__(self,n) :
        self.n = n 
        self.O = []
        self.k = False
    def output(self) :
        self.O = [' ' for i in range(self.n)]
        self.O[0],self.O[n - 1] = '*','*'
        try :
            for j in range(self.n) :
                print(''.join(self.O))
                if self.k :
                    self.O[self.n - j] = '*'
                    self.k = False
                self.O[j + 1],self.O[j] = self.O[j],self.O[j + 1]
                if j + 1 == int(self.n / 2) and self.n % 2 != 0 :
                    self.O[self.n - j - 1] = ' '
                    self.k = True
                    continue
                self.O[self.n - j -1],self.O[self.n - j - 2] = self.O[self.n - j - 2],self.O[self.n - j -1]
        except :
            return
while True :
    try :
        n = int(input())
        s = Solution(n)
        s.output()
    except :
        break

如有不足,欢迎指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值