三岁学编程,白话解析与复习飞桨小白课程第二天,回顾汇总,没有听懂的可以作为参考
参考资料:https://aistudio.baidu.com/bdcpu8/user/284366/425306/notebooks/425306.ipynb?redirects=1
数据结构
数字
数字包括 整数型(int)、浮点型(float)、复数型
math库
课程中的math是python的模块(库),他是python的标准库拥有4个数学常数和44个函数
使用方法:import math或from math import *(推荐第一个,第二个有可能因为自定义名称冲突发生报错等情况)(以第一种进行举例)
使用库:math.\<函数名>即可
常见函数:
import math print(math.ceil(4.1)) #返回数字的上入整数 5 print(math.floor(4.9)) #返回数字的下舍整数 4 print(math.fabs(-10)) #返回数字的绝对值 10 print(math.sqrt(9)) #返回数字的平方根 3 print(math.exp(1)) #返回e的x次幂 e(2.718281828459045) ————————以上为老师上课内容———————— math.pi #π的值 3.141592653589793 math.e #e的值 2.718281828459045 math.inf #正无穷 -math.inf#负无穷 math.fmod(x,y)#相对应x%y返回模的值(余数) math.factorial(x)#返回x的阶乘 其他的可以参考官方文档
随机函数(random)
使用方法import random
导入随机函数库
import random random.random()#随机生成0-1的小数(小数点自动取6位) random.randint()#生成一个随机整数 random.randint(x,y)#生成一个x到y之间的随机整数 #这里的x,y可以取到! 不是左闭右开!注意不是 random.seed()#带种子的随机函数 #种子相同生成的结果就相同
字符串
字符串是不可变的集合,可以重新赋值,但是地址会变化
字符串用引号来表示
可以用单引号,双引号
三引号(三引号可以用来表示多行的内容也可以用于多行注释)
字符串拼接 用 + a = "Hello " b = "World " print(a + b) hello world 字符串多次重复用 * print(a * 3) aaa 判定是否在字符串 用 in print('e' in a) True 判定是不是不在字符串用 not in print('e' not in a) False #返回值为布尔型(True,False)布尔值首字母必须大写
读取与切片
该读取与切片和 列表,元组等都一样
遵循左闭右开(左边的取得到,右边的不行)
使用方法:[a🅱️c]
a为开始位置
b为结束位置(不包括b)
c为步长(就是间隔多少取一次)
读取顺序
具体的参考飞桨官网或字符串解析文章(上方有链接接口)
视频直达:https://aistudio.baidu.com/aistudio/education/lessonvideo/296998
转义字符
转义字符是\
他可以把原有的内容进行转换含义
主要的几种:
\n #换行 \t#tab键
在单引号的字符串中不能够出现单引号除非使用转义字符或改用双引号(三引号)
不能够单独输出 \ 除非用 \ 把自己给转义了
类似于你猜我猜你猜不猜
还有一种极简方式,把所有的字符串内容全部格式化,在引号前添加r把整个字符串进行格式化(这种可以格式化字符串里面的如果有3个单引号构不成字符串一样无效)
print("The \t is a tab") The is a tab print('I\'m going to the movies')#转义 I'm going to the movies print("I'm going to the movies")#用双引号 I'm going to the movies
列表
点击查看更详细解析(真的超详细)
列表读取
与字符串相似,采用索引获取
索引从0开始
最后一个元素为-1
元素全部获取可以用for循环进行遍历
用 in 查询是否在列表 not in 查询是否不在
返回布尔值
for name in names: print(name) jack tom tonney superman jay for name in names: print(name,end=' ')#输出不换行 jack tom tonney superman jay if 'superman' in names: print('有超人') else: print('有超人') 有超人
添加删除元素
申请空列表方法
列表名 = []
添加可以采用 append() 添加到列表末尾
使用方法 列表名.append(添加内容)
extend() 批量添加到末尾
和 + 用于拼接相类似
使用方法 列表名.extend(添加内容)
insert() 添加到指定位置
使用方法列表名.insert(位置,内容)
#声明一个空列表 girls = [] print(girls) [] #append(),末尾追加 girls.append('杨超越') print(girls) ['杨超越'] #extend(),一次添加多个。把一个列表添加到另一个列表 ,列表合并。 models = ['刘雯','奚梦瑶'] girls.extend(models) #girls = girls + models print(girls) ['杨超越', '刘雯', '奚梦瑶'] #insert():指定位置添加 girls.insert(1,'虞书欣') print(girls) ['杨超越', '虞书欣', '刘雯', '奚梦瑶']
修改元素
采用找到下标并对元素进行重新赋值的方式进行
fruits = ['apple','pear','香蕉','pineapple','草莓'] print(fruits) ['apple', 'pear', '香蕉', 'pineapple', '草莓'] fruits[-1] = 'strawberry' print(fruits) ['apple', 'pear', '香蕉', 'pineapple', 'strawberry']
删除元素
del 全部删除,一去不复返
使用方法:del 列表名 #删除整个列表
del 列表名[x:y] #删除选中的元素
remove 删除指定元素(只删除第一个该元素)
使用方法 words.remove(需删除元素)
pop 弹出指定位置元素(默认最后一位)返回弹出值并删除
words = ['cat','hello','pen','pencil','ruler'] del words[1] print(words) ['cat', 'pen', 'pencil', 'ruler'] words = ['cat','hello','pen','pencil','ruler'] words.remove('cat') print(words) words = ['cat','hello','pen','pencil','ruler'] a = words.pop(1) print(a) print(words) hello ['cat', 'pen', 'pencil', 'ruler']
注意事项:del删除列表以后不能够再调用该列表,列表地址不存在会报错!!!
切片与读取
和字符串相似,具体的查看有关文档
注意:列表[::-1] 代表着反向输出
列表深入学习
#随机生成10个不同的整数,并进行排序 import random random_list = [] i = 0 while i < 10: ran = random.randint(1,20) if ran not in random_list: random_list.append(ran) i+=1 print(random_list)#获得10个随机数并存储到列表 new_list = sorted(random_list)#进行排序(默认升序) print(new_list) new_list = sorted(random_list,reverse =True) print(new_list)#定义reverse后可以修改
元组
元组用括号代表,而且元组不可修改但是可以重新赋值
空元组 元组名 = ()
一个元素的元组元组名 = (元素,)
元组常用函数
len() 获取元组长度
max() 最大值
min() 最小值
sum() 求和
拆包
详细文档里面没有的(小编刚刚学到的)
可以把元组文档里面的内容分别赋值给对应的元素
如果元素不够可以采用*的方法代表多个
#定义一个元组 t3 = (1,2,3) #将元组赋值给变量a,b,c a,b,c = t3 #打印a,b,c print(a,b,c) 1 2 3 #当元组中元素个数与变量个数不一致时 #定义一个元组,包含5个元素 t4 = (1,2,3,4,5) #将t4[0],t4[1]分别赋值给a,b;其余的元素装包后赋值给c a,b,*c = t4 print(a,b,c) print(c) print(*c) 1 2 [3, 4, 5] [3, 4, 5] 3 4 5 先拆包多出来的再装包
字典
用{}来涵盖里面的内容必须是键值对!!!必须!!!
字典的键值是唯一的,如果重复后面的会把前面的内容覆盖
读取采用字典名[键名] = 值
循环输出 键 、 值、键值对
采用keys() 、valuse() 、items()
dict5 = {'杨超越':165,'虞书欣':166,'上官喜爱':164} print(dict5.items()) for key,value in dict5.items(): if value > 165: print(key) dict_items([('杨超越', 165), ('虞书欣', 166), ('上官喜爱', 164)]) 虞书欣 results = dict5.values() print(results) dict_values([165, 166, 164]) names = dict5.keys() print(names) dict_keys(['杨超越', '虞书欣', '上官喜爱'])
get() 获取字典里面对应键的值 ,如果没有则返回给定值
del 删除字典 或删除字典里面对应的键值对
pop() 弹出对应键值对(默认最后一位)返回被弹出的键值对
分清字符串、列表、元组、字典、集合(小编自带小技巧)
字符串是引号
元组是括号(一个元素加逗号)
列表是中括号
字典、集合大括号,傻傻分不清怎么办
字典成双成对键值对 ,集合永远单着(不可重复、无序)药可以停,柠檬不行
面向对象
传说中的 对象生成器,妈妈再也不用担心我没有对象了
嘿,有女朋友那个,小心女朋友吃醋
一天一个分手小技巧,关注我!
定义一个类
class 类名(继承类名): def __init__(self,传入参数): #初始化参数 self.传入参数 = 传入参数 def 自定义函数名(self,需要的已经初始化参数): pass(开始构造函数)
这里面涉及到继承,重构等情况,小编接触不多,不敢班门弄斧,有问题可以关注小编,或寻找好的文章
json
一种文件格式,易于数据处理
调用函数inport json
读取文件 json.dumps()
和json.loads()
为了提高可读性,dumps方法提供了一些可选的参数。
sort_keys=True表示按照字典排序(a到z)输出。
indent参数,代表缩进的位数
separators参数的作用是去掉,和:后面的空格,传输过程中数据越精简越好
import json data = [ { 'b' : 2, 'd' : 4, 'a' : 1, 'c' : 3, 'e' : 5 } ] json = json.dumps(data, sort_keys=True, indent=4,separators=(',', ':')) print(json) [ { "a":1, "b":2, "c":3, "d":4, "e":5 } ]
json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。
import json jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}' text = json.loads(jsonData) #将string转换为dict print(text) {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
异常处理
异常处理:我预判了代码预判了我的预判
知道代码可能报错,加上我们的预判,减少概率,保证程序稳定性(不是非常利于后期维护(我不知道哪里被预判了))
使用方法:
try: 执行的代码 except 报错类型: 遇到该类型则执行 没遇到过预判错了继续报错 else: 正常执行的话执行该内容 finally: 无论上面的是否执行我继续我行我素 用于执行必要程序如关闭文档防止丢失
linux命令
命令 | 说明 |
ls | 参考文件列表 |
pwd | 查看当前路径 |
cp | 复制文件或目录 |
mv | 移动或重命名 |
rm | 移除文件或目录(从入门到入狱) |
gzip | 压缩、解压 |
tar | 打包文件或解压 |
zip、unzip | 处理zip文件 |