版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的 Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 后直接执行代码。 Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。 2.易于阅读:Python代码定义的更清晰。 3.易于维护:Python的成功在于
2、它的源代码是相当容易维护的。 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C+完成那部分程序,然后从你的Python程序中调用。 8.数据库:Python提供所有主要的商业数据库的接口。 9.GUI编程:Python支持GUI可以
3、创建和移植到许多系统调用。 10.可嵌入: 你可以将Python嵌入到C/C+程序,让你的程序的用户获得脚本化的能力。Python的应用方向1. 常规软件开发常规的软件开发、脚本编写、网络编程能力。2. 科学计算很多流行的NumPy,SciPy,Matplotlib,Enthoughtlibrarys等众多程序库的开发用的模块,很适合于做科学计算、绘制高质量的2D和3D图像。在日常的科研开发之中仍然有很多的工作是可以用Python代劳的。3. 自动化运维这几乎是Python应用的自留地,作为运维工程师首选的编程语言,Python在自动化运维方面已经深入人心,比如Saltstack和Ansibl
4、e都是大名鼎鼎的自动化平台。4. 云计算开源云计算解决方案OpenStack就是基于Python开发的。5. WEB开发基于Python的Web开发框架Django,Tornado,Flask等,流行的Python+Django架构。6. 数据分析在大量数据的基础上,结合科学计算、机器学习等技术,对数据进行清洗、去重、规格化和针对性的分析是大数据行业的基石。Python是数据分析的主流语言之一。7. 人工智能Python在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。Python的就业方向发展前景一:Linux运维发展前景二:Python W
5、eb网站工程师发展前景三:Python自动化测试发展前景四:数据分析发展前景五:人工智能命名规则变量名的首字符必须是字母或下划线;可以由字母、数字或下划线组成。1、变量名通常是字母和下划线组成;包名、模块名通常用小写字母。2、类名首字母用大写,其他字母采用小写。对象名用小写字母。3、函数名通常采用小写。下划线或单词首字母大写来增加名称的可读性,导入的函数以模块名做前缀。代码缩进1、代码缩进要求严格和IndentationError异常。2、编码前的统一规则,建议4个空格或单个制表符。注释1、#注释2、中文注释在源码里可以写中文#-*-coding: UTF-8-*-3、跨平台注释 #! /us
6、r/bin/python运行在windows以外的平台结束标记1、语句的结束 可以使用 分号, 也可以使用 回车2、Python中推荐使用回车作为一条语句的结束变量的赋值变量名的首字符必须是字母或下划线;可以由字母、数字或下划线组成。变量无需声明局部变量- 只在函数或代码段内使用的变量,- 函数或代码段一旦结束, 局部变量的生命周期也将结束.全局变量- 全局变量能被不同的函数,类或文件共享的变量- 在函数外定义的变量都是全局变量, 通常定义在文件的开始处- 在函数里 用 global 全局变量名 引用全局变量- 应该避免使用全局变量备注:python创建的变量就是一个对象, python会管理
7、变量的生命周期. Python对变量的回收采用的也是垃圾回收机制声名变量的格式:变量名 = 值(值的类型决定变量的类型) 例如:counter = 100 # 整型变量miles = 1000.0 # 浮点型变量name = John # 字符串变量flag = True # 布尔类型变量多个变量的赋值:python支持同时为多个变量赋值:a = b = c = 1为多个变量指定不同的值:name, age, sex = 张三, 23, 男使用type()函数可以查看变量的类型:age = 18.5print(type(age)常量常量是指一旦初始化就不能修改的固定值。Python没有提供定义
8、常量的关键字。常量类代码#-*-coding:UTF-8-*-#Filename: const.py class _const:class ConstError(TypeError):pass def setattr (self, name, value):if self. dict .has_key(name):raise self.ConstError, Cant rebind const (%s) %nameself. dict name=value import syssys.modules name = _const()调用代码新建test.py:#-*-coding:UTF-8-*
9、-import const const.magic = 23 print const.magic const.magic = 33执行调用#python const.py#python test.py定义一个常量类实现常量的功能该类定义了一个方法 setattr() , 和一个异常ConstError, ConstError类继承自类TypeError. 通过调用类自带的字典 dict , 判断定义的常量是否包含在字典如果字典中包含此变量, 将抛出异常,否则,给新创建的常量赋值。最后两行代码的作用是把const类注册到sys.modules这个全局字典中。数据类型1、字符串a、使用单引号()用
10、单引号括起来表示字符串,例如:str=this is string;print str;b、使用双引号()双引号中的字符串与单引号中的字符串用法完全相同,例如:str=this is string;print str;c、使用三引号()利用三引号,表示多行的字符串,可以在三引号中自由的使用单引号和双引号,例如:str=this is stringthis is pythod string this is stringprint str;2、布尔类型bool=False;print bool; bool=True; print bool;3、整数int=20;print int;4、浮点数flo
11、at=2.3;print float;5、数字包括整数、浮点数。5.1、删除数字对象引用,例如:a=1;b=2; c=3;del a; del b, c;6.1 、初始化列表,例如:list列表中的元素逗号分隔,可以不是相同类型nums=1, 3, 5, 7, 8, 13, 20; =physics, chemistry, 1997, 2000;6.2 、访问列表中的值(第一元素从序号0开始),例如:nums0: 1print nums0:, nums0nums2:5: 5, 7, 8 从下标为2的元素切割到下标为5的元素,但不包含下标为5的元素print nums2:5:, nums2:5n
12、ums1: 3, 5, 7, 8, 13, 20 从下标为1切割到最后一个元素print nums1:, nums1:nums:-3: 1, 3, 5, 7 从最开始的元素一直切割到倒数第3个元素,但不包含倒数第三个元素print nums:-3:, nums:-3nums: 1, 3, 5, 7, 8, 13, 20 返回所有元素print nums:, nums:6.3、更新列表,例如:nums0=ljq;print nums0; 6.4、删除列表元素del nums0;nums: 3, 5, 7, 8, 13, 20print nums:, nums:;6.5、列表脚本操作符列表对+和*
13、的操作符与字符串相似。+号用于组合列表,*号用于重复列表,例如:print print print print for xlen(1, 2, 3); #31, 2, 3 + 4, 5, 6; #1, 2, 3, 4, 5, 6 Hi! * 4; #Hi!, Hi!, Hi!, Hi!3 in 1, 2, 3 #Truein 1, 2, 3: print x, #1 2 36.6、列表截取L=spam, Spam, SPAM!;print L2;print L-2;print L1:;#SPAM!#Spam#Spam, SPAM!6.7、列表函数&方法list.append(obj) 在列表末尾
14、添加新的对象list.count(obj) 统计某个元素在列表中出现的次数list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,索引从0开始list.insert(index, obj) 将对象插入列表list.pop(obj=list-1) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值list.remove(obj) 移除列表中某个值的第一个匹配项list.reverse() 反向列表中元素,倒转list.sort(func) 对原列表进行排序list.s
15、ort(reverse=True)7、元组(tuple)Python的元组与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号;元组创建很简单,只需要在括号中添加元素,并使用逗号(,)隔开即可,例如:tup1 = (physics, chemistry, 1997, 2000);tup2 = (1, 2, 3, 4, 5 );tup3 = a, b, c, d;创建空元组,例如:tup = ();元组中只有一个元素时,需要在元素后面添加逗号,例如:tup1 = (50,);元组与字符串类似,下标索引从0开始,可以进行截取,组合等。7.1、访问元组tup1 = (phy
16、sics, chemistry, 1997, 2000);#tup10: physicsprint “tup10: ”, tup10 #tup11:5: (chemistry, 1997,2000) print tup11:5: , tup11:57.2、修改元组元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,例如:tup1 = (12, 34.56);tup2 = (abc, xyz);# 以下修改元组元素操作是非法的。# tup10 = 100;# 创建一个新的元组tup3 = tup1 + tup2;print tup3; #(12, 34.56, abc, xyz)7.3、
17、删除元组元组中的元素值是不允许删除的,可以使用del语句来删除整个元组,例如:tup = (physics, chemistry, 1997, 2000);print tup; del tup;7.4、元组运算符与字符串一样,元组之间可以使用+号和*号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。7.5、元组索引&截取L = (spam, Spam, SPAM!);print L2; print L-2;print L1:;#SPAM!#Spam#Spam, SPAM!7.6、元组内置函数cmp(tuple1, tuple2) 比较两个元组元素。len(tuple) 计算元
18、组元素个数。max(tuple) 返回元组中元素最大值。min(tuple) 返回元组中元素最小值。tuple(seq) 将列表转换为元组。8.1、字典简介字典(dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典由键和对应的值组成。字典也被称作关联数组或哈希表。基本语法如下:dict = Alice: 2341, Beth: 9102, Cecil: 3258;也可如此创建字典:dict1 = abc: 456 ; dict2 = abc: 123,
19、98.6: 37 ;每个键与值必须用冒号隔开(:),每对用逗号分割,整体放在花括号中()。键必须独一无二,但值则不必;值可以取任何数据类型,如字符串,数或元组。8.2、访问字典里的值#!/usr/bin/pythondict = name: Zara, age: 7, class: First;print dictname: , dictname;print dictage: , dictage;8.3、修改字典向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例: #!/usr/bin/pythondict = name: Zara, age: 7, class: Fir
20、st; dictage=27; #修改已有键的值dictschool=wutong; #增加新的键/值对print dictage: , dictage;print dictschool: , dictschool;8.4、删除字典del dictname; # 删除键是name的条目dict.clear(); # 清空词典所有条目del dict ; # 删除词典例如:#!/usr/bin/pythondict = name: Zara, age: 7, class: First;del dictname;#dict age: 7, class: Firstprint dict, dict;
21、注意:字典不存在,del会引发一个异常8.5、字典内置函数&方法cmp(dict1, dict2) 比较两个字典元素。len(dict) 计算字典元素个数,即键的总数。str(dict) 输出字典可打印的字符串表示。type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。radiansdict.clear() 删除字典内所有元素radiansdict.copy() 返回一个字典的浅复制radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值radiansdict.get(key, default=None
22、) 返回指定键的值,如果值不在字典中返回default值radiansdict.has_key(key) 如果键在字典dict里返回true,否则返回falseradiansdict.items() 以列表返回可遍历的(键, 值) 元组数组radiansdict.keys() 以列表返回一个字典所有的键radiansdict.setdefault(key, default=None) 和get()类似, 但如果键已经不存在于字典中,将会添加键并将值设为default radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里radiansdict.value
23、s() 以列表返回字典中的所有值,9.1、集合集合(set)是由一个或数个形态各异的大小整体组成的构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 或者 set() 函数创建集合注意:创建一个空集合必须用 set() 而不是 , 因为 是用来创建一个空字典。创建格式:parame = value01,value02,.或者 set(value)9.2、集合列表转集合setname=set(listname)集合转列表listname=list(setname)setname=update(string)做为整体加入集合setname=add(str
24、ing)拆分后加入集合单分支:if 判断条件:代码块如果单分支语句的代码块只有一条语句,可以把if语句和代码写在同一行:if 判断条件: 一句代码实例:判断指定的uid是不是root用户uid = 0if uid = 0:print(root)也可以这样写:uid = 0if uid = 0: print(root)输出结果:root双分支:if 判断条件:代码块else:代码块实例:根据用户id打印用户身份uid = 100if uid = 0:print(root) else:print(Common user)输出结果:Common user多分支:if 判断条件1:代码块1 elif
25、判断条件2:代码块2.elif 判断条件n:代码块nelse:默认代码块实例:根据学生分数打印字母等级基本形式while循环语句的基本形式如下:while 判断条件: 代码块当给定的判断条件的返回值的真值测试结果为True时执行循环体的代码,否则退出循环体。实例:计算1-9的和while死循环当while的判断条件一直为True时,while循环体中代码就会永远循环下去。while True:print(这是一个死循环)while.else 语 句 形 式 : while 判断条件:代码块else:代码块else中的代码块会在while循环正常执行完的情况下执行,如果while循环被break
26、中断,else中的代码块不会执行。实例1:while循环正常执行结束的情况(else中的语句会被执行) while_esle.pycount = 0while count =9: print(count) count += 1else:print(end)执行结果为:0 1 2 3 4 5 6 7 8 9 end实例2:while循环被中断的情况(else中的语句不会被执行) while_break.pycount = 0while count =9: print(count) if count = 5:break count += 1else:print(end)输出结果:0 1 2 3 4
27、 5循环控制语句可以更改循环体中程序的执行过程,如中断循环、跳过本次循环。循环控制语句说明break终止整个循环continue跳过本次循环,执行下一次循环passpass语句是个空语句,只是为了保持程序结构的完整性,没有什么特殊含义。pass语句并不是只能用于循环语句中,也可以用于分支语句中。循环嵌套是指:在一个循环体里面嵌入另一循环。实例1:通过while循环打印99乘法表j = 1while j = 9:i = 1while i = 3:break print(namesi)输出结果:TomPeterJerry包、模块、函数1、-Python的程序由 包(package)、模块(modu
28、le)、函数 组成. 2、-包是一系列模块组成的集合.3、-模块 是处理某一类问题的函数和类的集合.包1、-包 就是一个完成特定任务的工具箱,Python提供了许多有用的工具包,如字符串处理、图形用户接口、web应用、图像图形处理等这些自带的工具包和模块安装在Python的安装目录下的Lib目录2、-文件 init .py 包的注册文件.3、-包中至少含有一个 init .py文件,该文件的内容可以为空. init .py 用于标识当前文件夹是一个包模块和函数-Python的程序是由一个个模块组成,一个Python文件就是一个模块.-模块把一组相关的函数或代码组织到一个文件中.-当导入一个模块
29、时,Python 依次查找-当前目录,-lib目录, %python%lib-site-packages目录 %python%libsite-packages-环境变量PYTHONPATH指定的目录可通过sys.path语句搜索模块的查找路径模块和函数-myModule.py定义函数 和 类-callModule.py 导入myModule, 调用函数和类的成员- myModule.py - callModule.py -模块的导入在使用一个模块中的函数或类之前, 首先需要导入该模块. import module_name from module_name import func_name f
30、rom module_name import *注: import语句可以多次导入, 即使导入同一模块import语句可以置于程序中的任意位置, 甚至可以置于条件语句if 1 0 :import os print os.path模块中的if name = main :1: name 是一个变量。前后加了双下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。2:Python有很多模块,而这些模块是可以独立运行的!这点不像C+和C的头文件。3:import的时候是要执行所import的模块的。4: name 就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(
31、也就是调用其他模块的模块),那么此模块名字就是 main ,通过if判断这样就可以执行“ mian :”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“ mian :”后面的内容。面向对象编程一个类占有一个独立的空间,类中的属性(函数外)叫做类变量,类中的函数,叫做类的方法。类中的方法第一个参数self,表示的是实例对象,不是类。类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个实例对象所共有的属性和方法。对象是类的实例(对象是类实例化之后的结果)。类变量:定义在类中且在函数体之外。类变量通常不作为实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办公设备维护保养协议2026
- 2026年银行网点安全管理与服务标杆网点创建经验
- 2026年高血压防治健康教育处方
- 跨境电商平台产品售后服务协议
- 2025年工业物联网数字孪生模型验证方法
- 工伤保险理赔服务条款补充协议
- 2026年养老机构财务管理与成本控制
- 庆典活动策划服务合同2026年执行细则
- 法律事务合同纠纷调解与和解服务协议
- 2026年护理专业护士执业资格证注册流程
- 肝癌的超声诊断
- 5年(2021-2025)重庆高考地理真题分类汇编专题14 资源、环境与国家安全(原卷版)
- 2025年铁路公司招聘考试(计算机专业知识)经典试题及答案
- 废气处理设计计算书(完整版)
- 杀虫剂知识培训课件
- 干熄焦安全培训课件
- 数据中心液冷施工方案
- 路面坑洼修复方案
- 股权转让交割清单
- 瑞幸AI面试题库及答案
- 运维培训知识课件
评论
0/150
提交评论