还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
入门自学教程Python欢迎来到入门自学教程!这是一门专为零基础学习者设计的Python编程课程无论您是想要开始编程生涯,还是希望掌握这门全球Python流行的编程语言,本教程都将带您循序渐进地学习的基础知识和Python实践应用我们将从的基本概念开始,逐步深入到更高级的主题,包括数据Python类型、控制流程、函数、模块、文件操作等内容每个主题都配有详细的解释和实例,帮助您更好地理解和应用所学知识让我们一起开始这段学习之旅,探索编程世界的无限可能!Python课程介绍适合零基础学习者系统全面的内容包含实例与练习本课程专为没有任何编程基础的课程内容覆盖基础语法、每个知识点配备丰富的代码示例Python学习者设计,采用通俗易懂的语数据结构、函数编程、文件操作、和练习题,帮助您巩固所学内容言讲解编程概念,让您轻松入门异常处理等核心知识点,为您构并提升实际编程能力通过动手世界无需担心缺乏计算建完整的知识体系按照实践,加深对理论知识的理解,Python Python机背景,我们将从最基础的概念学习难度逐步递进,确保学习过培养解决问题的能力开始讲解程循序渐进是什么?Python的定义的特点Python Python是一种解释型、高级、通用型编程语言,由荷兰人简洁易学语法简单直观,适合初学者Python•于年创建它的设计哲学强调代码Guido vanRossum1991开源免费可自由使用和分发•的可读性和简洁性,使用缩进而非花括号来标识代码块可扩展性强丰富的第三方库支持•作为一种跨平台语言,Python可以在Windows、MacOS、•跨平台适用于多种操作系统等各种操作系统上运行,具有极高的兼容性和便携性Linux据统计,年成为全球第二热门的编程语言,在2019Python此外,是完全开源的,拥有庞大的社区支持Python数据科学、人工智能等领域占据主导地位其简洁的语法和强大的生态系统使其成为初学者和专业人士的首选语言应用领域PythonWeb开发数据分析Python拥有Django、Flask等强大的Web框架,可用于开发功能丰富的网站借助NumPy、Pandas和Matplotlib等库,Python已成为数据分析的首选工具和Web应用Instagram、Pinterest和Spotify等知名网站都使用Python构建它能轻松处理大量数据,进行复杂的统计分析和可视化,为商业决策提供数其简洁的语法和丰富的库使Web开发变得高效而灵活据支持金融、医疗和科研领域广泛应用Python进行数据挖掘人工智能自动化运维Python是机器学习和深度学习领域的主导语言,TensorFlow、PyTorch和Python脚本可以自动化执行系统管理任务,如批量文件处理、服务监控和网Scikit-learn等库使复杂的AI算法实现变得简单Google、Facebook等科技巨络管理系统管理员和DevOps工程师常用Python编写脚本,提高工作效率,头大量使用Python开发AI应用,从图像识别到自然语言处理减少人为错误,实现自动化运维安装Python访问官方网站打开浏览器,访问Python官方网站www.python.org,点击Downloads菜单,选择适合您操作系统的最新版本下载目前推荐下载Python
3.x版本,因为Python
2.x已于2020年停止维护运行安装程序双击下载的安装文件启动安装向导在Windows系统中,建议勾选Add Pythonto PATH选项,这样可以在命令行中直接使用Python命令,无需手动配置环境变量验证安装安装完成后,打开命令提示符Windows或终端MacOS/Linux,输入命令python--version或python-V,如果显示Python版本号,则表示安装成功此时,您已经可以开始Python编程之旅了配置开发环境配置环境变量选择编辑器安装包管理器在系统中,代码可以在任是的包管理Windows Python pip Python如果安装时没有勾选何文本编辑器中编写,工具,用于安装和管但使用专业的集成开理第三方库最新版Add Pythonto,需要手动添发环境能提高编通常已包含,PATH IDEPythonpip加安装路径到程效率提可以通过命令Python PyCharmpip--系统环境变量右击供全面的功能但占用检查使用version此电脑属性高资源较多;包名命令→→VS Codepip install级系统设置环境轻量灵活,通过扩展可以安装所需的→变量,在变量中支持;库,为您的开Path PythonJupyter Python添加安装目录适合数据分发工作提供强大的工Python Notebook和目录析和交互式编程具支持Scripts第一个程序Python创建Python文件打开您选择的编辑器,创建一个新文件,将其保存为文件扩展hello.py名表明这是一个源代码文件您可以将文件保存在任何方便访.py Python问的位置,如桌面或文档文件夹编写代码在文件中输入经典的第一行代码这行简单的printHello,World!代码使用函数在屏幕上显示文本的print Hello,World!Python print函数用于输出内容,是最基础也是最常用的函数之一运行程序有两种运行程序的方式一是通过命令行,导航到文件所Python在目录,输入执行;二是在中直接运行,如python hello.py IDE在中点击运行按钮无论哪种方式,您都应该看到屏幕PyCharm上显示,这标志着您成功运行了第一个程序!Hello,World!Python变量与命名规则变量的基本概念变量是用于存储数据的容器,可以随时修改其内容在Python中,创建变量非常简单,只需使用赋值语句,如message=HelloPython是动态类型语言,变量类型会根据赋值自动确定,无需事先声明命名规则Python变量命名有几个重要规则必须以字母或下划线开头,只能包含字母、数字和下划线,区分大小写name和Name是不同的变量此外,不能使用Python的关键字作为变量名,如if、for、while等命名约定遵循良好的命名约定有助于代码可读性变量名应有描述性,表明其用途;通常使用小写字母,多个单词用下划线连接如user_name;常量名通常全大写如MAX_VALUE;类名使用驼峰命名法如UserProfile注释与文档单行注释多行注释代码可读性建议中的单行注释以符号开始,直没有专门的多行注释语法,但保持代码可读性的关键是适度注释和Python#Python到该行结束编译器会忽略注释内容,可以使用三重引号或创建多行字良好的代码风格不要过度注释明显但它们对理解代码非常重要单行注符串作为注释这种方式特别适合编的操作,而应关注解释复杂逻辑或算释可以独占一行,也可以在代码行末写函数或模块的文档字符串法遵循风格指南,保持一致PEP8尾添加的缩进和命名约定,使用空行分隔逻docstring辑块,这些都有助于提高代码可读性#这是一个单行注释name=Zhang San#这也这是多行注释或文档字符串是注释可以跨越多行输入与输出基本输入函数input使用函数从用户获取输入,该函数会暂停程序执行,等待用户输入内容并按回车键Python input函数返回的总是字符串类型,如需其他类型需进行转换input输入类型转换由于返回字符串,对于数值计算,需要使用或函数进行转换input intfloat例如请输入年龄将输入转换为整数age=intinput基本输出函数print函数用于将信息显示在屏幕上,可以输出字符串、print数字或变量,还支持格式化输出多个参数用逗号分隔,会在参数间自动添加空格print基本数据类型整数int浮点数float整数类型表示没有小数部分的数字,如
1、
100、-10等浮点数表示带小数点的数字,如
3.
14、-
0.001等注意浮点Python支持任意大小的整数,不会溢出,可以进行加减乘除数可能存在精度问题,不适合用于需要精确计算的金融场景等数学运算字符串str布尔值bool字符串是一系列字符的集合,用单引号或双引号括起来,如布尔类型只有True和False两个值,用于表示逻辑条件的真hello、PythonPython支持强大的字符串操作和处理功假布尔值常用于条件判断和循环控制能数字类型详解运算符描述示例结果+加法5+38-减法5-32*乘法5*315/除法5/
31.
6666...//整除5//31%取余5%32**幂运算5**3125Python中的整数int可以表示任意大小的整数,不会像其他语言那样有大小限制,这使得Python很适合处理大数据计算浮点数float则用于表示带小数点的数字,但需要注意浮点数计算可能会有精度误差,例如
0.1+
0.2可能不会精确等于
0.3如果需要精确的小数计算,可以使用decimal模块字符串操作基础字符串常用方法长度计算len函数用于获取字符串的长度len你好返回2大小写转换upper将字符串转为大写,lower转为小写,title将每个单词首字母大写查找替换find或index查找子串位置,replace替换字符串内容分割与连接split按指定分隔符分割字符串,join将多个字符串连接为一个Python字符串还提供了许多其他实用方法,例如strip用于去除字符串两端的空白或指定字符,startswith和endswith检查字符串是否以特定子串开始或结束,isdigit、isalpha等方法用于检查字符串的内容类型这些字符串方法让文本处理变得简单高效,是Python在文本分析、自然语言处理等领域广受欢迎的重要原因之一掌握这些基本方法,将大大提高您处理文本数据的能力列表的定义与操作0-1索引起点末尾元素Python列表索引从0开始计数负索引-1表示最后一个元素5+常用方法主要的列表操作方法数量列表list是Python最常用的数据结构之一,用于存储一系列有序的项目列表通过方括号定义,元素之间用逗号分隔,如fruits=[苹果,香蕉,橙子]不同于字符串,列表是可变的,可以修改、添加或删除其中的元素列表的索引访问与字符串类似,使用方括号表示,如fruits
[0]表示第一个元素苹果列表也支持切片操作,如fruits[1:3]提取第二和第三个元素列表的常用方法包括append添加元素到末尾,insert在指定位置插入元素,remove删除指定值的元素,pop删除并返回指定位置的元素列表还支持多种操作符,如+用于连接列表,*用于重复列表,in用于检查元素是否存在于列表中掌握列表的操作是Python编程的基础技能,对于数据处理和算法实现至关重要元组与不可变序列元组解包不可变性元组操作元组解包是一种便捷的语法,允许同时元组最重要的特性是不可变性,一旦创虽然元组不支持修改内容的方法,但它将元组中的多个值赋给多个变量例如建,其内容就不能修改这使得元组可提供了和方法,分别用于count index会将元以作为字典的键或集合的元素,而列表计算元素出现次数和查找元素位置元name,age,city=person_info组中的三个元素分别赋值给则不行不可变性还意味着元组在某些组也支持与列表相同的索引、切片和连person_info、和变量这种技术在函情况下比列表更高效,特别是在处理大接操作,如访问第一个元素,name agecity t
[0]t1+t2数返回多个值时特别有用量数据时连接两个元组字典的定义与使用键值对结构访问与修改常用方法字典是中的使用键可以快速访问对应字典提供多种实用方法dict Python映射类型,存储键值对的值,如返回所有键的视图,keys每个返回李明返回所有值的视key-value pairsperson[name]values键必须是唯一的且不可变添加新项或修改现有图,返回所有键值items通常是字符串或数字,项也很简单对的视图,安全地获get而值可以是任何类型字取值键不存在时返回默person[email]=典通过花括号定义,如认值而不报错,删liming@example.compop李明将添加一个新的键值对;除并返回指定键的值person={name:,北京将修age:25,city:}person[age]=26改对应的值age字典是中非常强大的数据结构,特别适合表示具有属性的对象或需要快速查Python找的数据集与列表相比,字典通过键直接访问值的效率更高,不需要遍历整个集合这使得字典在处理大量数据和复杂数据关系时非常有用集合的基本操作集合运算集合定义集合支持数学集合运算并集返回union,|集合set是一种无序且不重复的元素集合,两个集合的所有元素;交集intersection,通过花括号或set函数创建例如fruits返回两个集合共有的元素;差集difference,={苹果,香蕉,橙子}或numbers=-返回在第一个集合但不在第二个集合的元set[1,2,3,2]将创建集合集合会自动去素;对称差集symmetric_difference,^返除重复元素,常用于去重操作回只在其中一个集合的元素增删元素子集与超集使用方法向集合添加单个元素,add可以使用检查一个集合是否是另issubset方法添加多个元素;使用update remove一个集合的子集,使用检查一issuperset或方法删除元素前者在元素不存discard个集合是否是另一个集合的超集这些方在时会报错,后者不会;方法清空clear法在数据分析和逻辑处理中非常有用整个集合数据类型转换目标类型转换函数示例结果整数int int1010浮点数float float
3.
143.14字符串str str4242列表list listabc[a,b,c]元组tuple tuple[1,2,3]1,2,3集合set set[1,2,2,3]{1,2,3}字典dict dict[a,1,b,2]{a:1,b:2}Python提供了多种内置函数用于数据类型转换,这使得不同类型数据之间的转换变得简单例如,从用户输入获取的数据通常是字符串类型,使用int或float函数可以将其转换为数值类型进行计算在转换数据类型时需要注意可能出现的错误例如,将abc转换为整数会引发ValueError通常建议使用try-except结构捕获可能的转换异常,确保程序的健壮性正确的数据类型转换是处理各种数据的基础,在实际编程中经常使用表达式与运算符算术运算符关系运算符•+加法:5+3=8•==等于:5==5返回True•-减法:5-3=2•!=不等于:5!=3返回True•*乘法:5*3=15•大于:53返回True•/除法:5/3=
1.
6666...•小于:53返回False•//整除:5//3=1•=大于等于:5=5返回True•%取余:5%3=2•=小于等于:5=3返回False•**幂运算:5**3=125逻辑运算符•and逻辑与:True andFalse返回False•or逻辑或:True orFalse返回True•not逻辑非:not True返回False逻辑运算符用于组合多个条件,在控制流程中经常使用它们遵循短路求值原则,即如果第一个操作数已经能确定结果,则不会评估第二个操作数分支结构语句if基本if结构if条件语句是编程中最基础的控制流语句,允许程序根据条件执行不同的代码基本语法为if条件:执行语句如果条件为True,则执行缩进的代码块;否则跳过这些代码if-else结构if-else结构提供了两条路径if条件:执行语句1else:执行语句2当条件为True时执行语句1,否则执行语句2这种结构确保两组语句中的一组一定会被执行if-elif-else结构对于多重条件判断,可以使用if-elif-else结构if条件1:语句1elif条件2:语句
2...else:语句n程序会从上到下测试每个条件,执行第一个条件为True的语句块,如果都不为True则执行else部分在Python中,缩进非常重要,它用来表示代码块的从属关系通常使用4个空格作为缩进单位错误的缩进会导致语法错误或逻辑错误确保同一代码块中的所有语句具有相同的缩进级别,这是Python编程的基本要求多重分支实例分析优秀90-100分grade=A良好80-89分grade=B中等70-79分grade=C及格60-69分grade=D不及格0-59分grade=F以下是判断学生成绩等级的Python代码示例score=floatinput请输入学生成绩0-100:if score=90:grade=Aelif score=80:grade=Belif score=70:grade=Celif score=60:grade=Delse:grade=Fprintf学生成绩等级为:{grade}在这个例子中,程序首先获取用户输入的学生成绩,然后通过多重if-elif-else结构判断其等级注意条件判断的顺序和逻辑我们从最高分开始判断,这样只要满足一个条件,就不再检查后续条件,提高了程序效率循环语法while循环体执行当条件为True时,执行循环体内的代码循环体通常包含改变循环条件的语句,以便最终结束循环条件判断while循环开始时,先检查条件是否为True如果为True,则执行循环体;如果为False,则跳过循环继续执行后续代码条件更新循环体执行完毕后,重新检查条件如果条件仍为True,则重复执行循环体;否则退出循环while循环适用于不确定循环次数,需要根据条件决定是否继续的场景例如,用户输入验证、数据处理直到满足特定条件等以下是一个简单的猜数字游戏示例import randomsecret_number=random.randint1,100guess=0attempts=0while guess!=secret_number:guess=intinput猜一个1到100之间的数:attempts+=1if guesssecret_number:print太小了!elif guesssecret_number:print太大了!else:printf恭喜你,猜对了!你用了{attempts}次尝试循环与for rangefor循环基本语法range函数for循环应用示例Python的for循环主要用于遍历序列(如列表、元组、字符串等)或range函数用于生成一个整数序列,通常与for循环一起使用来控制for循环最常见的应用包括遍历列表或其他集合中的元素、执行固其他可迭代对象基本语法为for变量in序列:循环体在每次迭循环次数rangestop生成从0到stop-1的整数;rangestart,stop生定次数的操作、按索引访问序列元素、迭代字典的键值对等这些应代中,变量会依次取序列中的每个元素值,然后执行循环体代码成从start到stop-1的整数;rangestart,stop,step生成从start开始,用使for循环成为Python中最常用的循环结构之一步长为step的整数序列,直到达到stop(不包含)以下是几个for循环与range的实用示例#打印1到5的平方for iin range1,6:printf{i}的平方是{i**2}#遍历字符串中的字符for charin Python:printchar#使用enumerate获取索引和元素fruits=[苹果,香蕉,橙子]for index,fruit inenumeratefruits:printf索引{index}:{fruit}循环中的与break continuebreak语句break语句用于提前退出循环,不再执行剩余的循环迭代当遇到break时,程序会立即跳出当前循环,继续执行循环后的代码break通常与条件语句结合使用,在满足特定条件时终止循环continue语句continue语句用于跳过当前迭代中剩余的代码,直接进入下一次迭代与break不同,continue不会终止整个循环,只是跳过当前这一次的循环体中continue之后的代码这对于需要处理特殊情况但仍希望继续循环的场景很有用循环的else子句Python的循环(for和while)可以带有else子句,当循环正常完成(不是通过break终止)时执行else中的代码这一特性在搜索元素或验证条件时很有用,可以区分循环是正常结束还是被break终止的以下是break和continue的示例代码#break示例寻找第一个能被整除的数numbers=[7,9,15,20,33,45]divisor=5for numin numbers:if num%divisor==0:printf找到第一个能被{divisor}整除的数{num}breakelse:printf没有找到能被{divisor}整除的数#continue示例只打印偶数for iin range10:if i%2!=0:continueprintf偶数{i}函数的定义与调用函数的参数类型位置参数可变参数最基本的参数类型,调用函数时必须按照定义时的顺序提供对应的参数使用*args语法允许函数接收任意数量的位置参数,这些参数会被打包值例如定义函数def addx,y,调用时需要按顺序提供两个参数成一个元组例如def sum_all*numbers可以接收任意数量的数字并add5,3求和sum_all1,2,3,41234默认参数关键字参数在定义函数时为参数指定默认值,调用时如果不提供该参数,则使用默使用**kwargs语法允许函数接收任意数量的关键字参数,这些参数会被认值例如def greetname,greeting=你好,调用时可以只提供打包成一个字典例如def build_profile**user_info可以接收各种用name参数greet小明户信息build_profilename=小明,age=25,city=北京返回值及None基本返回值返回多个值函数使用return语句将结果返回给调用者return语句后可以跟任何类型Python函数可以通过元组轻松返回多个值例如return x,y,z实际上的数据,如数字、字符串、列表等函数执行到return语句时会立即结束,是创建了一个包含这三个值的元组并返回调用者可以使用元组解包接并将return后的值返回如果函数没有return语句,或者return后没有指收这些值a,b,c=function,这使得函数可以同时返回多个相关结果定值,则默认返回NoneNone值的使用None是Python中表示无的特殊值,常用于表示函数没有明确返回值、操作失败或参数不存在等情况可以使用is None或is notNone来检查变量是否为NoneNone在条件表达式中被视为False,但它不等同于False、0或空字符串以下是返回值和None的示例代码#返回单个值def squarex:return x*x#返回多个值def get_min_maxnumbers:return minnumbers,maxnumbers#使用None表示操作失败def safe_dividea,b:if b==0:print错误除数不能为零return Nonereturna/b#调用并使用返回值result=square5#结果为25min_val,max_val=get_min_max[1,5,3,9,2]#结果为1和9作用域与局部变量内置作用域Built-in包含Python内置函数和异常全局作用域Global模块级别定义的变量闭包作用域Enclosing嵌套函数的外层函数作用域局部作用域Local函数内部定义的变量在Python中,变量的可见性和生命周期由其作用域决定局部变量是在函数内部定义的变量,只能在该函数内部访问,函数执行完毕后这些变量就会被销毁全局变量则是在模块级别定义的变量,可以在整个模块中访问当在函数内部引用变量时,Python遵循LEGB规则(Local,Enclosing,Global,Built-in)查找变量先在局部作用域查找,然后是闭包作用域(嵌套函数),然后是全局作用域,最后是内置作用域如果需要在函数内部修改全局变量,必须使用global关键字声明类似地,在嵌套函数中,如果需要修改外层函数的变量,需要使用nonlocal关键字声明这些机制确保了变量的作用域明确,防止意外修改导致的问题#全局变量与局部变量示例x=10#全局变量def modify_global:global x#声明x为全局变量x=20#修改全局变量def use_local:x=30#局部变量,与全局变量无关printf函数内部:x={x}modify_globalprintf全局变量:x={x}#输出:全局变量:x=20use_local#输出:函数内部:x=30printf全局变量仍然是:x={x}#输出:全局变量仍然是:x=20匿名函数用法lambdalambda的基本语法与常规函数的区别lambda函数是一种小型匿名函数,通过lambda关键字创lambda函数与常规函数相比,更加简洁,适合编写简单的、建语法为lambda参数:表达式lambda函数可以有一次性使用的函数lambda没有名字(匿名),表达能力任意数量的参数,但只能有一个表达式表达式的结果会有限(只能包含一个表达式),并且不能包含多行代码被返回,无需显式的return语句它们主要用于需要函数对象的地方,如作为其他函数的参数常见应用场景lambda函数常用于函数式编程和需要简短回调函数的地方最常见的应用包括作为sorted、filter和map等函数的参数;在GUI编程中作为事件处理器;在数据处理和转换中用于简单操作;以及在需要临时函数但不想正式定义的场景以下是几个lambda函数的实用示例#使用lambda作为sorted的key参数students=[张三,85,李四,92,王五,78]sorted_by_score=sortedstudents,key=lambda student:student
[1],reverse=Trueprintsorted_by_score#按分数从高到低排序#使用lambda配合filter函数numbers=[1,2,3,4,5,6,7,8,9,10]even_numbers=listfilterlambda x:x%2==0,numbersprinteven_numbers#[2,4,6,8,10]#使用lambda配合map函数squared=listmaplambda x:x**2,numbersprintsquared#[1,4,9,16,25,36,49,64,81,100]常用内置函数len typemax,min,sorted enumerate返回对象的长度或元素个数,适用于字返回对象的类型例如type42返回,max和min分别返回可迭代对象中的将可迭代对象转换为包含索引和值的枚符串、列表、元组、字典等序列或集合typehello返回在条件判断中可用于最大值和最小值;sorted返回对象的排举对象,常用于for循环中同时获取索引类型例如lenPython返回6,检查对象类型序列表,可通过key参数自定义排序规则和元素例如for i,value inlen[1,2,3]返回3enumeratelist自定义模块和包模块基本概念包的组织结构模块是包含定义和语句的文件,文件名就是模块名加包是一种特殊的模块,它包含多个子模块或子包,形成一个层Python上后缀模块允许你将相关代码组织在一起,提高代码的次结构物理上,包是一个包含文件的目录.py__init__.py可维护性和重用性每个文件都可以作为一个模块被其(中这个文件可以为空或不存在)包使得大型Python Python
3.3+他程序导入和使用项目的模块组织更加清晰和有条理Python导入模块的基本方式是使用语句模块名也可导入包中的模块可以使用点号表示法包名模块名或import importimport.以使用语句导入模块中的特定对象模块名包名模块名也可以直接导入包中的特定对象from...import fromfrom import对象名如果需要导入多个对象,可以用逗号分隔,或包名模块名对象名包的目录结构反映了代码的import from.import者使用导入所有对象(不推荐,可能导致命名冲突)逻辑组织,帮助开发者理解项目结构*创建自己的模块和包是很简单的首先创建一个文件,在其中定义函数、类或变量;然后在其他程序中导入并使用这些定义.py当一个模块首次被导入时,其中的代码会被执行一次为了避免在导入时执行某些代码,可以使用条if__name__==__main__:件判断,使代码仅在直接运行模块时执行,而导入时不执行文件基本操作打开文件使用open函数打开文件,语法为open文件名,模式,编码常用模式包括r(只读,默认),w(写入,会覆盖原有内容),a(追加),b(二进制模式),+(读写)对于文本文件,应指定编码,如opendata.txt,r,encoding=utf-8读取内容打开文件后,可以使用多种方法读取内容read读取整个文件内容为一个字符串;readline读取一行;readlines读取所有行并返回一个列表也可以直接遍历文件对象,逐行处理文件内容for linein file写入内容使用write方法向文件写入字符串;使用writelines方法写入字符串列表,但不会自动添加换行符写入操作会按照打开文件时指定的模式进行(覆盖或追加)写入完成后,内容可能仍在缓冲区,需要调用flush或关闭文件才能确保写入磁盘关闭文件处理完文件后,必须调用close方法关闭文件,释放系统资源未正确关闭文件可能导致数据丢失或文件锁定问题更好的做法是使用with语句(上下文管理器),它会自动处理文件的关闭,即使发生异常文本文件的读取与写入文件路径与目录操作导入os模块os模块提供了与操作系统交互的功能,包括文件系统操作通过import os导入该模块后,可以使用其提供的各种函数和属性操作文件和目录路径处理os.path子模块提供了处理文件路径的函数os.path.join连接路径;os.path.dirname获取目录名;os.path.basename获取文件名;os.path.exists检查路径是否存在;os.path.isfile和os.path.isdir检查是否为文件或目录目录内容列举os.listdir返回指定目录中的文件和子目录列表;os.scandir提供更多信息的迭代器;os.walk递归遍历目录树,适合处理复杂的目录结构和批量文件操作创建与删除操作os.mkdir创建单个目录;os.makedirs可以创建多级目录;os.remove删除文件;os.rmdir删除空目录;shutil.rmtree可以删除非空目录及其内容(需导入shutil模块)异常处理try/excepttry块try块包含可能引发异常的代码当异常发生时,Python会停止执行try块中的代码,转而执行相应的异常处理代码try语句至少要有一个对应的except或finally子句except块except块定义了当try块中发生指定异常时要执行的代码可以指定要捕获的异常类型,也可以捕获多个异常类型使用as关键字可以将异常对象赋给变量,以便访问异常信息else块如果try块中的代码执行完毕且没有引发异常,则会执行else块中的代码这允许您将某些代码与可能引发异常的代码分开,同时仍然保持它们之间的依赖关系finally块finally块包含无论是否发生异常都要执行的代码,通常用于资源清理操作,如关闭文件或释放网络连接即使在try或except块中执行了return语句,finally块也会被执行以下是一个完整的异常处理示例try:#可能引发异常的代码file=opendata.txt,rcontent=file.readvalue=intcontentexcept FileNotFoundError:#处理文件不存在的情况print文件不存在,请检查文件路径except ValueErroras e:#处理数值转换错误printf数据格式错误{e}else:#如果没有异常,执行这里的代码printf成功读取的值是{value}finally:#无论是否有异常,都会执行这里的代码#关闭文件(如果已打开)if filein localsand notfile.closed:file.closeprint文件已关闭自定义异常自定义异常类继承自Exception的类抛出异常使用raise关键字捕获自定义异常使用try/except处理在Python中,您可以通过继承Exception类(或其子类)来创建自定义异常自定义异常使代码更加清晰,能够表达特定于您的应用程序的错误情况编写自定义异常时,通常只需要定义__init__方法来接收和存储错误信息#定义自定义异常class ValueTooSmallErrorException:当输入值小于最小值时抛出def__init__self,value,min_value:self.value=valueself.min_value=min_valueself.message=f提供的值{value}小于最小允许值{min_value}super.__init__self.message#使用自定义异常def process_positive_numbernumber:if number0:raise ValueTooSmallErrornumber,0return number*2#捕获自定义异常try:result=process_positive_number-5except ValueTooSmallErroras e:printe#可以访问异常的属性printf输入值:{e.value},最小允许值:{e.min_value}Python提供了许多内置异常类,在创建自定义异常前,应查看是否有适合的内置异常常见的内置异常包括ValueError(值错误)、TypeError(类型错误)、KeyError(字典键不存在)、FileNotFoundError(文件不存在)、ZeroDivisionError(除零错误)等正确使用异常可以提高代码的健壮性和可维护性标准库简介内置模块概览常用标准库分类官方文档查阅技巧Python标准库是Python安装时自带的模块和包的集合,提•文本处理string,re,difflib Python官方文档(docs.python.org)是学习标准库的最佳供了丰富的功能,无需额外安装即可使用标准库包含了•数据类型datetime,collections,array资源习惯使用help函数和dir函数查看模块和对象的帮处理文本、数学计算、文件I/O、系统交互、网络通信、数助信息和属性在交互式环境中,可以使用tab键自动补全•数学计算math,random,statistics据处理等各种功能的模块,使Python成为一种功能强大的和查看可用方法设置书签收藏常用文档页面,善用搜索•文件和路径os,shutil,pathlib通用编程语言功能查找特定功能•数据存储json,csv,sqlite3,pickle•互联网urllib,http,email,socket•多线程threading,multiprocessing数学与随机模块math模块random模块math模块提供了对C标准库中数学函数的访问,包括各种数学运算和常量random模块用于生成伪随机数,适用于模拟、游戏、测试等场景主要功能主要功能包括包括•基本函数ceil,floor,trunc,fabs•基本随机random生成0到1之间的浮点数•幂和对数sqrt,pow,exp,log,log10•范围随机randint,randrange生成指定范围内的整数•三角函数sin,cos,tan,asin,acos,atan•序列操作choice从序列中随机选择,shuffle随机打乱序列•双曲函数sinh,cosh,tanh•采样sample从序列中选择指定数量的不重复随机元素•特殊常量math.pi,math.e,math.inf,math.nan•概率分布gauss,normalvariate等生成特定分布的随机数import mathimport randomprintmath.sqrt16#
4.0printrandom.random#0到1之间的随机浮点数printmath.pi#
3.141592653589793printrandom.randint1,10#1到10之间的随机整数printmath.ceil
4.2#5fruits=[苹果,香蕉,橙子,葡萄]printrandom.choicefruits#随机选择一个水果random.shufflefruits#随机打乱列表顺序printfruits时间与日期处理time模块处理时间相关的功能,提供各种时间表示,包括时间戳、结构化时间和格式化字符串主要函数包括time.time获取当前时间戳,time.sleep暂停程序执行,time.strftime格式化时间datetime模块提供日期和时间的类,支持日期计算、比较和格式化主要类包括datetime(日期和时间)、date(仅日期)、time(仅时间)、timedelta(时间差)相比time模块,提供了更面向对象的接口时区处理使用datetime.tzinfo和第三方库pytz处理时区相关操作,如时区转换、夏令时调整等在国际化应用中,正确处理时区对于确保时间数据的准确性至关重要以下是datetime模块的使用示例from datetimeimport datetime,date,timedelta#获取当前日期和时间now=datetime.nowprintf当前日期和时间:{now}#创建特定的日期birthday=date1990,5,15printf生日:{birthday}#日期格式化formatted_date=now.strftime%Y年%m月%d日%H:%M:%Sprintf格式化日期:{formatted_date}#日期计算tomorrow=now+timedeltadays=1next_week=now+timedeltaweeks=1printf明天:{tomorrow}printf下周:{next_week}#日期解析date_string=2023-09-1514:30:00parsed_date=datetime.strptimedate_string,%Y-%m-%d%H:%M:%Sprintf解析的日期:{parsed_date}常用字符串处理库正则表达式基础re模块主要函数正则表达式regex是一种强大的文本模式匹配和搜索工具Python通过re模块提供正re.search在字符串中搜索匹配模式的第一个位置;re.match仅在字符串开头匹配模则表达式支持,可以用于复杂的字符串检索、替换和提取操作正则表达式使用特殊式;re.findall返回所有匹配的子串列表;re.sub替换匹配的子串;re.split按匹配项语法定义模式,如\d表示数字,\w表示字母或数字,*表示零次或多次重复等2分割字符串;re.compile预编译正则表达式以提高性能分组和捕获模式标志使用创建捕获组,可以从匹配结果中提取特定部分使用:创建非捕获组,仅用于分re模块支持多种标志修改匹配行为re.IGNORECASE或re.I使匹配对大小写不敏感;组但不保存匹配结果通过match.groupn访问第n个捕获组的内容分组使复杂的字re.MULTILINE或re.M使^和$匹配每行的开始和结束;re.DOTALL或re.S使.也匹配换行符串解析变得简单符;re.VERBOSE或re.X允许正则表达式包含注释和空白以下是re模块的使用示例import re#简单的模式匹配text=联系电话13812345678,办公电话010-12345678phone_pattern=r1\d{10}|0\d{2,3}-\d{7,8}phones=re.findallphone_pattern,textprintf找到的电话号码:{phones}#[13812345678,010-12345678]#使用捕获组提取信息email_text=联系邮箱user@example.comemail_pattern=r[a-zA-Z0-
9._%+-]+@[a-zA-Z0-
9.-]+\.[a-zA-Z]{2,}match=re.searchemail_pattern,email_textif match:username,domain,tld=match.groupsprintf用户名:{username},域名:{domain},顶级域名:{tld}数据解析与处理JSON数据处理CSV文件操作其他数据格式JSONJavaScript ObjectNotation是一种轻量级的数据交换格式,被广泛用于CSV逗号分隔值是一种常用的表格数据格式Python的csv模块提供了读写CSV除了JSON和CSV,Python标准库还支持多种数据格式,如XMLxml模块、配置文Web API和配置文件Python通过json模块提供JSON数据的编码dumps/dump和文件的工具csv.reader创建读取CSV的迭代器,csv.writer用于写入CSV文件件configparser模块、二进制数据struct模块和对象序列化pickle模块对于更解码loads/load功能json.dumps将Python对象转换为JSON字符串,DictReader和DictWriter类支持使用字典的方式处理CSV数据,更加直观易用专业的数据处理需求,可以使用第三方库如pandas、numpy等json.loads将JSON字符串解析为Python对象以下是JSON和CSV处理的示例代码import jsonimportcsv#JSON处理示例#Python对象转JSONperson={name:张三,age:30,city:北京,skills:[Python,JavaScript,SQL],active:True}json_str=json.dumpsperson,ensure_ascii=False,indent=4printjson_str#JSON转Python对象parsed_person=json.loadsjson_strprintf姓名:{parsed_person[name]},年龄:{parsed_person[age]}#写入JSON文件with openperson.json,w,encoding=utf-8as f:json.dumpperson,f,ensure_ascii=False,indent=4#CSV处理示例#写入CSVwith openemployees.csv,w,encoding=utf-8,newline=as f:writer=csv.writerfwriter.writerow[姓名,部门,工资]#写入表头writer.writerows[[李明,技术部,10000],[王芳,市场部,8500],[张伟,财务部,9000]]#读取CSVwith openemployees.csv,r,encoding=utf-8as f:reader=csv.readerfheader=nextreader#读取表头printfCSV表头:{header}for rowin reader:printf员工信息:{row}网络请求库安装requests库导入模块发送请求处理响应使用pip安装:pip installrequests import requests加载库使用requests.get,post,put等方法访问response.text,json,status_code等属性requests库是Python中最流行的HTTP客户端库,提供了简单而优雅的API来发送HTTP请求相比标准库中的urllib,requests更加易用和人性化,支持各种HTTP方法、自定义请求头、会话管理、自动处理Cookie等功能importrequests#基本GET请求response=requests.gethttps://api.example.com/dataprintf状态码:{response.status_code}printf响应内容:{response.text[:100]}...#打印前100个字符#带参数的GET请求params={key1:value1,key2:value2}response=requests.gethttps://api.example.com/search,params=paramsprintf完整URL:{response.url}#解析JSON响应if response.status_code==200:data=response.jsonprintf解析后的数据:{data}#POST请求发送JSON数据user_data={username:testuser,email:test@example.com}response=requests.posthttps://api.example.com/users,json=user_dataprintfPOST响应:{response.text}#自定义请求头headers={User-Agent:MyPythonApp/
1.0,Authorization:Bearer token123}response=requests.gethttps://api.example.com/protected,headers=headers#处理超时和异常try:response=requests.gethttps://api.example.com/slow,timeout=5except requests.exceptions.Timeout:print请求超时except requests.exceptions.RequestException ase:printf请求错误:{e}图形化界面入门基本窗口与控件布局管理事件处理Tkinter是Python标准库中的GUI图形用户界面工具包,基于Tk图形库它提供了创建窗Tkinter提供了几种布局管理器pack、grid和placepack自动排列控件;grid使Tkinter使用事件驱动模型,通过bind方法或控件的command参数绑定事件处理函数当口、按钮、标签、输入框等基本控件的功能使用Tkinter可以快速开发跨平台的桌面应用用类似表格的结构定位控件;place允许精确指定控件的位置和大小合理使用布局管理用户点击按钮、输入文本等操作时,相应的函数会被调用事件处理是创建交互式应用的程序,无需安装额外依赖器可以创建美观、响应式的界面核心机制以下是一个简单的Tkinter应用示例,创建了一个带有按钮和标签的窗口import tkinteras tkfromtkinter importmessagebox#创建主窗口root=tk.Tkroot.title我的第一个GUI应用root.geometry300x200#设置窗口大小#定义事件处理函数def show_message:name=entry.getif name:messagebox.showinfo问候,f你好,{name}!else:messagebox.showwarning警告,请输入您的名字#创建标签label=tk.Labelroot,text=请输入您的名字label.packpady=10#创建输入框entry=tk.Entryroot,width=30entry.packpady=5#创建按钮button=tk.Buttonroot,text=问候,command=show_messagebutton.packpady=10#启动事件循环root.mainloop数据可视化基础安装Matplotlib使用pip安装pip installmatplotlib导入模块import matplotlib.pyplot asplt创建基本图表使用plt.plot,plt.bar等函数自定义图表外观添加标题、标签、图例等元素Matplotlib是Python中最流行的数据可视化库之一,可以创建各种静态、动态和交互式图表它提供了类似MATLAB的接口,灵活性高,可以生成出版质量的图形以下是一个简单的Matplotlib示例,创建了一个包含线图和散点图的图表import matplotlib.pyplot aspltimport numpyas np#生成数据x=np.linspace0,10,100#创建100个0到10之间均匀分布的点y1=np.sinx#正弦函数y2=np.cosx#余弦函数#创建新图形plt.figurefigsize=10,6#设置图形大小#绘制线图plt.plotx,y1,b-,label=sinx#蓝色实线plt.plotx,y2,r--,label=cosx#红色虚线#添加散点图plt.scatterx[::10],y1[::10],color=green,s=50,label=sinx points#自定义图表plt.title正弦和余弦函数#标题plt.xlabelx值#x轴标签plt.ylabely值#y轴标签plt.gridTrue#显示网格plt.legend#显示图例#保存图形plt.savefigtrigonometric_functions.png,dpi=300#显示图形plt.show小项目猜数字游戏1代码优化核心功能实现可以添加更多功能来增强游戏体验设置难度级别(改变数字范围);限制最大猜测次数;游戏设计使用random模块生成随机数,while循环控制游戏进行,if-elif-else结构判断猜测结果,添加分数系统;支持多轮游戏;记录最高分(最少猜测次数)这些功能可以帮助巩固函猜数字游戏是一个简单但有趣的项目,非常适合初学者练习Python基础知识游戏规则input函数获取玩家输入,使用异常处理确保输入有效游戏还可以记录玩家的猜测次数,数、文件操作、条件判断等多个知识点计算机随机生成一个1到100之间的数字,玩家通过输入自己的猜测,计算机会提示猜测并在猜对后显示,增加游戏的挑战性是太大、太小还是正确的玩家需要通过这些提示,在最少的尝试次数内猜出正确的数字以下是猜数字游戏的完整代码实现import randomdefguess_number_game:#生成1-100之间的随机数secret_number=random.randint1,100attempts=0max_attempts=10print\n欢迎参加猜数字游戏!printf我已经想好了一个1到100之间的数字,你有{max_attempts}次机会猜出它while attemptsmax_attempts:try:#获取玩家猜测guess=intinput\n请输入你的猜测1-100:#验证输入范围if guess1or guess100:print请输入1到100之间的数字!continueattempts+=1#判断猜测结果if guesssecret_number:printf太小了!你还剩下{max_attempts-attempts}次机会elif guesssecret_number:printf太大了!你还剩下{max_attempts-attempts}次机会else:printf\n恭喜你,猜对了!答案就是{secret_number}printf你用了{attempts}次尝试return TrueexceptValueError:print请输入有效的数字!printf\n游戏结束!你已用完所有{max_attempts}次机会printf正确答案是{secret_number}return False#启动游戏if__name__==__main__:play_again=Truewhile play_again:guess_number_gameagain=input\n想再玩一次吗?y/n:.lowerplay_again=again==yprint\n感谢参与!再见!小项目自动批量重命名文件2需求分析批量重命名文件是一个实用的自动化任务,特别适合处理大量照片、文档或下载文件这个项目旨在创建一个脚本,可以根据特定规则(如添加前缀/后缀、更改文件扩展名、按日期排序重命名等)自动重命名指定文件夹中的文件2使用os模块这个项目主要使用os模块来操作文件系统os.listdir用于获取文件夹中的所有文件,os.path.join构建完整的文件路径,os.rename执行重命名操作还可以使功能实现用os.path.splitext分离文件名和扩展名,方便单独处理脚本需要实现以下功能指定目标文件夹;定义重命名规则(可通过命令行参数或配置文件);过滤特定类型文件;支持预览模式(显示将进行的更改但不实际异常处理执行);执行重命名操作并显示结果统计文件操作容易出错,需要加入全面的错误处理检查文件夹是否存在;处理文件权限问题;避免文件名冲突;为防止数据丢失,可以添加备份功能完善的错误处理可以使脚本更加健壮和安全小项目简单记账本3应用设计数据结构简单记账本是一个实用的数据处理项目,使用字典表示每笔交易,包含日期、金帮助用户记录和分析个人收支情况主额、类别、描述等字段;使用列表存储要功能包括添加交易记录(收入支出)、所有交易;使用格式保存数据,/JSON查看交易历史、按类别统计支出、导出便于读写和人工查看数据结构设计合报表等使用文件存储数据,结合字典理是项目成功的关键,影响数据处理效等数据结构实现数据管理率和功能扩展性用户界面文件操作提供命令行交互界面,通过菜单系统引使用文本文件(如或)存储JSON CSV导用户操作使用函数获取用户交易记录,实现数据持久化利用input open输入,函数封装各功能模块,提高代码函数和语句读写文件,模块序列with json可读性和可维护性可选择性地添加简化和反序列化数据需处理文件不存在、单的文本用户界面()或图形用户界格式错误等异常情况,确保数据安全性TUI面()提升用户体验GUI进阶学习建议专业化方向选择特定领域深入学习拓展工具与框架掌握专业开发工具与框架项目实践通过实际项目巩固知识深入基础知识理解高级Python概念完成本入门教程后,建议按照以下学习路线继续提升Python技能首先,深入理解Python的高级概念,如面向对象编程、装饰器、生成器、上下文管理器等阅读《Python进阶》、《流畅的Python》等书籍或在线资源,掌握Python的设计哲学和高级特性其次,通过实际项目巩固所学知识可以从简单的工具开始,如网页爬虫、自动化脚本,逐步过渡到更复杂的应用参与开源项目或创建自己的项目是提升编程能力的最佳方式第三,学习常用的开发工具和框架根据您的兴趣方向,可以选择Web开发Django,Flask、数据科学NumPy,Pandas,Matplotlib、机器学习TensorFlow,PyTorch、自动化测试pytest等领域的工具掌握Git版本控制、虚拟环境管理等开发必备工具最后,选择一个专业方向深入学习Python应用广泛,可以选择数据分析、Web后端开发、人工智能、自动化测试等方向加入相关社区、参加线上线下活动,与其他Python爱好者交流,不断提升技能水平课程总结与答疑知识点回顾常见问题解答本课程从Python的基础概念开始,系统讲学习过程中常见的问题包括环境配置困解了编程环境配置、基本语法、数据类型、难、语法错误、逻辑错误、模块导入错误控制结构、函数、模块、文件操作、异常等解决这些问题的关键是理解错误信息、处理等核心知识通过循序渐进的学习和善用文档和搜索引擎、多尝试多调试建实践,您已经掌握了Python编程的基础技议使用开发工具的调试功能,逐步跟踪代能,能够独立编写简单的Python程序解决码执行过程,帮助理解程序运行机制实际问题学习技巧分享有效学习Python的技巧坚持练习编写代码;阅读优质的开源代码学习最佳实践;遇到问题先自己思考,不要急于求助;将学到的知识应用到实际项目中;加入Python社区与他人交流;保持学习的持续性和规律性学习编程是一个长期过程,需要耐心和毅力感谢您完成本Python入门自学教程!这只是Python编程旅程的开始,真正的学习在实践中不断深入希望本课程为您打开了编程的大门,激发了对Python的兴趣如有任何问题或需要进一步指导,请随时在评论区提问或通过其他渠道联系我们我们鼓励您继续探索Python的广阔世界,将所学知识应用到实际项目中,解决现实问题祝您在编程之路上取得成功!。
个人认证
优秀文档
获得点赞 0