首页 > 其他分享 >第三次考核总结

第三次考核总结

时间:2023-02-18 00:55:37浏览次数:49  
标签:总结 10 第三次 self range 考核 time print def

超算第三次考核

任务一:

(1)列表生成式:

主要运用到推导式的内容。

list1 = [i for i in range(10,61,10)]
print(list1)
list2 = [i*i for i in range(1,8)]
print(list2)
list3 = [i*int((-1)**(i/10))*-1 for i in range(10,61,10)]
print(list3)
list4 = [i for i in range(10,61,10) if i%20 != 0]
print(list4)

#运行结果
#[10, 20, 30, 40, 50, 60]
#[1, 4, 9, 16, 25, 36, 49]
#[10, -20, 30, -40, 50, -60]
#[10, 30, 50]

一行内生成乘法表:

print("\n".join("\t".join(["{}*{}={}".format(j,i,i*j) for j in range(1,i+1)])for i in range(1,10)))

该行代码用了join函数,里层的join在每个算式后加上制表符分割开算式,外层join在每次应该换行的时候加入一个换行符,具体表现为i每加一换行一次。

除了上述之外,还有下面这个方法。

[print("{}*{}={}".format(j,i,i*j) ,end = "\n" if i == j else "\t")for i in range(1,10) for j in range(1,i+1)]

该行代码运用print函数的end和三元运算符,来控制到底是换行还是输出制表符。

(2)计时器对象:
import time as t
class Timer:
    def __init__(self):
        self.timelist = []

    def start(self):
        self.begin = t.perf_counter()

    def stop(self):
        self.end = t.perf_counter()
        self.timelist.append(self.end-self.begin)
        return self.timelist[-1]

    def avg(self):
        sum = self.sum()
        return sum / len(self.timelist)

    def sum(self):
        sum = 0
        for i in self.timelist:
            sum += i
        return sum

    def cumsum(self):
        cumsumlist = []
        for i in self.timelist:
            if cumsumlist:
                cumsumlist.append(i+cumsumlist[-1])
            else:
                cumsumlist.append(i)
        return cumsumlist

a = b = 1
timer = Timer()
timer.start()
d = a + b
print(f'{timer.stop():.5f} sec')
#输出
#0.00003 sec

完成计时器对象需要调用time库,库中有几个可用于计时的函数。

1.time.time()

返回自1970年1月1日00:00:00(UTC)以来经过的时间,单位为秒。可调用两次求差值,来计算时间差。通过改变系统时间可以改变time.time()的值。因为精度不高而且会受系统时间影响,所以适合用来表示日期时间或者大程序程序的计时。(包含sleep()的时间)

2.time.process_time()

返回当前进程的系统和用户CPU时间之和(以小数秒为单位)。不包含睡眠时间,也是通过调用两次求差值计算经过时间。精度比time.time()高。

3.time.perf_counter()

返回性能计数器的值(以小数秒为单位),包含睡眠时间,调用也和上述两种方法一样,但是精度更高,在计算小程序的运行时间使用perf_counter可以获得更加准确的时间差,所以我这里使用time.perf_counter()。

此外还有time.clock()方法,但是在python3.8之后废除了,所以用以上三种方法代替。

同时python还提供了精确到纳秒的计时方法(返回的是整型。):

time.time_ns()

time.process_time_ns()

time.perf_counter_ns()

(3)累加器 Accumulator 类
class Accumulator:
    def __init__(self,n):
        self.list = [0] * n

    def add(self, *args):
        j = 0
        for i in args:
            self.list[j] += i
            j += 1

    def reset(self):
        self.list = [0] * len(self.list)

    def  __getitem__(self, idex):
        return self.list[idex]

通过输入的n来创建列表,来完成累加。

(4)斐波那契数生成函数
def fib():
    f1 = 1
    f2 = 1
    yield print(f1)
    while True:
        f3 = f1 + f2
        f1 = f2
        f2 = f3
        yield print(f1)
a = fib()
for i in range(5):
    next(a)
#输出
'''
1
1
2
3
5
'''

该段代码主要运用到yield方法。yield方法可以看作函数中的return,含有yield的函数也不在是一个简单的函数,它变成了一个生成器,当生成一个函数对象时,先不会执行函数内容,而是先产生生成器。

该生成器含有一个函数next(),当调用next()时将执行函数返回yield后面的值。每次调用next()都从上一次返回后的位置开始执行。

简单来说,yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后开始。

任务二:

任务三:

对于任务三,主要是看李沐动手学深度学习的视频配合快速入门Pytorch,简单的了解一些:数据操作、数据预处理、线性代数以及矩阵导数的内容,还有线性回归模型相关内容。

老师的视频大部分还是挺细致的,但光看视频还是有一些不太清楚的地方,比如,数学方面:线性回归模型的代价函数为什么是凸函数,正向累积和反向累积的区别,什么是累积梯度; 还有对老师在视频中一些没有详细介绍的一些库函数,不是很了解,如:os库,panda库·,以及torch库中的一些函数,这些都还需要多多查找资料进行学习。

标签:总结,10,第三次,self,range,考核,time,print,def
From: https://www.cnblogs.com/102204216zxf/p/17131847.html

相关文章

  • git 编译总结
       apt-getinstalltcl-dev aptinstalllib   ......
  • 开学第一周总结
    开学的测试考的非常不理想,内心很受打击,但是也是自己的锅,自己在寒假的时候有点放肆了,没有进行相关的练习,这次清醒的认识到了错误。这次开学还有英语四级和蓝桥杯的相关考......
  • 2023/2/17 考试总结
    时间安排7.30~7.47发现重题,于是换题。7.47~7.52T1很sb,写了。O0O0O0OO0O0O0O0O0O0O0O0O0O0O0O00O7.52~8.40T2不是很sb,想了个状态数巨大的dp套dp。dfs搜了一下只有36......
  • 多线程等待所有子线程执行完使用总结(3)——CyclicBarrier使用和源码初步分析
    问题背景我们在日常开发和学习过程中,经常会使用到多线程的场景,其中我们经常会碰到,我们代码需要等待某个或者多个线程执行完再开始执行,上一篇文章中(参考https://blog.51cto......
  • 「推荐收藏!」【MySQL技术之旅】(4)总结和盘点优化方案系列之常用SQL的优化
    概述前面我们介绍了MySQL中怎么样通过索引来优化查询。日常开发中,除了使用查询外,我们还会使用一些其他的常用SQL,比如INSERT、GROUPBY等。对于这些SQL语句,我们该怎么样进行......
  • 正由另一进程使用,因此该进程无法访问该文件-----解决办法总结
    https://blog.csdn.net/rs_90/article/details/104633461读取文件:第一种:这是因为文件还没关闭就被操作(move/delete/rewrite等)引起的错误解决办法:可能因为某个进程还......
  • 《清晰思考的艺术》总结
    总结有点像《思考的快与慢》的简单版本,指出很多我们生活中的思考错误,如:禀赋效应、对比效应、幸存偏误、激励过敏倾向、光环效应等等。教我们预防和做出正确的选择。列两......
  • 组合数学总结
    前一个小时主要讲了书籍和组合数学的大纲。后面主要讲了著名的小球分盒子问题:有\(2\)个角度是经常考虑的:球的区别与否盒子的区别与否另外还分了\(3\)个角度:不做区......
  • 【博学谷学习记录】超强总结,用心分享 | 前端开发 web APIs(四)
    WebAPIs-第4天进一步学习DOM相关知识,实现可交互的网页特效能够插入、删除和替换元素节点能够依据元素节点关系查找节点1日期对象掌握Date日期对象的使用,......
  • 性能分析方法总结之pprof
    1、代码实例以下例子除了特别说明,都以这段代码为实例。packagemainimport( "log" "time" "net/http" _"net/http/pprof")vardatas[]stringfuncmain()......