百度飞桨领航团零基础Python速成营笔记总结

百度飞桨领航团零基础Python速成营笔记总结

Python计算基础及环境搭配搭建
学习笔记
1、python简述
“人生苦短,我用python”“Life is shot. You need python.”
Python已成为“新基建”不可或缺的重要语言,应用于:AI,AR,VR等众多技术科技领域。
2、python安装
课中举例了三种方法:
方法一:直接安装python本体(不推荐)
方法二:安装Anaconda3(比较方便)
方法三:pycharm(开启较慢,自己在用)和AI Studio
3、python学习
语法基础:print(‘Hello World!’)和缩进(重点)
数据类型:整数,浮点数(小数),运算符,字符串,布尔值(大小写T and F),空值(None)
赋值:number = 1 , 起名法则
str->float->int(不能直接从字符到整数类型)
相互转换:int,str,bool,float
组合数据类型:列表list[],元组tuple()
可变对象:list,dict,set 不可变对象:tuple,string,int,float,bool
字典dict{}, 集合set
流程控制:条件判断if,elif,else和循环for while,break continue,pass
获取输入input

Python编程基础
学习笔记
1.字符串进阶
字符串切片,索引

name = 'molly'
name[1]  
name[-4]
name[1:4]
name[::-1]

字符串常用函数
count 计数功能
显示自定字符在字符串当中的个数
find 查找功能
返回从左第一个指定字符的索引,找不到返回-1

index 查找
返回从左第一个指定字符的索引,找不到报错
split 字符串的拆分
按照指定的内容进行分割
replace字符串的替换
从左到右替换指定的元素,可以指定替换的个数,默认全部替换
strip字符串标准化
默认去除两边的空格、换行符之类的,去除内容可以指定
字符串的格式化输出
%在这里插入图片描述
一种可读性更好的方法 f-string
2.列表进阶
list索引、切片

list1 = ['a','b','c','d','e','f']
list1[2]
list1[2:5]

list常用函数
添加新的元素

list1 = ['a','b','c','d','e','f']
list1.append('g') # 在末尾添加元素
print(list1)
list1.insert(2, 'ooo')  # 在指定位置添加元素,如果指定的下标不存在,那么就是在末尾添加
print(list1)
list2 = ['z','y','x']
list1.extend(list2) #合并两个list   list2中仍有元素
print(list1)
print(list2)

count 计数 和 index查找

list1 = ['a','b','a','d','a','f']
print(list1.count('a')) 
list1 = ['a','b','a','d','a','f']
print(list1.index('a')) 
print('a' in list1)
**删除元素**
list1 = ['a','b','a','d','a','f']
print(list1.pop(3)) 
print(list1)
list1.remove('a')
print(list1)

列表生成式
Question1: 列表每一项+1

[n+1 for n in list_1]
[(n+1)**2 for n in range(10)]
list_1 = [1,2,3,4,5]
list_2 = []
for i in range(len(list_1)):
    if list_1[i] % 2 ==0:
        
        list_2.append(list_1[i])

生成器
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
重点内容!
异常与错误处理
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。

一般情况下,在 Python 无法正常处理程序时就会发生一个异常。

异常是 Python 对象,表示一个错误。

当 Python 脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

list1 = [1,2,3,4,'5',6,7,8]
n=1
for i in range(len(list1)):
    if type(list1[i]) != int:
        continue
    print(list1[i])
    list1[i]+=1

try:
<语句> #运行别的代码
except <名字>:
<语句> #如果在try部份引发了’名字’异常
except <名字>,<数据>:
<语句> #如果引发了’名字’异常,获得附加的数据
else:
<语句> #如果没有异常发生
finally:
<语句> #有没有异常都会执行
try 的工作原理是,当开始一个 try 语句后,Python 就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try 子句先执行,接下来会发生什么依赖于执行时是否出现异常。

如果当 try 后的语句执行时发生异常,Python 就跳回到 try 并执行第一个匹配该异常的 except 子句,异常处理完毕,控制流就通过整个 try 语句(除非在处理异常时又引发新的异常)。

如果在 try 后的语句里发生了异常,却没有匹配的 except 子句,异常将被递交到上层的 try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。

list1 = [1,2,3,4,'5',6,7,8]
n=1
for i in range(len(list1)):
    try:
        list1[i]+=1
        print(list1[i])
    except:
        print('有异常发生')

assert语句的使用

assert 1==2
assert 1==1

BUG的调试和记录
print大法

list1 = [1,2,3,4,'5',6,7,8]
n=1
for i in range(len(list1)):
    print('这是第%s次循环' % i)
    list1[i]+=1
    print(list1[i])
logging
 

import logging
logger = logging.getLogger()
 formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')

3.函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
定义一个函数;函数调用

def student_name(name):
    "打印学生的名字"
    print('姓名:', name)
    return {'姓名':name}
rst = student_name('Alice')
rst 

参数传递
位置参数
缺省参数
可变参数
关键字参数
命名关键字参数
位置参数
位置参数是最简单的一种函数调用的方式。位置参数须以正确的顺序传入函数、数量必须和声明时的一样。

缺省参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
可变参数
顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。

关键字参数
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
命名关键字参数
如果要限制关键字参数的名字,就可以用命名关键字参数

参数的组合
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
变量的作用域和global变量
1.局部变量 作用域:在函数内

2.全局变量 作用域:在函数外

函数优先使用局部变量 在没有局部变量的情况下, 使用全局变量
lambda匿名函数
python 使用 lambda 来创建匿名函数。

lambda 只是一个表达式,函数体比 def 简单很多。

lambda 的主体是一个表达式,而不是一个代码块。仅仅能在 lambda 表达式中封装有限的逻辑进去。

lambda 函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

虽然 lambda 函数看起来只能写一行,却不等同于 C 或 C++ 的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率
高阶函数
map
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回
sorted
排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。
闭包
python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure).
装饰器
顾名思义,从字面意思就可以理解,它是用来"装饰"Python的工具,使得代码更具有Python简洁的风格。换句话说,它是一种函数的函数,因为装饰器传入的参数就是一个函数,然后通过实现各种功能来对这个函数的功能进行增强。
装饰器最大的优势是用于解决重复性的操作,其主要使用的场景有如下几个:

计算函数运行时间
给函数打日志
类型检查
当然,如果遇到其他重复操作的场景也可以类比使用装饰器。

总结
虽然课程只有七天,但是系统的介绍的python的知识点,实现从零基础到可以用python实现一些比较复杂的功能。而且课程中讲述很多比较细节的知识点,对python有更深入的了解,并通过作业非常好的把python课程带给我们,帮助我们对知识的掌握感觉牢固

飞桨领航团的课程本次即将结束,期待下一次的课程
https://aistudio.baidu.com/aistudio/course/introduce/7073

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值