王天雨第一次作业和第二次作业

现在仍然由于特殊原因只能在手机上写一些文字,在此之前首先要感谢kiwi老铁,在我最需要帮助的时候帮我排版,调整码了以下博。

由于时间和进度落后,今后会继续完善这两周的作业并实时更新。

 个人情况介绍

本人毕业于东北大学计算机科学与技术专业,经过大学四年认真努力的学习有一定的编程基础,参加过数学建模,acm初赛,在大学的暑期小学期竞赛集训班学过一定的python相关知识,软件工程也在大学修过,但主要侧重于软件开发过程,软件开发需求,软件开发计划的必要掌握的知识点如用例图,过程图,甘特图,软件功能设计,迭代,黑白盒测试等等。以小组合作的形式设计的上课签到系统在当时老师的引荐下在东软进一步完善后在新校区投入使用。

我找到了之前本科的一些笔记,自认为还不错,所以贴上几张。

 

 

 

 

本人从小对计算机有着浓厚的兴趣,小时候在父亲的引导下接触过计算机的一些书籍以及动手”了一些当时比较先进的零件,在高考后就毫不犹豫的选择成为一名程序员,刚开始的时候有了很浓厚的兴趣,随着学的知识越多,越理解了小时候的一些难题和疑惑,也经历过“痛不欲生”的代码调bug阶段,但每次程序运行成功的那一刻就十分自豪和快乐。

软件工程这门课在开课前我已经有了一些基本认识和了解,但我认为本科只是皮毛,真正难以理解的知识在这个阶段需要继续认真学习。

 

计算器

 

在本科做过类似的计算器,当时是一个Java的计算器课程设计,在之前我拿Python又把基本功能实现了一遍,一些科学计算器的范畴由于时间原因和特殊情况没有时间做了,基本功能的逻辑基本相同,直接放代码:

 

def change(mark):  #提取"+","-","*","/"的通用功能

 

    global Sum

 

    m=d.index(mark)

 

    if mark=="*":

 

        Sum = k[m] * k[m+1]

 

    elif mark=="/":

 

        Sum = k[m] / k[m+1]

 

    elif mark=="+":

 

        Sum = k[m] + k[m+1]

 

    elif mark=="-":

 

        Sum = k[m] - k[m+1]

 

    k[m]=Sum

 

    del k[m+1]

 

    d.remove(d[m])

 

 

def JS(Num):

 

    #k存储数字字符,d存储符号字符

 

    global k

 

    k=[]

 

    global d

 

    d=[]

 

    cba=Num

 

    for item in Num:

 

        if item=="+" or item=="-" or item=="*" or item=="/":

 

            d.append(item)

 

            Num=Num.replace(item,",")

 

    Num=Num.split(",")

 

    if Num[0]=="":

 

        Num[0]=0

 

    for i in Num:

 

            if i=="":

 

                pass

 

            else:

 

                i=float(i)

 

                k.append(i)

 

    count = 0

 

    for i in range(len(cba)):

 

        if cba[i] == "+" or cba[i] == "-" or cba[i] == "*" or cba[i] == "/":

 

            count += 1

 

            if cba[i+1] == "-":

 

                k[count] = -k[count]

 

                del d[count]

 

                count-=1

 

    for i in range(len(d)):

 

        if "*" in d and "/" in d:

 

            m=d.index("*")

 

            n=d.index("/")

 

            if m<n:

 

                change("*")

 

            else:

 

                change("/")

 

        elif "*" in d :

 

            change("*")

 

        elif "/" in d :

 

            change("/")

 

    for i in range(len(d)):

 

        if "+" in d and "-" in d:

 

            m=d.index("+")

 

            n=d.index("-")

 

            if m<n:

 

                change("+")

 

            else:

 

                change("-")

 

        if "+" in d:

 

            change("+")

 

        elif "-" in d:

 

            change("-")

 

def chazhao():

 

    global Nba

 

    global Num

 

    m=Nba.rfind("(")  #从右向左查找第一个左括号即最里层括号中的左括号

 

    n=Nba[m:]  #从这个左括号起把以后的字符赋给N

 

    c=n.find(")")#N中从左向右查找第一个右括号即最里层括号中的右括号

 

    Num=n[1:c]  #找到括号把里面的字符赋值给Num

 

    JS(Num)   #调用基本的操作函数,并算出结果

 

    j=str(Sum)

 

    Nba=Nba.replace(Nba[m:m+c+1],j)   #将计算出的结果添加进最初的字符串中

 

    #JS(Nba)

 

while True:

 

    Nba=input("请输入计算公式:")

 

    while True:

 

        if "(" in Nba or ")" in Nba:

 

            chazhao()  #有括号时一直循环执行chazhao(),把括号全部替换

 

        else:

 

            JS(Nba)    #字符串中没有括号时直接调用基本运算

 

            print(Sum)

 

            break

 

测试图片如图:

其中,存在的问题还是有很多的,比如没有去写那个输入错误的返回,这个程序输入错误算式会直接退出,浮点数较大时会溢出等问题,在以后几周我会尽可能补充上去做到最好。

代码仓库

Github在本科时候自己用的不是很多,大多都是去查一些代码,真正运用也是在入学时候曾学哥推荐我去学习aconda的时候用的比较多,这是这次计算器的上传截图。

四.学堂在线

已经完成前两章的学习和课后作业

英文文献进行分词与分句

搜集了一些资料发现nltk库符合所有要求https://blog.csdn.net/weixin_42023936/article/details/82767959

按照nltk官网的一些教程发现py3.7已经预装了nltk

 

这个all-nltk包含所有英文的分词分句,代码较简单,但是主要是测试和pep-8

我去博客上搜了一些教程https://blog.csdn.net/kobe_academy/article/details/88139891

首先安装(后发现已经有了环境)

 

检测语句为:py.test --pep8  ccc.py

结果通过。

问题不足:1.第一次试验操作失误把实验用的aconda环境弄坏了,明天开始会重新弄2.由于实验代码依赖环境,而新建的环境没有tensorflow,贴一张错误运行的截图:

由于时间和进度落后,今后会继续完善这两周的作业并实时更新博客。

 

 

猜你喜欢

转载自www.cnblogs.com/lv-5-no-9/p/12392230.html