人工智能和机器学习--PPT02-Python编程简介.pdf
《人工智能和机器学习--PPT02-Python编程简介.pdf》由会员分享,可在线阅读,更多相关《人工智能和机器学习--PPT02-Python编程简介.pdf(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Python编程简介王秋月中国人民大学信息学院目录 Python起源 为什么要学习Python? 怎样高效学习Python? Python的开发环境 Jupyter Notebook Python基本编程 数据类型和变量 运算符和表达式 容器类型 控制流语句 函数 文件操作Python起源1989年末,Guido van Rossum为了打发圣诞节的无聊,创造了Python语言。2005年12月,入职Google工作。2012年12月,加入Dropbox公司。Guido van Rossum(1956 - )TOBIE IndexIEEE top programming languages o
2、f 2019Python特点丰富的库简单、易学可扩展、可嵌入解释性面向对象、高层免费开源、可移植为什么要学Python? 人生苦短,我用Python!Python的特点 简单、易学简单、易学 一种代表简单主义思想的语言,有简单的语法,容易上手。 伪代码本质是它最大的优点之一。 使你能够专注于解决问题而不是去搞明白语言本身。 面向对象的高层语言面向对象的高层语言 无需关注底层细节,而C/C+中需要操作指针。 与其他语言相比,以强大而又简单的方式实现面向对象编程。 解释性解释性 不需要被编译成二进制代码,可以直接在源代码上运行。 对于编译性语言(C/C+),源文件-编译/链接器-可执行文件。Pyt
3、hon的特点 免费开源,可移植性免费开源,可移植性 Unix衍生系统,Win32系统家族,掌上平台(掌上电脑/手机),游戏控制台(PSP)等等。 可扩展性,可嵌入性可扩展性,可嵌入性 如果一段关键代码希望运行得更快或者希望算法不公开,你可以把这部分程序用C或C+编写,然后在Python程序中使用。 可以把Python嵌入到C/C+程序中,从而向程序用户提供脚本功能。 丰富的库丰富的库 Python标准库确实很庞大,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器等等。此外还有其他高质量的库,如wxPython、Twisted和图像库等等。如何高效学习Python? 不需要具有计算机
4、专业的学位 不需要上一门完整的Python编程课 不需要记住所有的语法 自顶向下学习法: 先学习核心的编程概念 再学习使用一些相关的库 最后通过实际项目来运用知识和改进技术Python 2还是Python 3? Python 3不向下兼容Python 2,即Python 2中的一些函数和包不能在Python 3中使用 2010年发布的Python 2.7是Python 2最后的版本,Python 2将不再更新 2020年1月1日起,Python核心开发团队将不再对Python 2提供任何官方支持 Python 3是未来的主流 本课程中使用Python 3Python的开发环境 Anaconda
5、 一个用于科学计算的Python发行版 提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题 支持 Linux, Mac OS, Windows系统 下载:https:/ NumPy( http:/www.numpy.org/ ):用于处理(大)数组 Pandas(http:/pandas.pydata.org/):数据分析工具包 Matplotlib(http:/matplotlib.org):用于绘制图表 SciPy(http:/www.scipy.org):包含许多有用的科学函数 Scikit-learn(http:/scikit-learn
6、.org/):机器学习算法 IPython(http:/ipython.org/):基于Shell或浏览器的开发环境 Spyder( https:/www.spyder-ide.org/ ):交互式集成开发环境 此 前 被 称 为 IPythonNotebook 多语分析环境支持40多种编程语言 Jupyter 是 Julia, Python和R几个词的变位词 支持多种内容类型:代码、描述文本、图像、视频等等 http:/jupyter.org/Jupyter Notebook HTML &Markdown LaTeX(公式) Code(代码)Jupyter Notebook HTML &Ma
7、rkdown LaTeX(公式) Code(代码)Jupyter Notebook HTML &Markdown LaTeX(公式) Code(代码)Jupyter Notebook HTML &Markdown LaTeX(公式) Code(代码)Jupyter Notebook 代码被划分成多个单元代码被划分成多个单元,可以控制执行过程可以控制执行过程 允许进行交互式开发允许进行交互式开发 非常适合探索式分析与非常适合探索式分析与建模建模Jupyter Notebook %matplotlib inline 将图表显示在Jupyternotebook中Jupyter魔术命令 %matplo
8、tlib inline 将图表显示在Jupyternotebook中Jupyter魔术命令 %matplotlib inline 将图表显示在Jupyternotebook中 %timeit 记录一个单元的执行时间Jupyter魔术命令Jupyter魔术命令 %matplotlib inline 将图表显示在Jupyternotebook中 %timeit 记录一个单元的执行时间 %run filename.ipynb 运行另一个notebook或python文件的代码Jupyter魔术命令 %matplotlib inline 将图表显示在Jupyternotebook中 %timeit 记
9、录一个单元的执行时间 %run filename.ipynb 运行另一个notebook或python文件的代码 %load filename.py 将外部文件的内容拷贝粘贴到单元中import caffeSolverName = /root/workspace“sovler = caffe.AdamSolver(SolverName)test.pyJupyter快捷键可以通过Help Keyboard Shortcuts查看所有的快捷键从命令行转换:从命令行转换: jupyter nbconvert -to python notebook.ipynb从从Notebook导出代码:导出代码:抽
10、取Python代码Jupyter Notebook参考资料 Jupyter官网:https:/jupyter.org/ Jupyter Notebook快速入门: http:/ http:/ Markdown语法说明: https:/ 一个语句占一行 单个语句占多行,用反斜杠 多个语句在一行,使用分号;分隔 Python使用缩进表示代码块,而不是一对花括号 注释: 单行注释用# 多行注释用三个单引号 或者三个双引号 将注释括起来Hello World! print函数:print(“Hello World!”)数据类型(1) 基本数据类型: 数字(number) 整数(int):2,59,10
11、0,-3 小数(float):0.4,5.0,-0.78 布尔(bool):True,False 字符串(str):”How are you?”,this is a string.数据类型(2) 容器类型: 列表(list):1, 2, 5, 10 元组(tuple):(1, two) 集合(set):Mike, John, Marry 字典(dictionary):20120010: 98, 20120011: 89, 20120023:100变量 变量在被赋值的时候创建,无需声明 变量可以在任何时候被重新赋值为任何其他类型的值message = “Hello World!”print(me
12、ssage)message = “Hello Python Course!”print(message)type(message)message = 3.6print(“Python “, message)type(message)message = 100print(“There are “, message, “cars”)type(message)a, b, c, d = 20, 5.5, True, 4+3jprint(type(a), type(b), type(c), type(d)变量命名规则 变量名只能包含字母、数字和下划线。 变量名只能以字母或下划线开头。 变量名是大小写敏感
13、的。 变量名不要使用Python的关键字或函数名下面哪些变量名是不合法的:current balance, current_balance, currentBalance, current-balance, 4account, account4, _spam, _Spam, print, hello算术表达式 基本的算术运算符:+、-、*、/、/、%、*5 + 4 # 加法4.3 - 2 # 减法3 * 7 # 乘法2 / 4 # 除法,得到浮点数2 / 4 # 除法,得到整数17 % 3 # 取余2 * 5 # 乘方x = 3print(type(x) # Prints print(x) p
14、rint(x + 1) print(x - 1) print(x * 2) print(x * 2)x += 1print(x) x *= 2print(x) y = 2.5print(type(y) # Prints print(y, y + 1, y * 2, y * 2) 布尔表达式 True 和 False为预定义值;实际上是整数1 和 0 比较运算符:、=、=、!=,结果是布尔值 布尔运算符:not、and、or12 1312 = 1212 != 13True * 120 and 1(3+2) (5-7)(7=6) and (12!=21)t = Truef = Falseprint
15、(type(t) # Prints print(t and f) # Logical AND;print(t or f) # Logical OR;print(not t) # Logical NOT;print(t != f) # Logical XOR;字符串 字符串用单引号或双引号括起来 使用反斜杠转义特殊字符:n 换行符,t 制表符, 三引号用于大块的文本内容a = Hello world!b = Hello world!a = ba = Pers lectureprint(a)a = One line.nAnother line.print(a)b = One line,anothe
16、r line.print(b)字符串运算36# 字符串拼接a = Part 1b = and part 2a + + b# 字符串重复并拼接s = a * 2print(s)# 提取子串s0print(s0:4)print(s5:)print(s6:-1)# 字符串长度len(s)# 子串检测p in sP in sPart in s字符串不能改变37# 直接修改字符串会报错s0 = B# 构建新字符串s = B + s1: Python中的字符串不可修改!hello = helloworld = world“# 字符串格式化hw12 = %s %s %d % (hello, world, 1
17、2)print(hw12) 如果要改变一个字符串:用旧的字符串片段生成一个新的 如果要生成许多新串,尝试字符串格式化 列表(List)处理能让字符串处理更为有效字符串的方法38s = a string, with stuffs.count(st) # 有多少子串?s.find(stu) # 寻找子串,如果有,给出子串的位置s.replace(stuff, characters) # 替换子串 (全部出现过的子串)s.replace(s, X, 1) # 只替换一次s = 3s.isdigit() # 是纯数字串吗? 字符串有一组内建(built-in)方法 没有方法可以改变原串,有几个方法可以
18、生成新串s = helloprint(s.capitalize() # 首字母大写;输出Helloprint(s.upper() # 所有字符转换成大写字符;输出HELLOprint(s.rjust(7) # 右对齐,左端补空格;输出 helloprint(s.center(7) # 居中对齐,左右两端补空格;输出 hello print( world .strip() # 去除前后的所有空白符;输出world列表39r = 1, 2.0, 3, 5 # 列表实例,不同的值type(r) # 输出r1 # 通过下标来访问; 偏移量为 0 r-1 # 负的下标代表从尾部开始计数r1:3 # 列表
19、的片段; 给出新的列表w = r + 10, 19 # 合并列表; 给出另外的一个列表wr # 原列表不变; w 和 r 不同t = 0.0 * 10 # 用重复生成一个初始向量t 有序的对象序列 异质的;可以包含任意类型的对象的混合列表操作40r = 1, 2.0, 3, 5r3 = word # 通过下标改变一个元素(项)r # 显示1, 2.0, 3, wordr0 = 9, 8 # 列表可以嵌套r # 显示9, 8, 2.0, 3, wordr0:3 = 1, 2, 5, 6 # 改变列表的一个片段,可以改变列表的长度r # 显示1, 2, 5, 6, wordr1:3 = # 通过设
20、置列表的片段为空集来移除元素r # 显示1, 6, wordlen(r) # 列表的长度,即项的个数,显示36 in r # 成员测试,显示Truer.index(6) # 搜索并给出位置,如果没有的话,报错,这里显示1列表是可变的,可以改变局部列表的方法(1)41r = 1, 2.0, 3, 5r.append(thing) # 在列表尾增加一个项r # 显示1, 2.0, 3, 5, thingr.append(another, list) # 增加的列表被看作一个单一项r # 显示1, 2.0, 3, 5, thing, another, listr = 1, 2.0, 3, 5r.ex
21、tend(item, another) # 列表的项逐次添加r # 显示1, 2.0, 3, 5, item, anotherk = r.pop() # 移除最后一项k# 显示anotherr # 显示1, 2.0, 3, 5, itemr.insert(3, 4.0) # 在指定位置插入一项r # 显示1, 2.0, 3, 4.0, 5, itemr.remove(item) # 删除一项r # 显示1, 2.0, 3, 4.0, 5列表的方法(2)42r = 2, 5, -1, 0, 20r.sort() r# 显示-1, 0, 2, 5, 20w = apa, 1, 2, 1234w.s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 机器 学习 PPT02 Python 编程 简介
限制150内