首页 飞桨领航团 帖子详情
【AI达人养成营】简易学习记录
收藏
快速回复
飞桨领航团 其他AI达人创造营学习资料 528 0
【AI达人养成营】简易学习记录
收藏
快速回复
飞桨领航团 其他AI达人创造营学习资料 528 0

[]除了定义list之外,大部分都是用于访问的,比如访问某个元素

{}用在不可重复的东西,比如字典或者集合

 

【组合数据类型】

列表 [ ]有序,可变

元组()有序 不可变   是列表的一种特殊

集合dict {} 也叫做字典

集合set 与字典类似,但是不存储value,是一组key的集合

 

 

【列表生成式】

谈及range()  :百度上说它是可迭代对象,却不是迭代器。

             自己试了一下,直接输出range(3),结果为range(0, 3)

             说明range()并不是输出一个实质列表,只是一个对象!!(之前一直以为是生成一个列表)

 

【斐波那契数列】

【法一】其实就是简单的运用公式,先递归算出fn,再求余

n = int(input('请输入一个较大的整数n:'))

def Feb(n):

    x = 1

    y = 1

    z = 2

    for i in range(2,n+1):

        z = x + y

        x = y

        y = z

    return z

result = Feb(n) % 10007

print('')

print('输入的n为:',n)

print('运算结果为:',result)

【法二】能最好的解决内存占用问题,在n过大时,只在F中放置两个数

import time

start = time.time()

n = int(input())

F = [1, 1]

if n <= 2: 

    for item in range(n):

        F.append(F[item] + F[item + 1])

    print(F[n - 1]%10007)

else: 

    for item in range(n - 2):

        result = F[0] + F[1] 

        F[0] = F[1] 

        F[1] = result 

    print(result%10007)

end = time.time()

print(end-start)

【法三】彻底解决时间和内存问题

关键思想:F(n)=F(n-1)+F(n-2),对F(n)求余,等于‘对F(n-1)求余加对F(n-2)求余’再求余

n = int(input())

F = [1, 1]

if n <= 2:

    for item in range(n):

        F.append(F[item] + F[item + 1])

    print(F[n - 1]%10007)

else:

    for item in range(n - 2):

        result = (F[0] + F[1]) % 10007 # 计算出下一项后直接取余数,不影响结果

        F[0], F[1] = F[1], result

print(result) # 直接输出余数,不需要再除10007

 

【函数】第一行可以用于注释,一定是字符串的形式,如:

def student_name(name):

"打印学生的名字"

 

【冒泡排序】

关键:

若要排列n个数,外层循环n-1次,每循环一次能冒泡出一个最大值,内层循环n-1-i,i为之前已经循环的次数,其实内层写n-1也可以,但是写n-1-i更严谨,能增加效率。如,排序20个数:

for i in range(20-1):

        for j in range(20-1-i):

 

关键疑惑:【快速排序】假如调用的时候不传入三个参数怎么办???

 

【图像处理】

开始前引入依赖包

%matplotlib inline

import numpy as np

import cv2

import matplotlib.pyplot as plt

import paddle

from PIL import Image

 

使用opcv库时记得转换色彩通道

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

 

 

截取

img = cv2.imread('cat.png')

img[900:1000, 600:1000]  其中冒号两边表示截取的图像坐标范围

分离通道

方法一)读取时采用 img=Image.open(文件名)

分离用r,g,b=img.split()

方法二)读取时采用 img=cv2.imread(文件名)

分离用b,r,g=cv2.split(img)

 

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户