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

需求描述

输入一个数字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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • “立波有难 八方点赞”幸灾乐祸?喜闻乐见 ?大快人心?到底是他做了什么让我们空前的团结。 你以为我要深扒周立波的往...
    够咯咯阅读 334评论 0 0
  • 一、变量 1、五个标准的数据类型: 数字、字符串、列表、元组、字典 2、四种数据类型 int、long、float...
    zhongxyz阅读 149评论 0 0
  • 想人想的厉害的时候,也是淡淡的。像饿极了许多日的人闻到炊烟,但知道不是自家的。 什么叫多余?夏天的棉袄,冬天的蒲扇...
    Fanny333999阅读 268评论 0 0
  • 一个人要走多少路才能走完这一生 远方的游子要看多少次月亮 才能找到回家的路 苏轼的那枚隔了千年的月亮还在 故乡的人...
    一梦浮生1990阅读 129评论 0 0
  • 今天听过一句虐心的话: 当你说某某东西不是买不起,而是它性价比不高不值得买时,本质上还是买不起。 当你看待一个东西...
    艾掌门阅读 716评论 0 0