上海交通大学-python程序设计课程PPT-Ch2_第1页
上海交通大学-python程序设计课程PPT-Ch2_第2页
上海交通大学-python程序设计课程PPT-Ch2_第3页
上海交通大学-python程序设计课程PPT-Ch2_第4页
上海交通大学-python程序设计课程PPT-Ch2_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据,现实世界信息的表示,数据处理,计算机=数据处理机器 计算=数据+处理 问题求解=信息表示+解法表示,信息,解法,现实世界问题,数据,处理,机器世界程序,数据,抽象:抽取与问题求解有关的信息进行计算机表示. 数据:现实世界事实或信息在计算机中的符号化表示. 温度:表示为35,或95,或摄氏35度 学生:,3,常量与变量,两种符号化表示: 字面值:从表面形式就知道是什么数据 例如: Hello,World!, 3.14, . 变量:用符号化名字表示数据 例如: s = Hello, World! print s Python通过赋值语句来定义变量 Python中的同时赋值: x,y = he

2、llo,3.14,4,数据类型,为了更精细地表示信息,编程语言提供不同的数据类型. 不同类型具有不同的存储方式和处理方式. 每种类型包含一个合法值的集合,以及一个合法运算的集合. 为何要区分数据类型? 类型信息可为系统利用 编译器/解释器利用类型检查,可以发现程序错误. 相当于量纲分析.,5,整数类型,整数类型int 不带小数点 例如: 123 -456 0 计算机可存储整数的精确值,整数的限制,计算机中的数值是现实数值的一种计算机表示,两者不同! 例如:整数集I是无穷集,但int是有穷的. 二进制是计算机表示数据的基础 n位二进制只能表示2n个不同值 整数若用32位表示,则int范围为231

3、 2311 2147483647 2147483647 2147483648 2147483648L,长整数类型,长整数类型long:不定长,可扩至任意长度(仅受限于存储器容量). 如5L, 1234567890000L 5L和5具有完全不同的计算机表示! 经验:long的运算效率远低于int,因此能用int就不用long. 下面的结果是怎么回事? print 2l + 3 5,类型转换,理论上,相同类型的数据才能相互运算. 2 + 3 4L 5L 类型相近的数据也可以相互运算,系统会执行自动的类型转换. 2 + 3L 5L 系统先将int类型的2转换成long类型的2,从而可与3L运算.注意

4、不是long转换成int!,计算是次序的艺术,int类型的范围: 231 2311 2*31 - 1 2147483647L 未超出int范围,为什么结果是long? 如何计算2311,并使结果在int中? 2*30 1 + 2*30 2147483647 计算思维与数学思维是不同的!,浮点数类型,浮点数类型float 带小数点 例如: 3.14 -2.718 13. 0.0 计算机只能存储浮点数的近似值!,浮点数类型的限制,有限的float不等于数学中的实数集R 浮点数在计算机内部是用有限的固定长度的二进制数来表示的,无法精确表示. 1.2 1.0 0.19999999999999996 2

5、.2 1.2 1.0000000000000002 2.0 1.0 1.0 科学记数法:Python自动用来表示很大或很小的浮点数. 如何进行精确的财务计算?,类型转换,在混合类型表达式中,Python自动转换: int long float 人工转换:利用int(), long(), float() 思考:求整数的平均值时用哪个好? avg = sum / count avg = float(sum) / count avg = float(sum / count) 浮点数取整时如何做到四舍五入? int(x+0.5) round(),数学库,库:包含有用定义的模块. 最常见的是函数定义 一

6、般由系统提供,也可自己开发给别人用. 数学库:包含有用的数学函数. 数学库的两种导入方式: import math from math import * 数学库函数的调用:例如求平方根 math.sqrt(4) sqrt(4),数学库中的常用函数,pi : 常数 e : 常数e sqrt(x): 平方根 sin(x), cos(x), tan(x), asin(x), acos(x), atan(x): 三角函数 log(x), log10(x):自然对数与常用对数 exp(x): e的x次方 ceil(x): x的最小整数 floor(x): x的最大整数,文本数据,计算机应用 科学计算 信

7、息管理 信息管理中大量的数据都是文本数据. 如:姓名,地址,简历等等 小测验:身份证号码,电话号码等是数值? 计算机中用字符串来表示文本数据.,16,字符串类型,字符串类型str:字符序列 字符串字面值:用一对引号(单/双/三)括住. hello world !#$%count(s,sub);find(s,sub); rfind(s,sub);replace(s,oldsub,newsub) from string import * capwords(hello world!) Hello World! count(知之为知之不知为不知,不知) 2 find(知之为知之不知为不知,不知) 10

8、 (为什么是10?) rfind(知之为知之不知为不知,不知) 16 print replace(知之为知之不知为不知,知,zhi) zhi之为zhi之不zhi为不zhi,布尔类型,布尔类型bool 合法值:True, False.用于表达真,假数据 3 2 True 4 + 5 = 5 + 4 True a = -8 a * 2 a False like lake False 更多内容以后结合if语句介绍,列表类型(1),int,long,float,bool都是原子值 str是由多个字符组成的序列 列表类型list 是集合体多个数据组成的序列 例如 1,2,3 list,sequence,

9、列表类型(2),list与其他语言中的array相似,但不同 不固定长度,可以增删成员 不要求各成员都是相同类型的 成员本身也可以是列表 例如 2,apples 1,two,3.0,True 1,apple,2,pears,列表操作(1),索引 通过在序列中的位置编号来访问成员 例如 x = 1,two,3.0,True x0 1 x-1 True x1+1 3.0,列表操作(2),子列表 指定序列中的开始和结束位置 : 例如 x = 1,two,3.0,True x0:2 1,two x1: two,3.0,True x:-1 1,two,3.0,列表操作(3),索引和子列表操作都和字符串相

10、似 列表也有+和*操作,意义和字符串类似 1,3,5+2,4 1,3,5,2,4 4*0 0,0,0,0 列表vs字符串:字符串不能增删改,而列表可以 x = 1 x0 = 2 x 2 x = x + two x 2,two,与列表有关的几个内建函数,求列表长度len() len(1,3,5) 3 x = 4*0 len(x) 4 删除列表成员del() x = 1,2,3 del x1 x 1,3 产生整数列表range() range(10) 0,1,2,3,4,5,6,7,8,9 range(1,10,2) 1,3,5,7,9,元组类型,元组类型tuple 用圆括号括起的成员集合体 和列

11、表基本相同,只是不能增删改成员 t1 = (1,2,3) t2 = () print (8),(8,) t11 t10:2 t1 + t2,输入(1),程序中数据如何提供? 编程时提供 def main(): name = Lucy age = 7 birthYear = 2012 - age print name,was born in, str(birthYear)+. main(),输入(1),程序中数据如何提供? 编程时提供 运行时输入: = input() x = input(请输入:) n,a = input(请输入姓名和年龄) def main(): name = input(请

12、输入姓名:) age = input(请输入年龄:) birthYear = 2013 - age print name,was born in,str(birthYear)+. main(),输入(2),另一种输入函数 = raw_input() input将输入内容作为表达式来求值,而raw_input将输入整体视为字符串. 例如 n = raw_input(输入姓名) Lucy a = raw_input(输入年龄) 2013 eval(a),input与raw_input,例:比较 x = input() x = raw_input() John John x x x = input(

13、) x = raw_input() 3*4+2 3*4+2 x x 可见raw_input()将输入当成字符串数据.,39,字符串的输入,错误输入: str = input(Enter a string: ) Enter a string: John 原因:input()是把输入当成表达式来计算的! 解决方法: 输入时加上引号 使用raw_input(),40,输出,输出语句print print print print , , . , print , , . , ,输出,print 3+4 print 3, 4, 3+4 print print 3, 4, print 3+ 4 print

14、“The answer is”, 3+4,7 3 4 7 3 4 7 The answer is 7,格式化输出,格式化运算符% % 模板串中用%标记“空位”,输出时用值填入. 格式化运算的结果是一个字符串. 例如 print “The price is $%0.2f” % (100),格式描述,空位:格式指示符,描述了填入的值的输出形式. %. 三种类型字符:decimal, float, string 宽度:用多少位置显示数值. 省略或指定为0:根据值的实际长度显示. 宽度超出值的长度时:右对齐显示 宽度前加负号:左对齐. 对浮点数用超长宽度会怎样?试试 精度:指示浮点数值的小数位数. 省

15、略:按系统默认的小数位数显示. print %f % (math.pi),格式实例, Hello %s %s, you may have already won $%d % (Mr., Smith, 10000) Hello Mr. Smith, you may have already won $10000 This int, %5d, was placed in a field of width 5 % (7) This int, 7, was placed in a field of width 5 This int, %10d, was placed in a field of wit

16、dh 10 % (10) This int, 10, was placed in a field of witdh 10 This int, %10d, was placed in a field of width 10 % (7) This int, 7, was placed in a field of width 10 This float, %10.5f, has width 10 and precision 5. % (3.1415926) This float, 3.14159, has width 10 and precision 5. This float, %0.5f, has width 0 and precision 5. % (3.1415926) This float, 3.14159, has width 0 and precision 5. Compare %f and %0.20f % (3.14, 3.14) Compare 3.140000 and 3.14000000000000010000,编程实例:表查找,在一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论