当前位置: 首页 > news >正文

2.初识网络代码——python基础代码

Python深度学习入门:从基础语法到PyTorch实战

1. Python语言简介

Python是一门简洁、易读、功能强大的高级编程语言,以其接近人类自然语言的语法特点而广受欢迎。在深度学习领域,Python凭借其丰富的科学计算库(如NumPy、PyTorch、TensorFlow)和简洁的语法,成为了研究和开发的首选语言。

Python的核心优势:

  • 语法简洁:代码可读性高,学习曲线平缓
  • 生态丰富:拥有庞大的第三方库支持
  • 跨平台:可在Windows、Linux、macOS等多个操作系统上运行
  • 社区活跃:遇到问题可以快速找到解决方案

对于深度学习初学者来说,掌握Python基础是进入AI领域的必经之路。本文将从Python基础语法讲起,逐步深入到深度学习所需的NumPy和PyTorch库的使用。

2. Python基础数据结构

在Python中,数据结构是组织和存储数据的方式。掌握以下五种基本数据类型是编写Python程序的基础:

2.1 数值类型:整型与浮点型

整型(int)用于表示整数,浮点型(float)用于表示小数。Python的变量使用非常灵活,无需显式声明类型。

# 整型示例a=3# Python的变量使用之前不需要声明,而是根据内容自动分配类型# a = 3.0 按Ctrl+/可以快速注释选中代码print(a)b=4print(b)print(a,b)a,b=b,a# Python支持多变量赋值,这是Python特有的简洁语法print(a,b)

运行结果:

浮点型示例

name="ligekaoyan"# 字符串可以用单引号或双引号print(name)print(name[2])# 字符串支持索引访问,索引从0开始

运行结果:

2.2 列表(List)

列表是Python中最常用的数据结构之一,用于存储有序的元素集合。

2.2.1 基础用法
# 列表 list []list1=[1,2,3,4,5]print(list1)print(list1[2])# 访问第三个元素(索引从0开始)print(list1[-1])# 负索引是Python中非常强大的功能,-1表示最后一个元素dict1={"name":"ligekaoyan","age":28,20:80}# 字典list2=[1,"art",dict1]# 列表可以嵌套其他数据类型,包括字典print(list2)

运行结果:

2.2.2 列表的切片、插入与删除

切片操作是Python列表的强大功能,可以方便地获取子列表:

list1=[1,2,3,4,5]foreachinlist1:print(each)print(list1[1:4])# [2, 3, 4],左闭右开区间print(list1[0:4])# [1, 2, 3, 4]print(list1[1:-1])# [2, 3, 4],-1表示最后一个元素print(list1[1:])# [2, 3, 4, 5],冒号后不写默认到末尾print(list1[:])# [1, 2, 3, 4, 5],复制整个列表foreachinlist1[1:4]:print(each)

运行结果:

删除操作

list2=[1,2,3,10,5]print(list2)list2.remove(10)# 删除指定值的元素print(list2)list2=[1,2,3,10,5]dellist2[3]# 删除指定索引的元素print(list2)

运行结果:

增加操作

list2=[1,2,3,4,5]list2.append(7)# 在末尾添加一个元素print(list2)list2.extend([8,9])# 在末尾添加另一个列表的所有元素print(list2)# 列表推导式:快速构建列表的简洁语法list2=[iforiinrange(1,10,2)]# 生成1到9的奇数列表print(list2)# 等价写法list3=[]foriinrange(10):list3.append(i)print(list3)

运行结果:

2.3 字典(Dictionary)

字典是Python中的键值对集合,类似于其他语言中的Map或哈希表。

# 字典 dict {}# 格式:key : valuedict1={"name":"ligekaoyan","age":28,20:80}# 键可以是字符串、数字等不可变类型print(dict1["name"])# 用key作为索引来访问valueprint(dict1["age"])print(dict1[20])

运行结果:

字典的特点:

  • 键必须是不可变类型(字符串、数字、元组)
  • 值可以是任意类型
  • 通过键快速访问值,时间复杂度为O(1)

3. Python基本语句与流程控制

要掌握一门编程语言,首先需要理解其四种基础语句类型:赋值语句、条件判断、循环语句和函数定义。这些构成了程序逻辑的骨架。

3.1 赋值语句(陈述)

赋值语句用于给变量分配值,这是最基本的操作。Python支持多种赋值方式:

  • 简单赋值:a = 3
    ÿ09- 多重赋值:a, b = 1, 2
    ÿ09- 链式赋值:a = b = c = 0

3.2 条件判断(if语句)

条件判断让程序能够根据不同的情况执行不同的代码块,这是实现逻辑控制的基础。

a=3ifa==3:# 条件后面必须有冒号print("正确的")# Python中使用缩进来表示代码块,通常使用4个空格print("今天天气不错")ifa==4:print("错误的1")print("错误的2")# 这行不属于任何if语句,总是会执行

运行结果:

嵌套条件判断

a=3b=4ifa==3:ifb>3:print("b大于3")else:print("b不大于3")# Shift+Tab可以取消缩进

运行结果:

None值的判断

A=None# None表示空值,类似于其他语言中的nullifA==None:print("A为空")

运行结果:

3.3 循环语句

循环用于重复执行某段代码,Python提供了forwhile两种循环。

for循环

# for i in 可迭代对象list1=[1,2,3,4,5]foriinlist1:print(i)

运行结果:

range()函数:生成一个整数序列,常用于控制循环次数

foriinrange(10):# [0, 10),不包含10print(i)print("----------")foriinrange(1,10,2):# 从1开始,到10结束(不包含),步长为2print(i)

运行结果:

遍历字典

dict1={"name":"ligekaoyan","age":28,20:80}print(dict1)foreachindict1:# each是常用的遍历变量名print(each)# 打印keyprint(dict1[each])# 打印value

运行结果:

while循环

i=0whilei<10:# 相比C语言,Python的while语句少括号多冒号i=i+1# Python没有i++语法print(i)

运行结果:

3.4 函数

函数是组织代码的基本单元,可以提高代码的复用性和可读性。

基本算术运算

a=3b=2print(a+b)# 加法print(a-b)# 减法print(a*b)# 乘法print(a/b)# 除法,返回浮点数print(a//b)# 整除(向下取整除法),和C语言除法类似print(a**b)# 幂运算,a的b次方

运行结果:

自定义函数

# 计算a的平方defmyfunc1(a):c=a**2returnc a=3print(myfunc1(a))# 计算a的b次方defmyfunc2(a,b):returna**b a=3b=3print(myfunc2(a,b))# 默认参数:如果传入b就返回a的b次方,否则返回a的平方defmyfunc3(a,b=2):returna**b a=3print(myfunc3(a))# 使用默认参数b=2print(myfunc3(a,3))# 传入b=3

运行结果:

函数设计原则:

  1. 单一职责:一个函数只做一件事
  2. 参数明确:参数名要有意义,必要时添加类型提示
  3. 返回值清晰:明确函数返回什么
  4. 文档注释:使用docstring说明函数功能

5.numpy库的作用

numpy深度学习中非常重要的一个库

importnumpyasnp#进行缩写list1=[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]print(list1)array1=np.array(list1)#转化为矩阵print(array1)array2=np.array(list1)array3=np.concatenate((array1,array2),axis=1)#拼接,axis=1横向拼接(向右),axis=0竖向拼接(向下)print(array3)

结果


切片

list1=[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]print(list1)array1=np.array(list1)#转化为矩阵#矩阵的切片功能更强大print(list1[1:3])print(array1[1:3,1:3])#跳着切idx=[1,3]print(array1[:,idx])

结果

6.torch库与tensor

6.1张量

张量是一个升级版矩阵,它能表示的维度更多,它的计算速度更快

importtorchimportnumpyasnp list1=[[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]print(list1)array1=np.array(list1)#转化为矩阵print(array1)tensor1=torch.tensor(list1)#转化为张量print(tensor1)print(tensor1.shape)

结果

张量可以用来求梯度

#求梯度x=torch.tensor(3.0)x.requires_grad_(True)#告诉张量,需要求梯度,否则求梯度时会报错y=x**2y.backward()#求梯度print(y)print(x.grad)# x.grad.zero_() #清空梯度,否则会累加y2=x**2y2.backward()print(y2)print(x.grad)

这里没有情况梯度,第二次的梯度结果是错误的

再来看清空之后的情况

#求梯度x=torch.tensor(3.0)x.requires_grad_(True)#告诉张量,需要求梯度y=x**2y.backward()#求梯度print(y)print(x.grad)x.grad.zero_()#清空梯度,否则会累加y2=x**2y2.backward()print(y2)print(x.grad)

结果

6.2张量的创建与求和

#创建张量tensor1=torch.ones(10,4)#创建全1张量print(tensor1)tensor2=torch.zeros(10,4)#创建全0张量print(tensor2)tensor3=torch.rand(10,4)#创建随机张量print(tensor3)tensor4=torch.normal(mean=10,std=1,size=(10,4))#创建正太分布张量print(tensor4)#求和tensor1=torch.ones(10,4)sum1=tensor1.sum(dim=1,keepdim=True)#dim 1求行和,keepdim=True 保留维度print(sum1)print(tensor1.shape)

结果

6.3引用

我们不会在一个文件里面完成所有工作,可以通过引用来传递数据

frommytensorimporttensor1#引用会把mytensor先运行一遍frommyclassimportsupermanprint(tensor1)lige=superman('ligekaoyao',28)

结果

7.总结

总的来说,通过本课学习,了解了python基础的数据结构,基本语句,类与继承,numpy,tensor,torch等

我终于对类与继承这些面向对象编程的内容有所了解

http://www.jsqmd.com/news/977181/

相关文章:

  • 摆脱论文困扰!2026年好用AI论文网站榜单,毕业论文免费写还合规
  • 2026年深圳工业设计公司推荐榜单:产品外观/结构设计/医疗器械/机械设备/机器人设计一站式优选 - 企业推荐官【官方】
  • ArduPilot自动驾驶系统核心技术架构深度解析
  • 天辛大师再谈高考作文,词语的理解,AI时代的何以传承
  • 大湾区哪家 EMBA 机构比较靠谱?优选机构详细盘点 - 品牌测评鉴赏家
  • 若依框架导出Excel合并行功能详解:从注解配置到源码改造的完整指南
  • 通达信ChanlunX缠论插件:3分钟实现股票走势智能识别,告别手动画线烦恼
  • 百步亭空调维修|百步亭空调移机|百步亭空调加氟|百步亭空调回收 高性价比宅到家快速上门 - 武汉宅到家
  • 6/8
  • 手机 Vibe Coding 半年,终于从能跑到真爽了
  • 终极杀戮尖塔模组管理器:3步开启无限游戏可能
  • 深度解析XHS-Downloader数据持久化架构:高级实战与性能优化指南
  • OpenClaw + Ollama + 火山引擎:本地化 AI Agent 完整部署指南
  • LPC55系列ADC硬件触发与采样时间计算实战指南
  • MC68HC12嵌入式开发:D-Bug12监控程序函数库调用全解析
  • 开源LCA软件openLCA:3小时从零搭建专业级生命周期评估平台
  • 在职攻读应用心理学硕士怎么选?多品牌实测,靠谱机构一目了然 - 品牌测评鉴赏家
  • 合并采集数据图片进展AI识别
  • 在职读EMBA哪家机构靠谱?十大优质在职EMBA机构推荐 - 品牌测评鉴赏家
  • 计算机小程序毕设实战-基于python的档案室档案宝微信小程序【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 2026 石家庄防水补漏服务商口碑测评榜单|全屋渗漏维修机构优选指南 - 宅安选房屋修缮
  • 2026年 苏州西服定制推荐榜单:婚礼西服/商务西服/意式西服/全麻衬西服,资深匠人刘建平绅装会纯手工量体,进口面料与专业口碑之选 - 品牌发掘
  • 信创环境避坑实录:在飞腾2000+银河麒麟V10上,用Docker 19.03.9部署达梦8.1数据库
  • Navicat无限试用终极指南:macOS用户必备的14天限制破解方案
  • 网盘限速太折磨?试试这个神奇的网盘直链提取工具
  • 蓝牙官方协议PDF合集:安全架构、简易配对、HID/SIM/AVRCP等核心规范与航空射频合规文档
  • 技术栈无关化设计:MyEMS 能源中台的兼容层架构与开源
  • 深入SM4算法S盒:用C语言手动实现查表与优化技巧
  • 2026 年广东正规婚恋相亲平台优质机构推荐指南 广东也在网优选 线上婚恋交友 / 本地相亲婚恋服务 - 海棠依旧大
  • 阅见微光,手造自然——清净禅林AI雅集圆满举行 - GrowthUME