python - 作业4:读写矩阵(附代码)


github指路 冲冲冲冲冲

国庆回来上的第一节课是python
我真的很努力在听,可还是睡了几页ppt
55555555


我发现 讲了这么多没有讲矩阵的意义
所以来补惹

因为作业是矩阵读写呀

那么 需要考虑的是 矩阵的维度,矩阵数据的类型,读数据和写数据的方法(你怎么写数据才能把他原样读出来= =)

矩阵数据的类型我就考虑了老师作业里要求的int、float和string

然后也没啥好讲的我觉得

!重点讲一下

多维矩阵的理解


图
在一个博客上看到的,如果是一维矩阵是一行字,二维矩阵就是一页纸,三维矩阵就是一本书,四维矩阵就是一个书架,五维就是图书馆……

我觉得这个理解很棒,简单易懂= =

然后读写数据的话因人而异吧,自己制定规则然后遵守规则就可啦


好久才发现要更新(也就一天)

咕咕咕

2019/10/09 更新

首先,先讲理论部分
开始复习上课内容(虽然我睡着了但是我前面部分有听!!!)
这节课第一个要点:

函数-function

讲了函数的意义、原则、定义的方法、怎么使用,函数参数怎么传递、形参和实参的形式、函数之间的嵌套、还有一个我觉得超级酷的默认参数(好吧可能是之前没有接触过的原因吧……)

有些东西是都知道的,

比如函数有什么用 回答:便于修改、让代码逻辑变得更清晰,减少代码冗余

再比如函数要怎么调用 回答:不想回答

再比如写函数的一个可以避免的思想 回答:递归思想(因为太菜了写不出来也因为写出来很大几率是错的,当然如果你足够强,当我没说)

有些东西是自己没想到但在老师提点之后觉得也算重要的

比如python里函数不用定义参数类型这件事

再比如函数内定义的变量,函数外无法访问- -

再比如python边编译边运行(?)所以函数不能像c里那样可以在前面定义之后再在main函数之后写函数代码块而是要(粗暴)直接写就完事了

再比如函数嵌套的时候……突然举例。就是在函数A中嵌套函数B,这个时候要在执行函数A之前定义函数B,而不是在定义函数A之前定义函数B(惰性运算机制)

有些东西是课上刚接触到的觉得很新奇

比如 函数里面的默认参数,没接触过可真的是太酷了

再比如 lambda函数,有点不太懂来着,就是一个不需要使用变量名的无名函数,大概就是大佬写的代码里会出现的样子- - (lambda x:x**2 就是输出x^2这样子,我还没试过- -)

好啦,这节课第二个要点:

模块-没有英文名??

同样讲了模块的定义
(我开始犯困……)
(断片……)
(强行清醒……)

有意识之后老师讲了模块的调用 :

大概就是 import xx as x(as 就像重命名机制那样的,把xx模块载入之后,让x变成了一个对象- -)还有form yy import y

然后讲了模块的意义,和函数一样解决代码冗余的问题,还有我觉得听起来很棒也确实很棒的一个点:模块可以提供命名空间(就是上面说的那个作为对象)

okok第三个点:

就是

python 读写文件

的方法(好虚伪的总结)

言归正传,我打算放在一篇新的博客里(不讲废话只写要点的那种???精简技术贴???)


刘老师讲了一下文件的读和写

课后留了个作业
大概是这样

作业

上课没打完课后接着打
我超级乖

先贴个代码
10月13日修改

== 》(不完全,因为我突然发现有很多朋友还没有交python作业= =)《==

晚上整理整理脑子

#   file_name:读入或写入的文件名称
#   data_list:读入或写入的数据链表
#   data_tpye:数据类型
#       1:int;2:float;3:string
#   n:矩阵维度

def f_write(file_name,data_list,n=2,data_type=1):
    f = open(file_name,'w')
    #……
    f.close()

def f_read(file_name,output_list=[],n=2,data_type=1):
    f = open(file_name,'r')
    #……
    f.close()
    print(output_list)

# =========== test on n=3 int =============
int_3_list=[[[1,2,2,3],[2,3,3,4]],[[1,2,2,3],[2,3,3,4]],[[1,2,2,3],[2,3,3,4]]]
f_write('int_3_test.txt',int_3_list,n=3)
int_o_3_list=[]
f_read('int_3_test.txt',int_o_3_list,n=3)
print('------------------------')

# --- test on n=3 string ---
str_3_list = [[['a','b','c'],['d','ef','g']],[['a','b','c'],['d','ef','g']]]
str_o_3_list=[]
f_write('str_3_test.txt',str_3_list,n=3,data_type=3)
f_read('str_3_test.txt',str_o_3_list,n=3,data_type=3)
# print(str_3_list)
print('------------------------')

# --- test on n=3 float ---
float_3_list = [[[1.11,2.22,3.33],[1.34,2.45,3.56]],[[1.11,2.22,3.33],[1.34,2.45,3.56]]]
float_o_3_list=[]
f_write('float_3_test.txt',float_3_list,n=4,data_type=2)
f_read('float_3_test.txt',float_o_3_list,n=4,data_type=2)
# print(float_3_list)

# # =========== test on int data_type =============
# int_list = [[1,2,2,3],[2,3,3,4]]
# int_o_list=[]
# f_write('int_test.txt',int_list)
# f_read('int_test.txt',int_o_list)
#
# # ========= test on float data_type =============
# float_list = [[1.11,2.22,3.33],[1.34,2.45,3.56]]
# float_o_list=[]
# f_write('float_test.txt',float_list,data_type=2)
# f_read('float_test.txt',float_o_list,data_type=2)
#
# # ========= test on string data_type ============
# str_list = [['a','b','c'],['d','ef','g']]
# str_o_list=[]
# f_write('str_test.txt',str_list,data_type=3)
# f_read('str_test.txt',str_o_list,data_type=3)

收获了刘老师的一个大拇指
继续加油呀,干杯 [ :-1]

2020/02/04 更新code

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/10/22 10:37
# @Author : Chen Shan
# Function : Read & write multidimensional matrix

#   file_name:读入或写入的文件名称
#   data_list:读入或写入的数据链表
#   data_tpye:数据类型
#       1:int;2:float;3:string
#   n:矩阵维度

def f_write(file_name,data_list,n=2,data_type=1):
    f = open(file_name,'w')
    if n != 2:
        for datas in data_list:
            datas = str(datas)
            f.write(datas.replace('[', '').replace('],', '|').replace(']', '|').replace("'", '').replace('"', ''))
    elif n == 2:
        for line in data_list:
            if data_type == 3:
                line = str(line).replace('[', '').replace(']', '').replace("'",'').replace('"','')
                line = line + '\n'
            else :
                line = str(line).replace('[','').replace(']','')
                line = line+'\n'
            f.write(line)
    f.close()

def f_read(file_name,output_list=[],n=2,data_type=1):
    f = open(file_name,'r')
    if n != 2:
        for line in f:
            line = line.replace(' ','')
            line = line.split('|')
            print(line)
            t1 = []
            t2 = []
            for nums in line:
                temp=''
                for num in nums:
                    if num == ',' or num == ' ':
                        if data_type == 1:
                            t1.append(int(temp))
                        elif data_type == 2:
                            t1.append(float(temp))
                        elif data_type == 3:
                            t1.append(str(temp))
                        temp = ''
                        continue
                    temp += num
                if temp != '':
                    if data_type == 1:
                        t1.append(int(temp))
                    elif data_type == 2:
                        t1.append(float(temp))
                    elif data_type == 3:
                        t1.append(str(temp))
                if len(t1) != 0:
                    t2.append(t1)
                    t1 = []
                else:
                    if len(t2) != 0:
                        output_list.append(t2)
                        t2 = []
    elif n == 2:
        for line in f:
            line = line.replace('\n','').split(',')
            print(line)
            if data_type == 1:
                datas = [int(num) for num in line ]
            elif data_type == 2:
                datas = [float(num) for num in line]
            else:
                datas = [str(num) for num in line]
            output_list.append(datas)
    f.close()
    print(output_list)

# =========== test on n=3 int =============
int_3_list = [ [ [1,2,2,3] , [2,3,3,4] ],[ [1,2,2,3] , [2,3,3,4] ] , [ [1,2,2,3] , [2,3,3,4] ] ]
f_write('int_3_test.txt',int_3_list,n=3)
int_o_3_list = []
f_read('int_3_test.txt',int_o_3_list,n=3)
print('------------------------')

# --- test on n=3 string ---
str_3_list = [ [ ['a','b','c'] , ['d','ef','g'] ] , [ ['a','b','c'] , ['d','ef','g'] ] ]
str_o_3_list = []
f_write('str_3_test.txt',str_3_list,n=3,data_type=3)
f_read('str_3_test.txt',str_o_3_list,n=3,data_type=3)
# print(str_3_list)
print('------------------------')

# --- test on n=3 float ---
float_3_list = [ [ [1.11,2.22,3.33] , [1.34,2.45,3.56] ] , [ [1.11,2.22,3.33] , [1.34,2.45,3.56] ] ]
float_o_3_list = []
f_write('float_3_test.txt',float_3_list,n=4,data_type=2)
f_read('float_3_test.txt',float_o_3_list,n=4,data_type=2)
# print(float_3_list)

# # =========== test on int data_type =============
# int_list = [ [1,2,2,3] , [2,3,3,4] ]
# int_o_list = []
# f_write('int_test.txt',int_list)
# f_read('int_test.txt',int_o_list)
#
# # ========= test on float data_type =============
# float_list = [ [1.11,2.22,3.33] , [1.34,2.45,3.56] ]
# float_o_list = []
# f_write('float_test.txt',float_list,data_type=2)
# f_read('float_test.txt',float_o_list,data_type=2)
#
# # ========= test on string data_type ============
# str_list = [ ['a','b','c'] , ['d','ef','g'] ]
# str_o_list = []
# f_write('str_test.txt',str_list,data_type=3)
# f_read('str_test.txt',str_o_list,data_type=3)

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值