百度飞桨学院小白课程第二天深度解析(小白系列)

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 百度飞桨学院小白课程第二天深度解析(小白系列)

三岁学编程,白话解析与复习飞桨小白课程第二天,回顾汇总,没有听懂的可以作为参考

参考资料: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为步长(就是间隔多少取一次)


image.jpeg


读取顺序

具体的参考飞桨官网或字符串解析文章(上方有链接接口)

视频直达: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


image.png


元素全部获取可以用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文件


目录
相关文章
|
3天前
|
JSON 前端开发 API
程序技术好文:百度网盘真实地址解析(告别下载百度网盘)
程序技术好文:百度网盘真实地址解析(告别下载百度网盘)
|
1月前
|
Android开发
Flutter完整开发实战详解(六、 深入Widget原理),2024百度Android岗面试真题收录解析
Flutter完整开发实战详解(六、 深入Widget原理),2024百度Android岗面试真题收录解析
|
1月前
|
域名解析 缓存 网络协议
dpdk课程学习之练习笔记四(dns预备)
dpdk课程学习之练习笔记四(dns预备)
45 0
|
1月前
|
Linux
百度搜索:蓝易云【深入解析Linux进程内存:VSS、RSS、PSS、USS及查看方式】
通过以上方法,你可以深入了解Linux进程的内存使用情况,包括VSS、RSS、PSS、USS等指标,帮助你进行性能优化和资源管理。
75 12
|
1月前
|
传感器 机器学习/深度学习 自动驾驶
百度Apollo:激光雷达检测技术深度解析
百度Apollo:激光雷达检测技术深度解析
84 2
|
1月前
|
网络协议 Ubuntu 数据安全/隐私保护
百度搜索:蓝易云【Ubuntu中解决E:Failed to fetch问题(修改DNS)】
现在,你可以尝试再次运行更新或安装软件包的命令,应该不再遇到 "E: Failed to fetch" 错误。通过修改DNS设置,你将使用新的DNS服务器解析域名,提高了系统连接互联网的稳定性和可靠性。
193 4
|
11月前
|
移动开发 JavaScript 前端开发
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
168 0
|
8月前
|
域名解析 网络协议 安全
百度搜索:蓝易云【为什么DNS使用UDP而不是TCP详解!】
综上所述,DNS选择使用UDP协议主要是基于性能、效率和低延迟的考虑。尽管UDP存在一些限制,但在大多数情况下,UDP足以提供快速且可靠的域名解析服务。
138 2
|
9月前
|
网络协议 Linux
百度搜索:蓝易云【Centos7系统配置DNS服务】
在CentOS 7系统中配置DNS服务有很多不同的方法,本文将介绍两种最常用的方法:使用NetworkManager和使用resolv.conf文件。
160 0
|
11月前
|
搜索推荐 数据可视化 JavaScript
数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)
数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)
151 1

推荐镜像

更多