您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第4章pdfxpdf
计算机科学导论——以Python为舟第4章Python学习简洁的PythonPython内置数据结构Python赋值语句Python控制结构Python函数调用Python自定义数据结构Python自定义数据结构有趣的小乌龟——Python之绘图Dr.沙行勉2015-3-201/TP计算机科学导论——以Python为舟引言前面的章节中,已经接触到一些Python程序,但并没有专门介绍Python语言。本章会引导大家学习Python中一些基础的语法,可以作为同学们编写Python程序时的参考。4.1小节将对比Python与C/C++,来展示Python的简洁性;4.2小节,将介绍Python的常用内置数据结构;4.3小节介绍Python的赋值语句;4.4小节,将分别介绍if,while,for三种结构控制语句;Python的函数调用的具体过程将在4.5小节介绍;除了内置的数据结构,Python还支持自定义数据结构,这部分内容将在4.6小节介绍。在学习Python语言的同时,本章也会介绍基本数据库方面的知识,这些知识主要在两方面教授。(1)Python的字典就是个类似数据库关系的结构,利用唯一的“键”来获取字典内相关的信息记录。(2)4.7小节介绍如何利用Python面向对象编程方式,来实现学生和课程数据库的功能。4.8小节将向大家介绍Python中一个有趣的部分——绘图。Dr.沙行勉2015-3-202计算机科学导论——以Python为舟第1节简洁的Python对比Python和C/C++两种语言对同一问题的实现。对于一个存放整数的数组,如果要将数组中每个元素值加1的值打印出来:#程序:c/c++数组各元素加1#程序:Python数组各元素加1#includestdio.harr=[0,1,2,3,4]voidmain(){foreinarr:intarr[5]={0,1,2,3,4};tmp=e+1inti,tmp;print(tmp)for(i=0;i5;i++){tmp=arr[i]+1;printf(“%d”,tmp);}}Dr.沙行勉2015-3-203计算机科学导论——以Python为舟简洁的PythonPython对该问题的实现明显比C语言简单很多。首先来分析一下这两段代码的不同之处:(1)C语言中,执行的代码必须要放置于函数中,而整个程序的入口地址是main函数;Python并没有这样的强制规定。(2)C语言中所要使用的每一个变量都需要事先定义,并显示的说明其类型,比如i,tmp。而Python中只需要在使用时,用赋值号“=”就可以了。(3)C语言在声明数组时,必须定义数组大小,例子中定义了一个大小为5的数组arr。而Python没有这样的要求,直接定义数组元素即可。Dr.沙行勉2015-3-204计算机科学导论——以Python为舟简洁的Python(4)C语言在遍历数组时,需要知道数组的大小以及计算索引值(index);而Python的for循环可以直接遍历列表中的每一个值,这种方式将能大大提高编程效率。(5)C语言中,每条语句必须以“;”分号结束,而Python没有这样的强行规定,如果一行要写多个语句,才必须用分号隔开,例如tmp=e+1;ptinte。(6)对于C语言,每一个语句块(函数,for循环……)都需要用{}花括号,而Python并不需要。C语言对每条语句的缩进没有硬性要求。而对于Python而言,同一个层次的语句必须要有相同的缩进。Dr.沙行勉2015-3-205计算机科学导论——以Python为舟Python优点软件质量高:Python高度重视程序的可读性、一致性。而且,Python支持面向对象程序设计(OOP,object-orientedprogramming),使得代码的可重用性、可维护性更高。提高开发效率:Python语法简单,使用方便。开发时需要录入的代码量也相对小很多,因此在调试、维护时也更容易。程序可移植性强:大多数的Python程序在不同平台上运行时,都不需要做任何改变。标准库的支持:Python提供了强大的标准库支持,支持一系列复杂的编程任务。在网站开发、数值计算等各个方面都内置了强大的标准库。Dr.沙行勉2015-3-206计算机科学导论——以Python为舟第2节Python内置数据结构Python基本数据类型列表(list)再谈字符串字典(Dictionary)——类似数据库的结构Dr.沙行勉2015-3-207计算机科学导论——以Python为舟引言CPU只认识0与1,程序怎么区分存放在内存中的0与1是什么呢?例如,地址1000H的内容为(01100001)2,Python如何知道这个单元是存放的是字符“a”还是“97”呢?数据类型!是数据类型决定了这个单元的内容是一个ASCII码的字符“a”,或者是一个整数“97”。用高中所学的集合来定义数据类型,它是一个集合以及定义在这个集合上的一组操作。例如,定义一个整数I类型如下:I类型的数据集合为:Set={-32767,-32768…,-1,0,1,2,…,32767,32768},操作包括{+,-,*,/,%}。如果指定地址为1000H的内存单元所存储的内容为I类型的数据,那么该内存单元存放的就是数值“97”。Dr.沙行勉2015-3-208计算机科学导论——以Python为舟数据类型结构图整数类型(integer)数值类型浮点型(float)复数(complex)布尔型(bool)内置数据类型字符串类型(string)Python序列列表(list)元组(tuple)数据类型字典(dictionary)映射——自定义类型——类(class)Dr.沙行勉2015-3-209计算机科学导论——以Python为舟2.1Python基本数据类型——整数类型如1,2,-3,100,9999均为整数,在Python3.0之后的版本中,整数类型的数值集合包括了所有的整数,并不会对整数的范围进行约束。这一点是非常有用的,在常见的编程语言中,单单是整数类型,就可以分为short,int,long,在这些语言中,整数所能支持的最大范围通常为(-2,147,483,648至2,147,483,647)。Python为这些数据类型提供的操作,包括从小学所学的数字操作符:{+,-,*,/,()},以及取余运算符:%,例如10%3结果为1。需要注意的是,除法“/”所得到的结果不是整数类型,而是浮点类型,比如9/3,得到的是3.0,要想得到整型3,需要使用“//”运算符。另外,Python还提供了幂运算(Power),使用“**”运算符,比如需要计算52时,只需要输入5**2即可。Dr.沙行勉2015-3-2010计算机科学导论——以Python为舟2.1Python基本数据类型——浮点型如5.0,1.6,200.985等有小数部分的数值为浮点型。其操作符与整数类型类似,唯一需要注意的是“//”运算符在浮点数运算中所得到的结果仍是浮点数类型,不过与“/”不同的是它将舍去小数部分。Dr.沙行勉2015-3-2011计算机科学导论——以Python为舟2.1Python基本数据类型——整数类型在编程中,经常需要产生随机数,Python提供能方便的内置函数以产生随机数。在Python中,要产生随机数,首先要在文件首加上引入random模块的语句,即importrandom。以下分别介绍使用Python如何产生随机浮点数与随机整数。左边程序使用了random.uniform(a.b)函数,该函数将生成一个介于a,b的浮点数。而右边程序为生成随机整数的函数:random.randint(a,b),该函数将产生一个介于[a,b](包含a和b)的随机整数。#程序:产生10-20的随机浮点数#程序:产生10-20的随机整数importrandomimportrandomf=random.uniform(10,20)i=random.randint(10,20)print(f)print(i)Dr.沙行勉2015-3-2012计算机科学导论——以Python为舟2.1Python基本数据类型——布尔型在生活中经常对某个疑问进行“Yes”和“No”或“是”和“不是”的回答,在数学中,对判断会作出“对”和“错”的回答。为了在计算机语言中规范这种表达,把结果是肯定的用“True”表示,把结果是否定的用“False”来表示。例如:#程序:布尔类型例子b=100101print(b)这里,b是布尔类型变量,b=100101为布尔表达式,运行此段程序,将输出True。布尔类变量只有二种可能值:True或False。Python提供一整套布尔比较和逻辑运算,“,,=,=,==,!=”,分别为小于,大于,小于等于,大于等于,等于,不等于6种比较运算符,以及“not,and,or”等逻辑运算符。Dr.沙行勉2015-3-2013计算机科学导论——以Python为舟2.1Python基本数据类型——字符串型字符串是字符的序列,在Python中有多种方式表示字符串,本节仅介绍最常用的两种,单引号与双引号,回顾本书中第一章“HelloWorld”的例子,在打印HelloWorld时,使用了print(Helloworld!)。这里采用了双引号来表示字符串类型,单引号‘Helloworld!’也可以表示字符串类型。如果输入的字符串用双引号表示,而字符串中有单引号,Python就会打印出用双引号中的所有字符串。如print(“book‘sprice”)结果为book’sprice。Dr.沙行勉2015-3-2014计算机科学导论——以Python为舟2.2列表前面所讲的字符串是一个序列,下面讲述的列表也是一个十分常用的序列。字符串的声明是在“”或者‘’内的,对于列表,它的声明形式为:L=[],执行这条语句时,将产生一个空列表。列表中的元素以“,”相间隔,例如,语句L=[1,3,5]定义了一个含有三个元素的列表。元素之间用‘,’相间隔。来回顾一下第二章所讨论过的数组,数组(Array)是由有限个元素组成有序集合,用序号进行索引。事实上,列表就类似数组这个数据结构,它为每个元素分配了一个序号。在Python中,将这种有顺序编号的结构称之为“序列”,序列主要包括:列表、元组、字符串等,本小节将介绍通用的序列操作以及列表,元组可以看成是不可以修改的列表,字符串的操作将在下一个小节进行介绍。Dr.沙行勉2015-3-2015计算机科学导论——以Python为舟2.2列表需要注意的是,不同于数组,列表中的元素类型可以是不一样的,也就是说,列表中的元素可以是整数型,浮点型,字符串,还可以是列表。例如,L=[1,1.3,’2’,”China”,[‘I’,’am’,’another’,’list’]]。这将给编程者带来许多便利,即可以将不同元素类型融合到一个列表中,同时,需要提醒读者的是,在对列表元素进行操作时,一定要注意元素类型,例如上述的L,如L[0]+L[2]操作将产生错误,因为整数型不能与字符串相加,而str(L[0])+L[2],与L[0]+int(L[2])都是正确的,不过第一个表达式得到的结果为“12”,而第二个得到的结果为3。Dr.沙行勉2015-3-2016计算机科学导论——以Python为舟2.2列表——序列的通用操作序号操作符说明1seq[index]获得下标为index的元素2seq[index1:index2(:stride)]获得下标从index1到index2间的元素集合,步长为stride3seq1+seq2连接序列seq1和seq24seq*expr序列重复expr次5objinseq判断obj元素是否包含在seq中序列的通用操作主要包括索引、分片、链接(加)、重复(乘),以及检查某个元素是否属于序列。Dr.沙行勉2015-3-2017计算机科学导论——以Python为舟2.2列表——序列的通用操作之索引序列中的所有元素都
本文标题:第4章pdfxpdf
链接地址:https://www.777doc.com/doc-2156381 .html