还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
小甲鱼零基础教学Python什么是?PythonPython是一种高级编程语言,由吉多·范罗苏姆(Guido vanRossum)于1989年圣诞节期间开始设计,强调代码的可读性和简洁性Python的设计哲学是优雅、明确、简单,开发效率极高,被誉为胶水语言,能够轻松连接各种软件根据2025年TIOBE编程语言排行榜,Python已稳居第一位,成为全球最受欢迎的编程语言Python广泛应用于•数据分析与可视化•人工智能与机器学习•Web开发与自动化测试安装与环境配置下载Python访问Python官方网站python.org,根据您的操作系统选择合适的版本下载推荐选择最新的稳定版本安装与配置安装时勾选Add Pythonto PATH选项,便于在命令行中直接使用初学者推荐使用Anaconda套装或自带的IDLE开发环境验证安装打开命令行,输入python--version检查是否安装成功常见安装问题•PATH环境变量未正确设置•权限不足(可尝试管理员身份运行)第一个程序Python经典入门代码运行方式#我的第一个Python程序交互式命令行printHello World!print欢迎来到Python世界!适合测试简短代码,直接在Python解释器中输入命令并立即看到结果这个简单的程序展示了Python的基本语法结构#符号后面的内容是注释,不会脚本文件执行被执行print函数用于在屏幕上显示内容创建.py文件,使用python文件名.py命令执行,适合较长的程序Python特色使用缩进而非花括号来表示代码块,使代码更加清晰易读严格的缩进是Python的标志性特点!基本数据类型数字类型字符串str布尔类型bool•整数int:1,100,-10•文本数据类型•只有两个值:True和False•浮点数float:
3.14,-
0.001•用单引号或双引号表示•用于条件判断•复数complex:1+2j•例如:Python,小甲鱼•注意大小写类型转换与输入类型转换函数input函数•int:转换为整数#获取用户输入并转换为整数age=intinput请输入您的年龄:•float:转换为浮点数print您明年将会,age+1,岁•str:转换为字符串•bool:转换为布尔值变量命名规范变量名只能包含字母、数字和下划线,不能以数字开头建议使用有意义的名称,如user_name而非unPython区分大小写,name和Name是不同的变量运算符与表达式7算术运算符Python提供7种基本算术运算符,用于执行各种数学计算运算符名称示例结果+加法5+38-减法5-32*乘法5*315/除法5/
31.
6666...//整除5//31%取余5%32**幂运算5**3125其他重要运算符赋值运算符比较运算符•=:基本赋值•==,!=:等于,不等于•+=,-=:组合赋值•,,=,=:大小比较•例:x+=5等同于x=x+5•返回值为布尔类型运算优先级运算符优先级从高到低括号幂运算乘除加减使用括号可以明确指定运算顺序,提高代码可读性字符串及常用方法定义字符串的三种方式#单引号s1=小甲鱼Python教程#双引号s2=欢迎学习Python#三引号(可以包含多行文本)s3=这是第一行这是第二行这是第三行字符串操作常用字符串方法•lower:转为小写拼接•upper:转为大写使用+号:Python+
3.9→Python
3.9•strip:去除两端空白•replace:替换字符•split:分割字符串重复•join:连接字符串列表使用*号:Go*3→GoGoGo切片Python[0:2]→PyUnicode与编码Python3默认使用Unicode编码,可以处理任何语言的文字在处理不同编码的文件时,可以使用encode和decode方法进行转换,如text.encodeutf-8列表(List)基础列表定义与访问#列表定义fruits=[苹果,香蕉,橙子,葡萄]#访问元素printfruits
[0]#输出:苹果printfruits[-1]#输出:葡萄#修改元素fruits
[1]=梨#列表变为[苹果,梨,橙子,葡萄]列表操作增加元素删除元素查找元素•append:在末尾添加一个元素•remove:删除指定值的元素•index:查找元素位置•insert:在指定位置插入元素•pop:删除并返回指定位置元素•count:计算元素出现次数•extend:合并另一个列表•del:删除指定位置元素•in运算符:检查元素是否存在列表切片与排序列表切片语法与字符串类似list[start:end:step]可以使用sort方法对列表进行排序,reverse方法反转列表顺序numbers=[3,1,4,1,5,9,2,6]numbers.sort#排序:[1,1,2,3,4,5,6,9]printnumbers[2:5]#切片:[2,3,4]元组与集合元组Tuple集合Set#创建元组coordinates=10,20person=小明,25,北京#访问元素name=person
[0]#小明age=person
[1]#创建集合fruits={苹果,香蕉,橙子}numbers=set[1,2,3,2,1]#{1,2,3}#添加元素fruits.add葡萄#25#尝试修改将导致错误#person
[1]=26#TypeError!#删除元素fruits.remove香蕉集合是无序的,不允许有重复元素主要用于去重和集合运算(交集、并集、差集)元组一旦创建就不可修改(不可变类型)适合存储不应被修改的数据,如坐标点、RGB颜色值等集合运算并集交集A|B或A.unionB AB或A.intersectionB返回A和B中的所有元素返回同时在A和B中的元素对称差集差集A^B A-B或A.differenceB返回只在A或只在B中的元素返回在A中但不在B中的元素字典(dict)深入字典基础字典是Python中的映射类型,使用键值对(key-value)存储数据每个键必须是唯一的、不可变的(通常是字符串或数字)#创建字典student={name:张三,age:20,score:95,city:上海}#访问值printstudent[name]#输出:张三字典常用方法访问与修改遍历字典删除操作•dict[key]:获取值,不存在时报错•dict.keys:返回所有键•del dict[key]:删除指定键值对•dict.getkey:获取值,可设默认返回值•dict.values:返回所有值•dict.popkey:删除并返回值•dict[key]=value:添加或修改键值对•dict.items:返回所有键值对•dict.clear:清空字典•dict.updateother_dict:合并字典•for k,v indict.items:遍历键值应用实例字符频率统计def count_charstext:char_count={}for charin text:if charin char_count:char_count[char]+=1else:char_count[char]=1return char_countresult=count_chars小甲鱼Python教程printresult#输出每个字符出现的次数分支结构if语句基本语法条件表达式•比较运算==,!=,,,=,=if条件1:#条件1为True时执行elif条件2:#条件1为False且条件2为True时执行else:#所有条件都•逻辑运算and,or,not为False时执行•成员判断in,not in•身份判断is,is notPython使用缩进来标识代码块,通常是4个空格条件表达式结果为布尔值,决定执行哪个分支简单实例年龄判断age=intinput请输入您的年龄if age12:print儿童elif age18:print青少年elif age60:print成年人else:print老年人嵌套分支结构1嵌套if语句允许在一个分支内部再次进行条件判断,可以处理更复杂的逻辑,但过度嵌套会降低代码可读性循环结构for/whilefor循环while循环#基本语法for变量in可迭代对象:#循环体#示例遍历列表fruits=[#基本语法while条件:#循环体#示例计数器count=0while count5:苹果,香蕉,橙子]for fruitin fruits:printfruit#使用range printcountcount+=1#无限循环(需要内部break)while True:函数for i in range5:#0,1,2,3,4printi answer=input继续?y/n ifanswer==n:break循环控制语句break continue立即退出整个循环,跳到循环后的下一条语句跳过本次循环剩余部分,直接进入下一次循环for iin range10:if i==5:break#到5就退出printi for iin range10:if i%2==0:continue#跳过偶数#只打印0到4printi#只打印奇数else子句循环正常结束后执行非break退出for iin range5:printielse:print循环正常完成综合实例99乘法表实现原理使用嵌套循环结构来生成九九乘法表,外层循环控制行数,内层循环控制列数利用字符串格式化使输出美观对齐,每一行只显示i×j i≤j的结果代码实现#九九乘法表完整版for iin range1,10:for jin range1,i+1:#使用格式化输出,保持对齐printf{j}×{i}={i*j}\t,end=#每行结束后换行print格式化输出技巧f-string Python
3.6+format方法print参数f{变量}文本{表达式}{:格式}.format值end=参数可以改变输出结尾最简洁直观的字符串格式化方式灵活控制对齐、宽度、精度等sep=参数控制多个值间的分隔符函数基础函数定义与调用#定义函数def greetname:打招呼函数,输出问候语return f你好,{name}!#调用函数message=greet小甲鱼printmessage#输出:你好,小甲鱼!函数由def关键字定义,可包含文档字符串docstring,使用return返回值函数是组织和重用代码的基本单位函数参数必需参数默认参数关键字参数def powerx,n:return x**n#调用时必须提供两个参数result=power2,3def powerx,n=2:return x**n#n有默认值,可以省略result1=power2def studentname,age,city:printf{name},{age}岁,来自{city}#通过#2的3次方=8#2的2次方=4result2=power2,3#2的3次方=8参数名指定,顺序可变studentage=20,city=北京,name=李明常用内置函数基本内置函数高级内置函数lenobj:返回对象长度map:对序列每个元素执行函数typeobj:返回对象类型filter:过滤序列中的元素int,float,str:类型转换zip:将多个序列对应位置元素组合max,min:返回最大/最小值enumerate:返回索引和元素对sum:对数字序列求和any,all:检查序列真值sorted:返回排序后的序列abs,round:数学函数range:生成数字序列dir,help:查看对象信息print,input:输入输出函数式编程示例map函数filter函数lambda表达式#将列表中所有数字平方numbers=[1,2,3,4,#过滤出所有偶数numbers=[1,2,3,4,5,6,#一行代码实现列表平方numbers=[1,2,3,4,5]squares=listmaplambda x:x**2,7,8]evens=listfilterlambda x:x%2==5]squares=[x**2for xin numbers]#列表numbersprintsquares#[1,4,9,16,25]0,numbersprintevens#[2,4,6,8]推导式printsquares#[1,4,9,16,25]Python丰富的内置函数可以帮助我们更高效地编写代码熟练掌握这些函数可以大幅提高编程效率,减少重复代码文件操作基础文件打开与关闭文件读写操作#基本语法file=open文件名,模式#操作文件...file.close#操作完毕后关闭文件#文件打开模式#r:只读模式(默认)##读取整个文件with opendata.txt,r,encoding=utf-8as f:content=f.read printcontent#逐行读取w:写入模式(覆盖原内容)#a:追加模式(在末尾添加)#b:二进制模式(与上面模式组合使用)#t:文本模式(默认)with opendata.txt,r,encoding=utf-8as f:for linein f:printline.strip#去除换行符#写入文件with openoutput.txt,w,encoding=utf-8as f:f.write这是第一行\n f.write这是第二行\nwith语句的优势自动资源管理异常安全代码简洁无需手动关闭文件,离开with块时自动关闭即使发生异常,也能确保文件被正确关闭减少样板代码,使逻辑更清晰实用文件操作示例#简单的文本文件处理def count_wordsfilename:try:with openfilename,r,encoding=utf-8as f:content=f.read words=content.split returnlenwords exceptFileNotFoundError:return f错误文件{filename}不存在#调用函数printf文件中共有{count_wordsarticle.txt}个单词异常处理异常基础异常是程序执行过程中发生的错误Python使用try/except机制捕获并处理异常,避免程序崩溃#基本异常处理结构try:#可能发生异常的代码num=intinput请输入一个数字:result=10/num printf结果是:{result}except ValueError:#处理输入不是数字的情况print输入无效,请输入一个数字except ZeroDivisionError:#处理除以零的情况print不能除以零完整的异常处理结构try:#可能发生异常的代码num=intinput请输入一个数字:result=10/numexcept ValueError:#处理特定类型的异常print输入无效,请输入一个数字except ZeroDivisionError:#处理另一种类型的异常print不能除以零except Exceptionas e:#捕获所有其他异常printf发生错误:{e}else:#没有异常发生时执行printf结果是:{result}finally:#无论是否发生异常都会执行print计算结束模块与包模块基础包结构模块是包含Python定义和语句的文件,以.py为扩展名使用模块可以组织代码,提高可维护性和可重用性包是一种组织模块的方式,本质上是包含__init__.py文件的目录包可以包含子包和模块,形成层次结构#导入整个模块import mathprintmath.pi#使用math模块中的pi常量#导入特定内容from randomimport randintprintrandint1,10#my_package/__init__.py module
1.py module
2.py subpackage/__init__.py module
3.py module
4.py生成1到10的随机数#导入并重命名import numpyas nparr=np.array[1,2,3]导入包中的模块from my_package importmodule1from my_package.subpackage importmodule3常用标准库模块math random数学函数模块,提供三角函数、对数、幂运算等数学运算随机数生成模块,用于生成随机数、随机选择元素、随机排序等time/datetime os/sys时间日期处理模块,用于获取当前时间、时间格式化、时间计算等操作系统接口模块,提供与操作系统交互的功能,如文件路径操作、系统命令等json/csv urllib/requests数据格式处理模块,用于处理JSON、CSV等常见数据格式网络请求模块,用于发送HTTP请求、下载网络资源等创建自定义模块#文件:mymath.pydef squarex:计算平方return x**2def cubex:计算立方return x**3PI=
3.14159#模块级常量if__name__==__main__:#当作为脚本运行时执行,作为模块导入时不执行print测试:5的平方是,square5面向对象基础类与对象类class是对象的蓝图,定义了对象的属性和方法对象是类的实例,代表类的具体实现#定义一个简单的类class Dog:#初始化方法(构造函数)def__init__self,name,age:self.name=name#实例属性self.age=age#实例方法def barkself:return f{self.name}正在汪汪叫!def get_infoself:return f{self.name}今年{self.age}岁#创建类的实例(对象)my_dog=Dog小黑,3printmy_dog.bark#调用方法printmy_dog.name#访问属性类的组成部分属性方法self关键字•实例属性每个实例独有,在__init__中定义•实例方法第一个参数为self,操作实例属性•代表类的实例,是实例方法的第一个参数•类属性所有实例共享,直接在类中定义•类方法@classmethod装饰,第一个参数为cls•用于在方法内部访问实例的属性和其他方法•私有属性以双下划线开头__name,类外无法直接访问•静态方法@staticmethod装饰,不需要参数•调用方法时无需显式传递self,Python自动传递•魔术方法以双下划线包围,如__init__、__str__等扩展示例学生类class Student:#类属性school=Python编程学校#构造方法def__init__self,name,student_id,score=60:self.name=name#公开属性self.__id=student_id#私有属性self.score=score#实例方法def get_idself:return self.__id defstudyself,hours:self.score+=hours*
0.5if self.score100:self.score=100return f{self.name}学习了{hours}小时,当前分数为{self.score}#魔术方法,打印对象时调用def__str__self:return f学生:{self.name},分数:{self.score}#创建学生对象zhang=Student张三,2023001,85printzhang#打印对象printzhang.study10#调用方法类的继承与多态继承基础继承允许一个类子类获取另一个类父类的属性和方法子类可以重写父类的方法,或添加新的属性和方法#父类class Animal:def__init__self,name:self.name=name def speakself:pass#空方法,等待子类重写#子类class DogAnimal:defspeakself:return f{self.name}说汪汪汪!class CatAnimal:defspeakself:return f{self.name}说喵喵喵!#创建对象dog=Dog小黑cat=Cat咪咪printdog.speak#输出小黑说汪汪汪!printcat.speak#输出咪咪说喵喵喵!多态多态指不同类的对象对相同消息作出不同的响应在Python中,通过方法重写实现多态#展示多态def animal_soundanimal:接受任何实现了speak方法的对象printanimal.speak#传入不同类型的对象,得到不同的行为animal_sounddog#输出小黑说汪汪汪!animal_soundcat#输出咪咪说喵喵喵!GUI入门TkinterTkinter简介Tkinter是Python的标准GUI图形用户界面库,基于Tk工具包,提供了创建窗口、按钮、文本框等界面元素的功能优点•Python标准库,无需额外安装•跨平台,支持Windows、macOS和Linux•简单易学,适合初学者•足够满足一般应用需求创建第一个窗口import tkinteras tk#创建主窗口root=tk.Tkroot.title我的第一个GUI应用root.geometry400x300#设置窗口大小#添加标签label=tk.Labelroot,text=你好,Tkinter!,font=宋体,16label.packpady=20#添加按钮def button_click:label.configtext=按钮被点击了!button=tk.Buttonroot,text=点击我,command=button_clickbutton.packpady=10#启动事件循环root.mainloop正则表达式基础正则表达式简介正则表达式Regular Expression是一种强大的文本匹配和处理工具,可用于搜索、替换、验证文本模式Python通过re模块提供正则表达式支持,用于复杂的字符串处理常用元字符元字符含义示例.匹配任意字符除\n外a.b匹配acb,adb等^匹配开始位置^abc匹配以abc开头的字符串$匹配结束位置abc$匹配以abc结尾的字符串简单爬虫案例网络爬虫简介网络爬虫是一种自动获取网页内容的程序,Python因其简洁的语法和丰富的库,成为爬虫开发的热门语言基本爬虫流程
1.发送HTTP请求获取网页
2.解析HTML提取所需数据
3.处理和存储数据常用爬虫库urllib requestsPython标准库,用于处理URL和HTTP请求优雅简单的HTTP库,使用更加方便Beautiful SouplxmlHTML/XML解析库,便于提取数据高性能的XML/HTML解析器豆瓣电影Top250爬虫示例import requestsfrombs4import BeautifulSoupimportcsvdef crawl_douban_top250:#请求头,模拟浏览器headers={User-Agent:Mozilla/
5.0Windows NT
10.0;Win64;x64AppleWebKit/
537.36}#存储结果的列表movies=[]#爬取第一页url=https://movie.douban.com/top250response=requests.geturl,headers=headers ifresponse.status_code==200:#解析HTML soup=BeautifulSoupresponse.text,html.parser movie_list=soup.findol,class_=grid_view.find_allli#提取电影信息for moviein movie_list:title=movie.findspan,class_=title.text rating=movie.findspan,class_=rating_num.text quote=movie.findspan,class_=inq quote=quote.text ifquote else暂无简评movies.append[title,rating,quote]#保存到CSV文件with opendouban_top
250.csv,w,newline=,encoding=utf-8as f:writer=csv.writerf writer.writerow[电影名,评分,简评]writer.writerowsmovies return f成功爬取{lenmovies}部电影信息else:return f请求失败,状态码{response.status_code}#运行爬虫printcrawl_douban_top250异步与多线程并发编程简介并发编程允许程序同时执行多个任务,提高执行效率,尤其适用于I/O密集型任务(如网络请求、文件操作)Python提供多种并发编程方式•多线程(threading模块)•多进程(multiprocessing模块)•异步IO(asyncio模块)Python线程模块import threadingimporttimedef taskname,seconds:线程执行的任务printf任务{name}开始time.sleepseconds#模拟耗时操作printf任务{name}完成,耗时{seconds}秒#创建多个线程threads=[]foriinrange3:t=threading.Threadtarget=task,args=f线程{i+1},i+1threads.appendt t.start#启动线程#等待所有线程完成for tin threads:t.joinprint所有线程已完成使用Pygame开发小游戏Pygame简介Pygame是Python的游戏开发库,基于SDLSimple DirectMediaLayer,提供了图形、声音、输入等游戏开发所需的功能主要功能•图形绘制和图像处理•声音和音乐播放•键盘、鼠标和游戏手柄输入•碰撞检测•精灵Sprite系统Pygame安装与基本结构#安装Pygame#pip installpygameimport pygameimportsys#初始化Pygamepygame.init#创建游戏窗口screen=pygame.display.set_mode800,600pygame.display.set_caption我的第一个Pygame游戏#游戏循环running=Truewhile running:#处理事件for eventinpygame.event.get:if event.type==pygame.QUIT:running=False#游戏逻辑更新#绘制屏幕screen.fill0,0,0#填充黑色背景#更新显示pygame.display.flip#退出游戏pygame.quitsys.exit项目实战记账本项目概述开发一个简单的个人记账应用,实现收入支出记录、数据存储与可视化、图形用户界面等功能主要功能•添加、删除、查询收支记录•按日期、类别筛选记录•生成收支统计报表•数据持久化存储•图形化用户界面项目结构accounting_app/├──main.py#主程序入口├──models.py#数据模型├──storage.py#数据存储├──gui.py#图形界面├──report.py#报表生成└──data/#数据文件目录└──records.json核心代码示例案例拓展微信机器人微信机器人简介利用Python开发微信机器人,可以实现自动回复、消息监控、群管理等功能,提高社交媒体运营效率主要应用场景•客服自动回复•信息推送与提醒•群聊管理与数据统计•定时任务执行实现方案itchat库WeChatPy企业微信API基于网页版微信的Python API,使用简单,适合个人开发者支持微信公众号API的Python库,适合开发公众号应用适合企业内部应用开发,官方支持,稳定性好示例代码简单微信机器人#需要安装itchat库:pip installitchatimport itchatimportreimport time#登录微信itchat.auto_loginhotReload=True#关键词回复字典replies={你好:你好!我是小甲鱼机器人,有什么可以帮助你的吗?,Python:Python是一种编程语言,由Guido vanRossum创建,特点是简洁易读,教程:小甲鱼Python教程是一套优秀的Python入门学习资料,详情请访问官网}#处理收到的文本消息@itchat.msg_registeritchat.content.TEXTdef text_replymsg:#获取消息内容content=msg[Text]#检查是否包含关键词for keyword,reply inreplies.items:if keywordin content:return reply#没有匹配到关键词return我还在学习中,暂时无法回答您的问题#处理群消息@itchat.msg_registeritchat.content.TEXT,isGroupChat=Truedef group_text_replymsg:#获取群名称group_name=msg[User][NickName]#获取发送者username=msg[ActualNickName]#消息内容content=msg[Text]#如果有人@机器人(需要自己的微信名)if msg[IsAt]and小甲鱼机器人in content:returnf@{username}我在这里,有什么可以帮助你的吗?#关键词触发if Python学习in content:return推荐学习小甲鱼Python教程,浅显易懂,非常适合初学者#启动机器人itchat.run行业应用与就业前景数据分析人工智能Web开发Python是数据分析的首选语言,配合Pandas、NumPy、Matplotlib等库,可进行数据清洗、转换、可视化和在机器学习和深度学习领域,Python通过TensorFlow、PyTorch、Scikit-learn等框架,成为AI开发的主导语利用Django、Flask等框架,Python可以快速开发功能强大的网站和Web应用,适合全栈开发统计分析言Python职业发展路径入门级开发专业开发者初级Python工程师,掌握基础语法和常用库,能完成简单任务中级工程师,精通某一领域(如Web、数据、自动化),能独立开发项目架构师/团队领导高级专家常见问题答疑与学习建议初学者常见误区过度理论学习忽视基础只读书不动手,理论与实践脱节应当边学边做,通过项目巩固知识急于学习高级内容,基础不牢打好语法、数据结构等基础,是进阶的关键孤立学习缺乏目标缺乏交流与反馈加入学习社区,与他人分享代码,获取改进建议没有明确的学习方向设定具体目标,如完成特定项目或解决实际问题高效学习策略理解基础概念编写大量代码系统学习Python基础语法和核心数据结构,打好基础每天至少编写100行代码,实践是最好的学习方式完成实际项目分享与交流从小项目开始,逐步增加复杂度,解决实际问题加入社区,分享代码,获取反馈,持续改进推荐学习资源在线教程实践平台•小甲鱼Python零基础教程•LeetCode算法练习•廖雪峰Python教程•GitHub项目托管与分享•Python官方文档•Kaggle数据科学竞赛•Real Python•CodeWars编程挑战•Python编程从入门到实践书籍•ProjectEuler数学编程问题学习金句编程能力来自实践,而非阅读即使是最简单的项目,也比阅读一百页教程更有价值遇到问题不要轻易放弃,解决问题的过程是最宝贵的学习经历总结与学习展望课程回顾我们从Python基础语法开始,系统学习了数据类型、控制结构、函数、模块等核心内容,进而探索了面向对象编程、文件操作、GUI开发等进阶主题,最后通过实际项目巩固所学知识Python作为一种优雅、强大且易用的编程语言,已成为数据分析、人工智能、Web开发等领域的首选工具掌握Python不仅能提高工作效率,还能开拓更广阔的职业发展空间持续学习的方向深入特定领域参与开源项目选择一个感兴趣的方向(如数据科学、Web开发、自动化测试等)深入学习相关库和框架加入GitHub上的开源项目,阅读优质代码,提交Pull Request,与社区互动学习构建个人项目学习相关技术开发解决实际问题的项目,建立个人作品集,展示自己的技术能力扩展技术栈,学习数据库、Linux、Git等与Python配合使用的工具和技术鱼C社区欢迎您视频教程。
个人认证
优秀文档
获得点赞 0