0
点赞
收藏
分享

微信扫一扫

随机字符矩阵的生成和查找

前端王祖蓝 2022-05-01 阅读 80

作业一 —随机字符矩阵的生成和查找

一、安装 Numpy 包

1.点击键盘上的win+R输入cmd打开命令提示符

在这里插入图片描述

2.输入以下命令安装Python所需的一些包

python -m pip install  numpy scipy matplotlib ipython jupyter pandas sympy nose -i https://pypi.douban.com/simple/

如果卡了,键盘摁下ctrl+c可以强制退出,我就是强制退出的
在这里插入图片描述

3.检查是否有numpy包。在命令提示符中输入pip list

pip list

在这里插入图片描述


二、参考答案

import random
import numpy as np

# 生成随机矩阵 -> 95个字符分为 15*6 的形式
def makeMatrix():
    # 生成32-126的数字,偷懒了不手打了
    checkList = []
    # 装填范围到checkList中(ascii码的规定可显示字符范围)
    i = 32
    while (i != 127):
        checkList.append(i)
        i += 1
    # 生成一个一维矩阵。括号中意义->(从checkList数组中,找到95个数,且不重复) 找95个数就是全找一遍。
    data = np.random.choice(checkList, size=95, replace=False)
    # 创建一个6行15列的二维矩阵,填充内容为'k'
    # 这里不用np.zero()的原因是:np.zero()生成的数会有浮点去掉比较麻烦。
    words = np.full((6, 15), 'k')
    # 用于遍历data中的数
    x = 0
    # 循环将data中生成随机数输入words的二维矩阵。
    for i in range(6):
        for j in range(15):
            # 随机的数字直接转为字符
            words[i, j] = chr(int(data[x]))
            x += 1
    return words

# 矩阵显示函数
def printMatrix(words):
    print(words)

# 字符查找函数
def findCharlnMatrix(words, findWord):
    for i in range(6):
        for j in range(15):
            if words[i, j] == findWord:
                return i, j

# 主函数
words = makeMatrix()
print(f"字符矩阵为:")
printMatrix(words)
findWord = input("请输入查找到字符:")
x, y = findCharlnMatrix(words, findWord)
print(f"字符{findWord},位于{x}{y}列")

举报

相关推荐

0 条评论