曹宇轩-第二次作业

1.《软件工程》慕课

完成了慕课的视频课学习及课后习题

 

 2.构建之法讲义

本节的构建之法主要强调了代码的性能测试。编写正确运行的代码只是完成整个软件工程的基础。如何在原有的基础上对代码进行进一步的更新改进,提高代码的质量也是值得注意的。

3.利用Pycharm对Github进行操作

由于网上相关的博客比较多,按照相关操作进行配置即可,不在此赘述。目前选用的git工具是Github提供的Github Deskop,省去了不少git命令。

 4.代码规范性。

对于编程而言,首先是代码的规范性。Python语言主要规范是Google给出的。下载了Style guide进行了简要的学习,最主要还是动手编写,在实际中发现问题,将相应的规范烂熟于胸,潜移默化于编写的过程中。

  5.代码性能测试

对代码性能进行测试可以清晰地看到代码运行主要花费的时间在哪,方便下一步的改进,一般而言,改进代码运行时间最多的地方可以有效地增加代码的质量。当然这并不是唯一的。对于比较复杂的代码,可以借助工具进行相应的分析。对简单的代码可以借助Pycharm中自带的memory_profiler进行相应测试。下面是计算器程序的一段代码,并借助自带的包进行测试。

import profile
import re
#判断格式
for j in range(len(formula)):
    if formula[j] in Operators and formula[j+1] in Operators:
        print('FORMAT ERROR')
    elif formula[j].isalpha():
        print('INPUT ERROR')
    elif formula[j] == '/' and formula[j+1] == '0':
        print('VALUE ERROR')

#乘方计算
def power(list,sign):
    a = list.index(sign)
    if sign == '^':
        b = str(float(list[a - 1])**float(list[a + 1]))
    else :
        return list
    del list[a]
    del list[a - 1]
    del list[a + 1]
    list.insert(a - 1, b)
    return list

def md(l, x):
    a = l.index(x)
    if x == '*' and l[a + 1] != '-':
        k = float(l[a - 1]) * float(l[a + 1])
    elif x == '/' and l[a + 1] != '-':
        k = float(l[a - 1]) / float(l[a + 1])
    elif x == '*' and l[a + 1] == '-':
        k = -(float(l[a - 1]) * float(l[a + 2]))
    elif x == '/' and l[a + 1] == '-':
        k = -(float(l[a - 1]) / float(l[a + 2]))
    del l[a - 1], l[a - 1], l[a - 1]
    l.insert(a - 1, str(k))
    return l

def fun(s):
    l = re.findall('([d.]+|/|-|+|*)', s)
    sum = 0
    while 1:
        if '*' in l and '/' not in l:
            md(l, '*')
        elif '*' not in l and '/' in l:
            md(l, '/')
        elif '*' in l and '/' in l:
            a = l.index('*')
            b = l.index('/')
            if a < b:
                md(l, '*')
            else:
                md(l, '/')
        else:
            if l[0] == '-':
                l[0] = l[0] + l[1]
                del l[1]
            sum += float(l[0])
            for i in range(1, len(l), 2):
                if l[i] == '+' and l[i + 1] != '-':
                    sum += float(l[i + 1])
                elif l[i] == '+' and l[i + 1] == '-':
                    sum -= float(l[i + 2])
                elif l[i] == '-' and l[i + 1] == '-':
                    sum += float(l[i + 2])
                elif l[i] == '-' and l[i + 1] != '-':
                    sum -= float(l[i + 1])
            break
    return sum


def calculate(expression):
    ex = []
    ans = 0
    if '(' not in expression:
        ans = fun(expression)
        return ans
    for i in range(len(expression)):
        if expression[i] == '(':
            ex.append(i)  # ex=[6,7]
        elif expression[i] == ')':  # 14
            temp = 0
            sub = expression[ex[len(ex) - 1] + 1:i]
            temp = fun(sub)
            expression = expression[0:ex[len(ex) - 1]] + str(temp) + expression[i + 1:len(expression) + 1]
            ex.pop()
            return calculate(expression)
#性能测试
profile.run("calculate()")

 可能是因为计算器的程序调用的次数少,并不能完全显示代码性能。代码性能测试

 

 6.学习记录

学习时段

内容

收获

2.24 10:00-11:30

慕课《软件工程》视频课

初步了解代码测试

2.25 10:00-11:30

慕课《软件工程》视频及部分习题

巩固单元测试的相关概念

2.26  10:00-11:30

《构建之法》

 “个人开发技术”

2.27 10:00-11:30  14:00-16:30

《Python编程无师自通》

第四章“函数”,

第五章“容器”

2.28 10:00-11:30 14:30-15:30

《Python编程无师自通》

第六章“字符串操作”、第七章“循环”

2.29 10:00-11:30

《Python编程无师自通》

第八章“循环”

3.1 10:00-11:30

《Python编程无师自通》

第九章“文件”

原文地址:https://www.cnblogs.com/cyx293777/p/12384833.html