版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章基础知识2021/6/2811.0Python是一种怎样的语言解释型语言,伪编译胶水语言开源跨平台免费、自由软件强类型、动态类型自动内存管理面向对象有大量可用的库增加其他语言编写并编译的模块即可扩展功能2021/6/2821.1Python版本之争2.x:一边鄙视一边用3.x:必然的趋势多版本共存与切换简便方法:更改系统环境变量path查看已安装版本的方法(在所启动的IDLE界面也可以直接看到):>>>importsys>>>sys.version'2.7.8(default,Jun302014,16:08:48)[MSCv.150064bit(AMD64)]'>>>sys.version_infosys.version_info(major=2,minor=7,micro=8,releaselevel='final',serial=0)2021/6/2831.2安装Python//doc///python默认编程环境:IDLE常用快捷键:Alt+P、Alt+N:浏览历史命令Ctrl+F6:重启Shell,之前定义的对象全部无效F1:打开Python帮助文档Alt+/:自动补全前面曾经出现过的单词,在多个单词中循环选择Ctrl+[、Ctrl+]:缩进代码Alt+3、Alt+4:注释、取消注释其他可选开发环境:wxPython、Jython、2021/6/2841.3使用pip管理第三方包Python2中需要单独安装下载地址:/pypi/pip安装方法:cmd==>pythonget-pip.py用法示例pipinstallNumPypiplistpipinstall--upgradeSomePackagepipuninstallSomePackagePython3安装包中已默认包含pip2021/6/2851.4Python基础知识2021/6/2861.4.1Python的对象模型对象是python语言中最基本的概念,在python中处理的每样东西都是对象。python中有许多内置对象可供编程者使用,内置对象可直接使用,如数字、字符串、列表、del等;非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random()等。2021/6/2871.4.1Python的对象模型常用内置对象2021/6/2881.4.2python的变量和引用1.变量的创建x=3创建了变量x,不需要提前声明变量a,b=3,5a,b=b,a2.引用在python中从变量到对象的连接称为引用。>>>x=3变量拥有自己的存储空间,变量连接到对象是该变量存储了对象单元的内存地址,并没有存储对象的值。x3变量对象引用2021/6/2891.4.2python的变量和引用3.共享引用 共享引用是指多个变量引用同一个对象。下面的语句使两个变量都引用同一个对象3>>>a=3>>>b=a使用id函数可以查看对象的内存地址4.垃圾回收机制对于没有任何变量指向的值,Python自动将其删除。Python跟踪所有的值,并自动删除不再有变量指向的值。2021/6/28101.4.2python的变量和引用5.对象类型的动态的,强类型>>>a=3>>>type(a)<type'int'>>>>a='4'>>>type(a)<type'str'>>>>a={3,5}>>>type(a)<type'set'>>>>a=[1,2,3]>>>type(a)<type'list'>2021/6/28111.4.2python的变量和引用6.变量命名以字母或下划线(有特殊含义)开头变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等等)不要使用关键字(在keyword模块中)作变量名不要使用系统内置的模块名或函数名(可以通过dir(__builtins__)查看)作变量名大小写敏感2021/6/28121.4.3数字数字是python中最常用的对象,属于不可变对象。可以表示任意大小的数字。>>>a=99999999999999999999999999999999>>>a*a9999999999999999999999999999999800000000000000000000000000000001L>>>a**3999999999999999999999999999999970000000000000000000000000000000299999999999999999999999999999999LPython的IDEL交互界面可以当做简便计算器来使用。2021/6/28131.4.3数字整数十进制整数如,0、-1、9、123十六进制整数,需要16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f来表示整数,必须以0x开头,如0x10、0xfa、0xabcdef八进制整数,只需要8个数字0、1、2、3、4、5、6、7来表示整数,必须以0o开头,如0o35、0o11二进制整数、只需要2个数字0、1来表示整数,必须以0b开头如,0b101、0b1002021/6/28141.4.3数字浮点数浮点数又称小数,15.0、0.37、-11.2、1.2e2、314.15e-22021/6/28151.4.3数字复数Python中的复数与数学上的复数一致,由实部和虚部构成,并且使用j或J来表示虚部。>>>a=3+4j>>>b=5+6j>>>c=a+b>>>c8+10j>>>c.real#复数的实部8.0>>>c.imag #复数的虚部10.0>>>a.conjugate()(3-4j)2021/6/28161.4.4字符串用单引号、双引号或三引号括起来的符号系列称为字符串单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串。'abc'、'123'、'中国'、"Python"字符串属于不可变序列
空串表示为''或""
三引号'''或"""表示的字符串可以换行,支持排版较为复杂的字符串;三引号还可以在程序中表示较长的注释。2021/6/28171.4.4字符串1.字符串合并>>>a='abc'+'123'#生成新对象2.字符串格式化把对象按格式要求转换为字符串。>>>a=3.6674>>>'%7.3f'%a#或者直接使用str(a)'3.667'2021/6/28181.4.4字符串3.转义字符\n:换行符\t:制表符\r:回车\’:单引号\”:双引号\\:一个\\ddd:3位八进制数对应的字符\xhh:2位十六进制数对应的字符字符串界定符前面加字母r表示原始字符串,其中的特殊字符不进行转义,但字符串的最后一个字符不能是\。2021/6/28191.4.5操作符和表达式2021/6/28201.4.6常用内置函数内置函数不需要导入任何模块即可使用执行下面的命令可以列出所有内置函数>>>dir(__builtins__)2021/6/28211.4.6常用内置函数2021/6/28221.4.6常用内置函数2021/6/28231.4.7对象的删除Python中删除对象用del语句。del用来删除一个对象,并释放对象所占资源。del的用法演示如下:>>>a=[1,2,3]>>>dela[1]>>>a[1,3]>>>x=5>>>x5>>>delx#此后x就不存在了2021/6/28241.4.8基本输入输出用Python进行程序设计,输入是通过input()函数来实现的,imput()的一般格式为:x=input('提示:')该函数返回输入的对象。可输入数字、字符串和其它任意类型对象。2021/6/28251.4.8基本输入输出输出是通过print语句来完成的,print语句的一般格式为:print对象1,对象2,...,对象n在Python3中,print是函数,而不是语句。2021/6/28261.4.8基本输入输出在Python2.7.8之前的版本中进行重定向输出的用法:>>>fp=open(r'c:\mytest.txt','a+')>>>print>>fp,"Hello,world">>>fp.close()在Python3.4.2版本中进行重定向输出的用法:>>>fp=open(r'd:\mytest.txt','a+')>>>print('Hello,world!',file=fp)>>>fp.close()2021/6/28271.4.9模块的使用Python默认安装仅包含部分基本或核心模块,但用户可以安装大量的扩展模块,pip是管理模块的重要工具。在Python启动时,仅加载了很少的一部分模块,在需要时由程序员显式地加载(可能需要先安装)其他模块。减小运行的压力,仅加载真正需要的模块和功能,且具有很强的可扩展性。2021/6/28281.4.9模块的使用import模块名>>>importmath>>>math.sin(0.5)#求0.5的正弦>>>importrandom>>>x=random.random()#获得[0,1)内的随机小数>>>y=random.random()>>>n=random.randint(1,100)#获得[1,100]上的随机整数可以使用dir函数查看任意模块中所有的对象列表,如果调用不带参数的dir()函数,则返回当前脚本的所有名字列表。可以使用help函数查看任意模块或函数的使用帮助。2021/6/28291.4.9模块的使用frommathimportsin#可以减少查询次数,提高执行速度frommathimport*#谨慎使用>>>frommathimportsin>>>sin(3)0.1411200080598672>>>frommathimportsinasf#别名>>>f(3)0.1411200080598672021/6/28301.4.9模块的使用可以使用sys.modules.items()显示所有预加载模块的相关信息在2.x中可以使用reload函数重新导入一个模块,在3.x中,需要使用imp模块的reload函数Python首先在当前目录中查找需要导入的模块文件,如果没有找到则从sys模块的path变量所指定的目录中查找。可以使用sys模块的path变量查看python导入模块时搜索模块的路径,也可以向其中append自定义的目录以扩展搜索路径。在导入模块时,会优先导入相应的pyc文件,如果相应的pyc文件与py文件时间不相符,则导入py文件并重新编译该模块。2021/6/28311.4.9模块的使用ossysmathLocale:提供了C语言本地化函数的接口,并提供相关函数实现基于当前locale设置的数字与字符串转换randomstructpickle:序列化datetimetimewmi:需安装tkinter:GUI开发urllib/urllib2:网页编程Pygame:游戏开发tkinter、wxPython:GUI编程SciPy:科学计算PIL:图像处理fabric:远程操作与部署,/en/1.10/capstone:反汇编框架ropper:ROP相关框架IDAPython:IDA插件,/p/idapython/Yara:恶意软件识别与分类引擎2021/6/28321.5Python代码规范(1)缩进类定义、函数定义、选择结构、循环结构,行尾的冒号表示缩进的开始python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了。同一个级别的代码块的缩进量必须相同。一般而言,以4个空格为基本缩进单位,可以通过下面的方法进行代码块的缩进和反缩进:FortmatIndentRegion/DedentRegion2021/6/28331.5Python代码规范(2)注释一个好的、可读性强的程序一般包含30%以上的注释。常用的注释方式主要有两种:以#开始,表示本行#之后的内容为注释包含在一对三引号'''...'''或"""..."""之间且不属于任何语句的内容将被解释器认为是注释在IDLE开发环境中,可以通过下面的操作快速注释/解除注释大段内容:FormatCommentOutRegion/UncommentRegion2021/6/28341.5Python代码规范(3)每个import只导入一个模块(4)如果一行语句太长,可以在行尾加上\来换行分成多行,但是更建议使用括号来包含多行内容。(5)必要的空格与空行运算符两侧、函数参数之间、逗号两侧建议使用空格分开。不同功能的代码块之间、不同的函数定义之间建议增加一个空行以增加可读性。(6)适当使用异常处理结构进行容错,后面将详细讲解。(7)软件应具有较强的可测试性,测试与开发齐头并进,后面将详细讲解。2021/6/28351.6Python文件名.py:Python源文件.pyc:Python字节码文件。对于Python模块,第一次被导入时将被编译成字节码的形式,以提高脚本的启动速度。对于非模块文件,直接执行时并不生成pyc文件,可以使用py_compile模块的compile函数进行编译。.pyo:优化的Python字节码文件。可以使用”python–Ofile.py”或”python–OOfile.py”进行优化编译。2021/6/28361.7Python程序的运行方式每个Python脚本在运行时都有一个__name__属性。如果脚本作为模块被导入,则其__name__属性被设置为模块名;如果脚本独立运行,则其__name__属性被设置为__main__。2021/6/28371.8编写自己的包与模块包可以看做处于同一目录中的模块。在包的每个目录中都必须包含一个__init__.py文件,该文件可以是一个空文件,仅用于表示该目录是一个包。__init__.py文件的主要用途是设置__all__变量以及所包含的包初始化所需的代码。其中__all__变量中定义的对象可以在使用from…import*时全部正确导入。2021/6/28381.9Python快速入门问题1:用户输入一个三位自然数,计算并输出其佰位、十位和个位上的数字。x=input('请输入一个三位数:')a=x//100b=x//10%10#或b=x%100//10c=x-100*a-10*b#或c=x%10printa,b,c2021/6/28391.9Python快速入门问题2:已知三角形的两边长及其夹角,求第三边长。importmathx=input('输入两边及夹角(度):')a,b,sita=xc=math.sqrt(a**2+b**2-2*a*b*math.cos(sita*math.pi/180))print'c=',c2021/6/28401.9Python快速入门上面的代码也可以写成这样,虽然减少了需要输入的代码,但一般不建议这样做:frommathimport*x=input('输入两边及夹角(度):')a,b,sita=xc=sqrt(a**2+b**2-2*a*b*cos(sita*pi/180))print'c=',c2021/6/28411.9Python快速入门这样就可以了:frommathimportsqrtx=input('输入两边及夹角(度):')a,b,sita=xc=sqrt(a**2+b**2-2*a*b*cos(sita*pi/180))print'c=',c2021/6/28421.9Python快速入门问题3:任意输入三个英文单词,按字典顺序输出。s
=
input('x,y,z=')x,
y,z
=
s.split(',')ifx
>
y:
x,y
=
y,xifx
>
z:x,z
=
z,xify
>
z:y,z
=
z,yprint(x,y,z)2021/6/28431.10TheZenofPythonBeautiful
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030全球元件参数测试仪行业调研及趋势分析报告
- 2024年科普知识竞赛试题库及答案(共70题)
- 2024年青少年禁毒知识竞赛小学组题库及答案(共60题)
- 2025年度特种钢材进口与国内销售合作协议
- 2025年度应急响应个人劳务派遣服务合同示范文本2篇
- 二零二五年度车库租赁及停车场运营管理合同4篇
- 数字化背景下学校师德师风教育的创新发展
- 数学教育与儿童发展游戏化教学的意义
- 二零二五年度铝扣板艺术装饰施工合同3篇
- 二零二五年度采砂场环境保护与修复合同3篇
- JB-T 8532-2023 脉冲喷吹类袋式除尘器
- 深圳小学英语单词表(中英文)
- 护理质量反馈内容
- 山东省济宁市2023年中考数学试题(附真题答案)
- 抖音搜索用户分析报告
- 板带生产工艺热连轧带钢生产
- 钻孔灌注桩技术规范
- 2023-2024学年北师大版必修二unit 5 humans and nature lesson 3 Race to the pole 教学设计
- 供货进度计划
- 国际尿失禁咨询委员会尿失禁问卷表
- 弥漫大B细胞淋巴瘤护理查房
评论
0/150
提交评论