作业一 —随机字符矩阵的生成和查找
一、安装 Numpy 包
推荐使用Pycharm,因为下载时候可以看进度,如果用pycharm就在pycharm自带的控制台输入,不用cmd
1.点击键盘上的win+R输入cmd打开命令提示符
2.输入以下命令安装Python所需的一些包
这句语句是为了安装一部分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个字符分为 19*5 的形式
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)
# 创建一个9行15列的二维矩阵,填充内容为'k'
# 这里不用np.zero()的原因是:np.zero()生成的数会有浮点去掉比较麻烦。
words = np.full((5, 19), 'k')
# 用于遍历data中的数
x = 0
# 循环将data中生成随机数输入words的二维矩阵。
for i in range(5):
for j in range(19):
# 随机的数字直接转为字符
words[i, j] = chr(int(data[x]))
x += 1
return words
# 矩阵显示函数
def printMatrix(words):
print(words)
# 字符查找函数
def findCharlnMatrix(words, findWord):
# 循环寻找所在位置
for i in range(5):
for j in range(19):
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}列")