版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章Python开发环境搭建与使用
董付国
微信公众号:Python小屋本章学习目标了解Python语言的应用领域了解Python语言的特点熟练安装Python和Anaconda3熟练安装Python扩展库了解IDLE、JupyterNotebook和Spyder这几个开发环境的简单使用了解标准库对象和扩展库对象的导入和使用方法以及常见问题和解决方法了解Python代码编写规范1.1Python语言特点与应用领域经过30年的发展,目前Python已经渗透到几乎所有领域,包括但不限于:计算机安全、网络安全、软件漏洞挖掘、软件逆向工程、软件测试与分析、电子取证、密码学数据采集、数据分析与处理、机器学习、深度学习、自然语言处理、推荐系统构建统计分析、科学计算、符号计算、可视化计算机图形学、图像处理、音乐编程、语音识别、视频采集、视频处理、动画制作、游戏设计与策划网站开发、套接字编程、网络爬虫、系统运维树莓派、无人机、移动终端应用开发、电子电路设计辅助教育、辅助设计、办公自动化、大模型开发与应用1.1Python语言特点与应用领域Python是一门跨平台、开源、免费的解释型高级动态编程语言,是一种通用编程语言。除了可以解释执行之外,Python还可以把源代码伪编译为字节码来优化程序提高加载速度并对源代码进行一定程度的保密,也支持使用py2exe、pyinstaller、Nuitka、cx_Freeze、py2app或其他类似工具将Python程序及其所有依赖库打包为特定平台上的可执行文件,从而可以脱离Python解释器环境和相关依赖库在其他同类平台上独立运行,同时也可以起到更好的源码保护作用。1.1Python语言特点与应用领域与其他编程语言相比,Python语言具有非常明显的特点和优势,例如:以快速解决问题为主要出发点,不涉及过多计算机底层知识,需要记忆的语言细节少,可以快速入门。支持命令式编程、函数式编程、面向对象程序设计等模式。语法简洁清晰,代码布局优雅,可读性和可维护性强。内置数据类型、内置模块和标准库提供了大量功能强大的操作。拥有大量的几乎支持所有领域应用开发的成熟扩展库和狂热支持者。1.2Python安装与IDLE简单使用1.2Python安装与IDLE简单使用1.2Python安装与IDLE简单使用1.2Python安装与IDLE简单使用1.2Python安装与IDLE简单使用IDLE快捷键快捷键功能说明Alt+P查看上一条执行过的语句Alt+N查看下一条执行过的语句Ctrl+F6重启Shell,之前定义的对象和导入的模块全部失效F1打开Python帮助文档Alt+/自动补全前面曾经出现过的单词,如果之前有多个单词具有相同前缀,则在多个单词中循环选择Ctrl+]缩进代码块Ctrl+[取消代码块缩进Alt+3注释代码块Alt+4取消代码块注释Tab代码补全或代码块缩进1.2Python安装与IDLE简单使用使用IDLE运行程序1.2Python安装与IDLE简单使用在IDLE中执行程序时提供命令行参数importsys#接收多个命令行参数,相邻参数之间使用空格分隔names=sys.argv[1:]#循环结构,处理每个参数fornameinnames:print(f'你好,{name}')1.3Anaconda3安装与JupyterNotebook、Spyder简单使用1.3Anaconda3安装与JupyterNotebook、Spyder简单使用1.3Anaconda3安装与JupyterNotebook、Spyder简单使用1.4在PowerShell或命令提示符环境运行Python程序#内置函数input()用于接收用户的键盘输入name=input('输入你的名字:')#字符串前面加字母f表示对其中大括号里的内容进行替换和格式化print(f'{name}你好,欢迎加入Python的奇妙世界!')1.4在PowerShell或命令提示符环境运行Python程序1.5安装扩展库-1.5.1基本概念在Python中,有内置模块、标准库和扩展库之分。内置模块和标准库是Python官方的标准安装包自带的,内置模块没有对应的文件,可以认为是封装在Python解释器主程序中的;标准库有对应的Python程序文件,这些文件在Python安装路径中的Lib文件夹中。1.5安装扩展库-1.5.1基本概念1.5.2安装扩展库pip命令示例说明pipfreeze列出已安装模块及其版本号pipinstallSomePackage[==version]在线安装SomePackage模块,可以指定扩展库版本,如果不指定则默认安装最新版本,使用时把SomePackage替换为实际的扩展名名称,例如jieba、pillow、pypinyinpipinstallSomePackage.whl通过whl文件离线安装扩展库pipinstall--upgradeSomePackage升级SomePackage模块到最新版本pipuninstallSomePackage卸载SomePackage模块1.5.2安装扩展库1.5.3常见问题与解决方法(1)在线安装失败1)网络不好导致下载失败,2)需要本地安装有正确版本的VC++编译环境,3)扩展库暂时还不支持自己使用的Python版本。对于第一种错误,可以多尝试几次、指定国内源或下载whl文件离线安装。如果出现第二种错误,可以在本地安装合适版本的VC++编译器或者下载whl文件离线安装。对于第三种错误,可以尝试找一下有没有第三方编译好的whl文件可以下载然后离线安装。1.5.3常见问题与解决方法如果由于网速问题导致在线安装速度过慢的话,pip命令支持指定国内的站点来提高速度,下面的命令用来从阿里云服务器下载安装扩展库jieba,其他服务器地址可以自行查阅。pipinstalljieba-i/pypi/simple--trusted-host1.5.3常见问题与解决方法如果固定使用阿里云服务器镜像,可以在当前登录用户的AppData\Roaming文件夹中创建文件夹pip,在pip文件夹中创建文件pip.ini,输入下面的内容,以后再执行pip命令安装和升级扩展库时就不用每次都指定服务器地址了。[global]index-url=/pypi/simple[install]trusted-host=如果遇到类似于“拒绝访问”的出错提示,可以使用管理员权限启动命令提示符,或者在执行pip命令时在最后增加选项“--user”。1.5.3常见问题与解决方法(2)安装路径带来的问题如果计算机上安装了多个版本的Python开发环境,在一个版本下安装的扩展库无法在另一个版本中使用。强烈建议在命令提示符或PowerShell环境切换至相应版本Python安装目录的scripts文件夹中,然后执行pip命令,如果要离线安装扩展库的话,最好也把.whl文件下载到相应版本的scripts文件夹中。1.5.3常见问题与解决方法(3)扩展库自身bug或版本冲突问题某些扩展库在升级过程中解决原来问题的同时又引入了新的错误,导致某些功能在旧版本中工作正常但在新版本中却无法使用。如果遇到类似的情况,可以查一下扩展库的官方网站的最新消息,或者暂时还原较低的版本,如果水平足够的话也可以自己修改一下扩展库的代码再使用。1.6标准库、扩展库对象的导入与使用Python所有内置对象不需要导入就可以直接使用,但内置模块对象和标准库对象必须先导入才能使用,扩展库则需要正确安装之后才能导入和使用其中的对象。在编写代码时,一般建议先导入内置模块和标准库对象再导入扩展库对象,最后导入自己编写的本地模块。并且,建议在程序中只导入确实需要使用的对象,确定用不到的不要导入,避免导入整个模块,这样可以适当提高代码加载和运行速度,并能减小打包后的可执行文件体积。1.6.1import模块名[as别名]importsysimportmathimportrandomimportos.pathaspath#计算并输出30的阶乘print(math.factorial(30))#随机选择30个字符0或字符1,允许重复print(random.choices('01',k=30))#判断字符串C:\Windows\notepad.exe指向的路径是否为已存在的文件print(path.isfile(r'C:\Windows\notepad.exe'))#查看Python解释器程序文件路径print(sys.executable)#查看对象占用的字节数print(sys.getsizeof('董付国'))print(sys.getsizeof([1,2,3,4]))print(sys.getsizeof((1,2,3,4)))1.6.2from模块名/库名import对象名/模块名[as别名]frommathimportpiasPIfromos.pathimportgetsize,joinfromcalendarimportisleap#下面一行代码需要安装扩展库pillowfromPILimportImager=3print(PI*r*r)#计算半径为3的圆的面积#获取文件C:\Python313\python.exe的大小,单位为字节print(getsize(r'C:\Python313\python.exe'))#连接多个路径为一个完整的路径print(join(r'C:\Python313','lib\site-packages'))print(isleap(2020))#判断2020年是否为闰年im=Image.open('test.jpg')print(im.getpixel((200,200)))#获取并输出指定位置的像素颜色值1.6.3from模块名import*fromitertoolsimport*#从字符串'01234'中任选3个字符的所有组合,不允许重复#list()用来把函数combinations()的返回值变成列表print(list(combinations('01234',3)))#从字符串'01234'中任选3个字符的所有组合,允许重复print(list(combinations_with_replacement('01234',3)))#从字符串'1234'中任选3个字符的所有排列print(list(permutations('1234',3)))#把多个列表首尾相接print(list(chain([1,2,3],[4,5,6],[7,8,9])))data=[1,2,3,4,5,6]values=[0,1,1,0,0,1]#把等长列表data和values左对齐#返回data中与values中的1对应的位置上的元素print(list(compress(data,values)))1.6.3from模块名import*#返回列表中作为参数传递给函数callable()后得到False的那些元素print(list(filterfalse(callable,[int,3,str,sum,'5'])))#返回'12'和'45'的笛卡尔积print(list(product('12','45')))#返回3个字符串'12'的笛卡尔积print(list(product('12',repeat=3)))#把'123'和'abcdef'左对齐,对应位置上的字符组合到一起,短的在后面补字符0#相当于把'123000'和'abcdef'左对齐,对应位置上的字符组合到一起print(list(zip_longest('123','abcdef',fillvalue='0')))1.6.4高级用法与常见问题>>>importsys#查看模块导入时的搜索路径>>>print(sys.path)['','C:\\Python313\\Lib\\idlelib','C:\\Python313\\Python313.zip','C:\\Python313\\DLLs','C:\\Python313\\lib','C:\\Python313','C:\\Users\\dfg\\AppData\\Roaming\\Python\\Python313\\site-packages','C:\\Python313\\lib\\site-packages','C:\\Python313\\lib\\site-packages\\win32','C:\\Python313\\lib\\site-packages\\win32\\lib','C:\\Python313\\lib\\site-packages\\Pythonwin']#添加新的搜索路径>>>sys.path.append('D:\test')>>>print(sys.path)['','C:\\Python313\\Lib\\idlelib','C:\\Python313\\Python313.zip','C:\\Python313\\DLLs','C:\\Python313\\lib','C:\\Python313','C:\\Users\\dfg\\AppData\\Roaming\\Python\\Python313\\site-packages','C:\\Python313\\lib\\site-packages','C:\\Python313\\lib\\site-packages\\win32','C:\\Python313\\lib\\site-packages\\win32\\lib','C:\\Python313\\lib\\site-packages\\Pythonwin','D:\test']1.6.4高级用法与常见问题1.7Python代码编写规范(1)缩进在函数定义、类定义、选择结构、循环结构、异常处理结构和with语句等结构中,对应的函数体或语句块都必须有相应的缩进。当某一行代码与上一行代码不在同样的缩进层次上,并且与之前某行代码的缩进层次相同,表示上一个代码块结束。1.7Python代码编写规范deftoTxtFile(fn):#函数定义withopen(fn,'w')asfp:#相对def缩进4个空格foriinrange(10):#相对with缩进4个空格ifi%3==0ori%7==0:#相对于for缩进4个空格fp.write(str(i)+'\n')#相对于if缩进4个空格else:#选择结构的else分支,与if对齐fp.write('ignored\n')#相对于else缩进4个空格fp.write('finished\n')#for循环结构结束,与for对齐print('alljobsdone')#with块结束,与with对齐
toTxtFile(r'D:\text.txt')#函数定义结束,调用函数1.7Python代码编写规范(2)空格与空行1.7Python代码编写规范(3)标识符命名在为标识符起名字时,至少应该做到“见名知义”,优先考虑使用英文单词或单词的组合作为标识符名字。如果使用单词组合的话有两种常用形式,一种是使用单个下画线连接单词(例如str_name),一种是标识符名字首字母小写而后面几个单词的首字母大写(例如strName),变量名和函数名可以使用任意一种形式,类名一般使用第二种形式并且首字母大写。另外,变量名不适合太长,有的程序员总担心别人看不明白自己的变量名表示什么,干脆使用一个完整句子十几个单词的组合作为变量名,这样做是不合适的。1.7Python代码编写规范例如,使用age表示年龄、number表示数量、radius表示圆或球的半径、price表示价格、area表示面积、volume表示体积、row表示行、column表示列、length表示长度、width表示宽度、line表示直线、curve表示曲线,getArea或get_area表示用来计算面积的函数名,setRadius或set_radius表示修改半径的函数。除非是用来临时演示或测试个别知识点的代码片段,否则不建议使用x、y、z或者a1、a2、a3这样的变量名。1.7Python代码编写规范除“见名知义”这个基本要求之外,在Python中定义标识符时,还应该遵守下面的规范。必须以英文字母、汉字或下划线开头。中间位置可以包含汉字、英文字母、数字和下画线,不能有空格或任何标点符号。不能使用关键字,例如yield、lambda、def、else、for、break、if、while、try、return都是不能用作标识符名称的。对英文字母的大小写敏感,例如student和Student是不同的标识符名称。不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作变量名或者自定义函数名、类名,例如type、max、min、len、list这样的变量名都是不建议作为变量名的,也不建议使用math、random、datetime、re或其他内置模块和标准库的名字作为变量名或者自定义函数名、类名。1.7Python代码编写规范(4)续行expression1=1+2+3\#使用反斜线作为续行符+4+5expression2=(1+2+3#把多行表达式放在圆括号中表示是一条语句+4+5)1.7Python代码编写规范exp1=[1,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ERAS护理工作制度
- 2026年健康管理师(健康管理服务职业保障)自测试题及答案
- 保密与保密工作教学设计中职专业课-秘书基础-行政事务助理-公共管理与服务大类
- 基于大概念的单元整体学习 的“教、学、评”一致性教学设计
- 北师大版八年级下册2 分式的乘除法教案
- 男外套教学设计中职专业课-服装结构制图-服装设计与工艺-轻工纺织大类
- 人教版八下道德与法治8.2公平正义的守护教学设计
- 沪教牛津版(六三制一起)四年级下册Module 3 My colourful lifeUnit9 A friend in Australia教案及反思
- 科学苏教版4.生态平衡教案设计
- 九年级化学下册 第7单元 常见的酸和碱 第3节 溶液的酸碱性教学设计 (新版)鲁教版
- 2026年大连公交客运集团有限公司校园招聘笔试参考试题及答案解析
- 2026年红楼梦女性观透过人物分析
- 2026云南楚雄州南华县国有资本管理有限公司招聘13人笔试参考试题及答案解析
- 2025届吉林省长春市高三下学期质量监测(二)化学试卷(含答案)
- 2026国家安全教育知识测试题及答案
- 2025年版义务教育劳动课程标准
- 2025年前海超量子基金笔试及答案
- 2.1区域发展的自然环境基础(教学课件)-2025-2026学年高中地理选择性必修2(人教版2019)
- 2025年事业编江苏时政考试题库及答案
- 全国肿瘤防治宣传周科普
- 2025年贵州茅台酒销售有限公司社会招聘22人笔试历年参考题库附带答案详解
评论
0/150
提交评论