美文网首页
numpy练习:控制台环绕打印数字

numpy练习:控制台环绕打印数字

作者: freshchen | 来源:发表于2018-11-19 17:15 被阅读3次

    需求描述

    输入一个数字n,控制台打印一个n*n的方阵,排列规则是,例如n挺大的,从1开始,数字2围绕数字1一圈,然后数字3再外面围绕一圈,以此类推到最外面一层为数字n。

    代码简单实现

    import sys
    
    import numpy as np
    
    
    # 创建n*n的方阵
    def init_array(line_num, num):
        # data1 = []
        # data2 = []
        # temp1 = line_num
        # temp2 = line_num
        # while temp1 > 0:
        #     data2.append(num)
        #     temp1 = temp1 - 1
        # while temp2 > 0:
        #     data1.append(data2)
        #     temp2 = temp2 - 1
        data1 = []
        temp = line_num * line_num
        while temp > 0:
            data1.append(num)
            temp = temp - 1
        ary = np.array(data1).reshape(line_num, line_num)
        return ary
    
    
    def cut_array(ary, num, cut_num):
        num1 = num - cut_num
        num2 = 2 * num - num1 - 1
        ary[num1:num2, num1:num2] = cut_num
        return ary
    
    
    def main(param):
        num = param
        if num < 0:
            return "please input num > 0"
        else:
            line_num = 2 * num - 1
            ary = init_array(line_num, num)
            cut_num = num
            # 循环替换
            while cut_num > 0:
                cut_num = cut_num - 1
                cut_array(ary, num, cut_num)
            print(ary)
            return ary
    
    
    # 数字n从java程序调用Scanner获得并传入python脚本
    main(int(sys.argv[1]))
    
    
    

    运行结果图

    Capture.PNG

    啊啊啊啊啊啊啊啊啊这图好晕眼睛啊

    相关文章

      网友评论

          本文标题:numpy练习:控制台环绕打印数字

          本文链接:https://www.haomeiwen.com/subject/wfyafqtx.html