您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Python > Python-教程-chapter3
数值计算数据类型数据–程序存储与操作的信息称为数据数据分成不同类型–不同的存储与操作–数据的类型决定了数据能取什么值,以及能做哪些运算(操作)2数据类型为何要分类型?–正确性类型本身代表了某种信息,可为程序利用编译器/解释器利用类型检查,可以发现程序错误.例如:1+”abc”–效率不同类型有不同实现效率,可选最合适类型,专用有利于速度例如整数和长整数3数值数据类型整数类型int–不带小数点–可存储整数的精确值浮点数类型float–带小数点(底层实现其实很困难的)–计算机只能存储浮点数的近似值4数值数据类型经验:如果不是确实需要小数,就用int.例如:银行系统。可以考虑用”分”为单位type()函数–返回值的类型类型是可扩充的5数值运算符运算符整数浮点数加加减减乘乘除(结果取整)除乘方乘方余数(商取整时的)余数abs()绝对值绝对值6数值运算符运算数都是整数,结果为整数。例如:5/3=15%3=2至少有一个运算数是浮点数,结果为浮点数.运算规则–如果整数和浮点数做运算,类型检查不报错,而是自动类型转换(某些类型可以互换)7数学库库:包含有用定义的模块.–最常见的是函数定义–一般由系统提供,也可自己开发给别人用数学库:包含有用的数学函数数学库的引入:importmath数学库中函数的调用:例如求平方根math.sqrt(4)#到数学库math中找函数sqrt数学库库中函数引入和使用的另外一种方式frommathimportsqrt#引入数学库中的sqrt函数sqrt(4)frommathimport*#引入数学库中所有的函数注意:引入方式不同,对应的使用方式不同编程例:quadratic.pyimportmathdefmain():a,b,c=input(“Enterthreecoefficients:”)discRoot=math.sqrt(b*b–4*a*c)#浮点数#用到math.sqrt()函数r1=(-b+discRoot)/(2*a)#浮点数和整数r2=(-b–discRoot)/(2*a)print“Thesolutionsare:”,r1,r2main()–测试程序:1,5,310思考小测验:不用sqrt()能求平方根吗?11说明小测验:不用sqrt()能求平方根吗?**0.5说明:库函数一般效率高.12数学库中的常用函数常数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的最大整数一种常用算法模式:累积最终结果是由逐个中间结果累积起来形成的.–例如6!的计算:先算6*5,再*4,…,再*1而得.这种累积程序需要一个存放累积结果的变量,累积过程是一个循环:初始化累积变量循环直至得到最终结果计算累积变量的当前累积值初始化:给累积变量一个合适的初值,以便进入循环后能正确计算–忘记初始化是一个常见编程错误!例如:阶乘计算程序具体数(如6)的阶乘fact=1#初始化forfin[6,5,4,3,2,1]:fact=fact*f一般情形n=input(Enteranumber:)fact=1forfinrange(n,1,-1):fact=fact*fprintThefactorialof,n,is,fact注意range(6,1,-1)是[6,5,4,3,2]阶乘程序的几点注解由于乘法结合律,累积的次序是不重要的.如按下面的循环来累积:forfin[2,3,4,5,6]:forfin[2,4,6,1,3,5]:forfinrange(2,n+1)考虑为什么不是range(2,n)range()函数range(n):[0,…,n-1]range(start,n):[start,…,n-1]range(start,n,step):fact也可初始化为n整数的限制数值类型只是现实数值的一种计算机表示,与现实数值可能有不同的行为!–例如:整数集是无穷集,但int是有穷的(计算机局限性)二进制是计算机表示数据的基础–位bit和字节byte–n位二进制只能表示2n个不同值–整数若用32位表示,则int范围为231~2311整数的限制试试看:计算2147483647和2147483648(2311=2147483647)注意:Python2.7解决了更早版本的整数范围溢出现象,直接转换成大整数类型.(2147483648L)小测验:怎样计算2311使其结果不带L或者可以计算?(2*230-1=230-1+230)大数的表示longint:不定长,可扩至任意长度(当然受限于存储器容量).–如5L,1234567890000L–注意:5L和5有完全不同的表示–有长整数参加的运算,结果为长整数.–longint运算效率远低于int,因此能用int就不用longint.大数的表示浮点数很大时用科学表示法:1.234e+12(=1.234*1012)最大数:1.7976931348623158e+308?类型转换在混合类型表达式中,Python自动转换:intlongfloat人工转换:利用int(),long(),float()–小测验:求整数的平均值时用哪个好?avg=sum/countavg=float(sum)/countavg=float(sum/count)浮点数取整时如何做到四舍五入?–int(x+0.5)–round()作业通过的py源文件发给助教EX3.713,20Python使用中的问题import找不到文件时,看一下pathbrower,加入进去增加搜索路径1.编辑文本文件mypath.pthD:\myDir2.存入文件夹C:\pathon27\lib\site-packages.pyc字节码文件End
本文标题:Python-教程-chapter3
链接地址:https://www.777doc.com/doc-3942941 .html