个人情况介绍
本人岳智彬,学号D23182407,主要研究方向为雷达水声信号处理以及其与人工智能结合应用。本人未曾有过软件开发的学习和工作经历,计算机和软件开发并我喜欢和擅长的领域,擅长的软件是MATLAB,会简单使用python。未来想继续从事雷达水声信号处理理论方面的研究,提升雷达声纳的性能指标。
因为选课的时候只有人工智能和软件工程两门专业外课程可选,硕士阶段已修过人工智能,希望学点新的知识拓展一下知识面。希望通过这门课程的学习能够熟练使用GITHUB和Gitee代码仓库,学会在其中创建项目,记录自己博士阶段的学习工作。打算每周拿出6个小时,目前还未找到感兴趣的项目,如果能碰到,可以付出更多的时间。
理论学习
学堂在线学习
视频学习:
课后习题:
讨论和编程作业
《人月神话》读后感
https://blog.csdn.net/yzyyyzz/article/details/133781141?spm=1001.2014.3001.5502
《构建之法》读后感
https://blog.csdn.net/yzyyyzz/article/details/133785704?spm=1001.2014.3001.5502
实践学习
编程环境
1.配置python语言的IDE(pycharm)
编写显示下一天的程序(nextday.py)
# 输入年月日数组,以空格分隔
input_str = input("请输入数组元素,以空格分隔:")
input_list = input_str.split()
array = [int(x) for x in input_list]
year = array[0]
month = array[1]
day = array[2]
# print(array)
def nextday_calculate(year,month,day):
if month < 1 or month > 12:
print("月份不存在")
exit()
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("{}是闰年".format(year))
if month == 2:
print("{}是闰月".format(month))
if day < 1 or day > 29:
print("天数不存在")
exit()
if day + 1 == 30:
day = day - 28
month = month + 1
if month == 13:
month = month - 12
year = year + 1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
day = day +1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
elif month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
if day < 1 or day > 31:
print("天数不存在")
exit()
if day + 1 == 32:
day = day - 30
month = month + 1
if month == 13:
month = month - 12
year = year + 1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
day = day+1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
elif month == 4 or month == 6 or month == 9 or month == 11:
if day < 1 or day > 30:
print("天数不存在")
exit()
if day + 1 == 31:
day = day - 29
month = month + 1
if month == 13:
month = month - 12
year = year + 1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
day = day+1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day + 1))
else:
print("{}不是闰年".format(year))
if month == 2:
# print("{}是闰月".format(month))
if day < 1 or day > 28:
print("天数不存在")
exit()
if day + 1 == 29:
day = day - 27
month = month + 1
if month == 13:
month = month - 12
year = year + 1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
day = day + 1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
elif month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
if day < 1 or day > 31:
print("天数不存在")
exit()
if day + 1 == 32:
day = day - 30
month = month + 1
if month == 13:
month = month - 12
year = year + 1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
day =day+1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
elif month == 4 or month == 6 or month == 9 or month == 11:
if day < 1 or day > 30:
print("天数不存在")
exit()
if day + 1 == 31:
day = day - 29
month = month + 1
if month == 13:
month = month - 12
year = year + 1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
else:
day =day+1
print("{}年".format(year) + "{}月".format(month) + "{}日".format(day))
return year,month,day
nextday_calculate(year,month,day)
运行程序,输入当前的年月日,程序会自动更新到下一天年月日。
假设分别输入:999 99 9、2050 2 20、2052 4 30,结果如下图所示:
2.结合pycharm进行单元测试和性能测试
单元测试代码:
检测6个时间的正确,主要包括大小月的最后一天计算,闰年2月最后一天的计算。检测相关边界是否正确。
# 导入单元测试库
import unittest
# 导入nextday的程序
from nextday import nextday_calculate
#import nextday#
day_1 = 2022, 3, 1
day_2 = 2024, 3, 1
day_3 = 2024, 9, 1
day_4 = 2027, 10, 1
day_5 = 2028, 2, 29
day_6 = 2026, 8, 31
class MyTestCase(unittest.TestCase):
def setUp(self) -> None:
print('begin')
pass
# 测试用例后执行
def tearDown(self) -> None:
print('end')
pass
def test_something1(self):
self.assertEqual(nextday_calculate(2022, 2, 28), day_1, "false")
self.assertEqual(nextday_calculate(2024, 2, 29), day_2, "false")
self.assertEqual(nextday_calculate(2024, 8, 31), day_3, "false")
self.assertEqual(nextday_calculate(2027, 9, 30), day_4, "false")
self.assertEqual(nextday_calculate(2028, 2, 28), day_5, "false")
self.assertEqual(nextday_calculate(2026, 8, 30), day_6, "false")
if __name__ == '__main__':
unittest.main()
运行后结果如下图所示:
代码仓库
仓库地址:https://gitee.com/hezhiyong_edu/pychar-gitee.git
1.从pycharm中把项目上传到自己所创建的gitee仓库上。
pycharm与gitee集成参考如下链接:
在刚push的时候提交不上去,出现报错:
hint: not have locally. This is usually caused by another repository pushing
Done
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
寻找解决方法如下链接:
完成后仓库如下图所示,pycharm中的所有程序均已上传到仓库。
重新提交一个test.py的说明文件,结果如下:
多次提交仓库记录:
2.在gitee上进行fork,pull request等操作
首先fork双人合作同伴周凡喻同学的代码仓库test_for_gitee:
对其中的test文件进行编辑,并提交pull request:
上传文件:
学习总结
通过本次大作业,阅读了两本书籍,学习到了很多对于以后学习生活有帮助的知识,同时熟悉了pycharm编程环境,简单上手了python编程。通过对unittest库的使用,熟悉了pycharm的单元测试,对于后续学习也有帮助。将pycharm与gitee相关联,可以通过pycharm远程上传程序,项目。熟悉了gitee代码仓库的使用,会在gitee上上传文件、fork他人项目以及进行pull request。通过本次学习,收获匪浅,为以后的学习打下了基础。