美文网首页
2020年3月11日 第二章 基本数据类型、运算符和表达式 -1

2020年3月11日 第二章 基本数据类型、运算符和表达式 -1

作者: anivad | 来源:发表于2020-03-15 19:18 被阅读0次

    第二章 基本数据类型、运算符和表达式 -1

    1.基本数据类型

    2.运算符

    3.常用内置函数

    4.表达式、赋值语句与运算符的优先级

    5.math库

    数据类型概述

    数据类型

    • 计算机对数据进行运算的时候,需要确定数据的类型和含义
    • 确定了数据类型,才能确定变量的存储以及操作
    • 计算机对数据的识别和处理有两个基本要求,确定性和高效性
    • Python中常用的数据类型包括数值类型、字符串类型、布尔类型等。

    Python我们身边的计算器

    数值类型

    • 整数
    • 浮点数
    • 负数

    数值类型的运算

    • 数值运算操作符
    • 数值运算函数
    • math库

    数值类型

    数值类型

    • 表示数值或数字的数据类型
    • 在Python中提供3种数值类型,整数、浮点数和复数,分别对应数学中的整数、实数和复数。
    >>> 3+5
    8            #整数
    >>> 3.14*2  
    6.28         #浮点数
    >>> 5+6j    #复数
    (5+6j)
    

    整数类型

    • 与数学中的整数概念一致
    • 共有4种进制表示:十进制、二进制、八进制和十六进制,默认采用十进制,其他进制需要增加引导符(不区分大小写)
    • 进制引导符
      • 二进制 0b或0B 如:0b101,0B1010
      • 八进制 0o或0O 如:0o127, 0O345
      • 十六进制 0x或0X 如:0x12AB, 0x34EF3
    • 理论上的取值范围是[-∞,+ ∞]
    • 实际上的取值范围受限于运行Python程序的计算机内存大小
    • 除极大数的运算外,一般认为整数类型没有取值范围限制
    >>> 127     #十进制数127
    127
    >>> 0b1111111    #二进制数
    127
    >>> 0o177   #八进制数
    127  
    >>> 0x7f     #十六进制数
    127
    >>>    #无论输入的是几进制,输出默认都以十进制显示数据
    

    浮点数类型

    • 与数学中实数的概念一致,表示带有小数的数值
    • Python要求浮点数类型必须带有小数部分,小数部分可以是0,以区分浮点数和整数,如100.0,100
    • 浮点数有两种表示方法:
      • 十进制表示: -55.96,3.1415926
      • 科学计数法:用e或E作为幂的符号,以10为基数,如 3.1E5表示3.1*10^5
    • 数值范围和小数精度受不同计算机系统的限制
    • 浮点运算结果中最长可输出17位数字,然而只有前15位数字确定是正确的,因此存在“不确尾数”
    • 对于除高精度科学计算外的绝大部分运算来说,浮点数类型的数值范围和小数精度足够“可靠”
    • 一般认为,浮点数类型没有数值范围限制,运算结果准确
    >>> 77.56+88.98
    166.54000000000002
    >>> 3.14*2.5
    7.8500000000000005
    >>> 9.6e5
    960000.0
    >>> 12.56**20
    9.5453704557821e+21
    

    数值类型的运算

    数值运算操作符

    +、-、%、//、*、/、+-(正负号)、**

    数值运算函数

    • abs(x)
    • max(x1,x2,x3)
    • round(x[,ndigits])
    • ……

    math库

    • math.sqrt(x)
    • math.exp(x)
    • math.pow(x,y)
    • ……

    数值运算操作符

    数值运算符优先级 ,由低→高

    +、-%//*、/+-(正负号)**

    运算符 描述
    x+y 加法,x与y之和
    x-y 减法,x与y之差
    x*y 乘法,x与y之积
    x/y 除法,x与y之商
    x//y 整除(地板除),x与y之整数商,即:不大于x与y之商的最大整数。如5/3返回1;-5/3返回-2
    x%y 取余,x与y之商的余数,也成为模运算
    -x 负号,x的负值,即:x*(-1)
    +x 正号,x本身
    x**y 乘方,x的y次幂,即:x^y,如:2**3返回8

    注意

    • 数值运算可能改变结果的数据类型,类型的改变与运算符有关
    • 整数和浮点数混合运算,输出结果是浮点数
    • 整数之间运算,产生结果类型与操作符有关,除法运算(/)的结果是浮点数
    • 整数或浮点数与复数运算,输出结果是复数
    >>> 77.56+8
    85.56
    >>> 6/3
    2.0
    >>> 8%3
    2
    >>> 8.0%3
    2.0
    >>>- 8%3
    1
    >>> 8%-3
    -1
    
    #用户输入一个整数,由计算机判断该数是偶数还是奇数
    N=int(input("N="))
    if N%2 == 0:
    print("该数是偶数!")
    else:
    print("该数是奇数")
    

    注意: x//y 返回不大于x与y之商的最大整数即结果向- ∞舍入

    >>> 50//4
    12
    >>> 50.0//4
    12.0
    >>> -50//4
    -13
    >>> -50.0//4
    -13.0
    

    强调

    • 其中二元操作符(+、-、*、/、//、%、**)都可以与赋值符号(=)相连,形成增强赋值操作符,能够简化对同一变量赋值语句的表达
    • +=、-=、*=、/=、//=、%=、**=
      如:
      x=3
      x=x+1
      相当于:
      x=3
      x+=1
    >>> x=25
    >>> x%=2   #相当于x=x%2
    >>>print( x)
    1
    >>> y=7.0
    >>> y*=3   #相当于y=y*3
    >>> print(y)
    21.0
    

    数值运算函数

    Python解释器自身提供了一些预装函数,用于完成对参数的特定运算,称为“内置函数”,其中包括的主要用于数值运算的函数如下表所示:

    函数 说明
    abs(x) 返回x的绝对值,x可以为整数、浮点数或整数,x为复数时,返回它的模
    divmod(x,y) 返回x//y和x%y的结果
    pow(x,y[,z]) 幂函数,返回x**y和或(x**y)%z的值
    round(x[,n]) 对x进行四舍五入,保留n位小数;若省略n,则返回整数;若n为复数,则对小数点前n位进行四舍五入
    max(x1,x2,......xn) 返回多个参数中的最大值,n的值没有限定
    min(x1,x2,......xn) 返回多个参数中的最小值,n的值没有限定
    sum([x1,x2,......xn]) 返回数值型序列中所有元素的和
    >>> x=-25
    >>> y=4
    >>> abs(x)
    25
    >>>divmod(x,y)
    (-7,3)
    >>> pow(x,y)
    390625
    >>> pow(x,y,2)
    1
    >>> round(15.364,1)
    15.4
    >>>round(15.364,-1)
    20.0
    >>> max(10,20,15.38)
    20
    >>> min(10,20,15.38)
    10
    >>> sum((10,20,15.38))
    45.38
    

    math库

    math库

    • math库是Python的标准库,提供了诸多的数学函数,可以实现整数和浮点数的数学运算。
    • math库提供了4个数学常数和44个函数。44个函数共分为4大类,包括16个数值表示函数,8个幂对数函数,16个三对数函数和4个高等特殊函数
    • 使用时要引用该库,格式为:
      import math
      from math import *
      from math import <函数名>
    常数 说明
    math.e 自然对数,值为2.718281828459045
    math.pi 圆周率pi,值为3.141592653589793
    >>> import math
    >>> math.pi*2**2
    12.566370614359172
    >>> PI=math.pi
    >>> round(PI,3)*2**2
    12.568
    

    Math库的常用函数

    函数 说明
    math.fabs(x) 返回x的绝对值
    math.ceil(x) 返回不小于x的最小整数(向上取整)
    math.floor(x) 返回不大于x的最大整数(向下取整)
    math.trunc(x) 返回x的整数部分
    math.modf(x) 返回x的小数和整数
    math.fmod(x,y) 返回x与y的余数,注意与%返回结果略有不同
    math.sqrt(x) 返回x的平方根
    math.pow(x) 返回x的y次方
    math.fsum([x,y,...]) 返回序列中各元素之和
    math.factoria(x) 返回x的阶乘

    【例2-1】常用math库函数举例

    >>> import math
    >>> math.fabs(-5)       #返回-5绝对值,结果为浮点数5.0
    5.0
    >>> math.ceil(5.2)      #返回不小于5.2的最小整数
    6
    >>> math.ceil(-5.2)     #返回不小于-5.2的最小整数
    -5
    >>> math.floor(5.2)         #返回不大于5.2的最大整数
    5
    >>> math.floor(-5.2)    #返回不大于-5.2的最大整数
    -6
    >>> math.trunc(5.6)     #返回5.2的整数部分
    5
    >>> math.modf(5.2)      #返回5.2的小数和整数
    (0.20000000000000018, 5.0)
    >>> math.fmod(5,3)      #返回5除以2的余数
    2.0
    

    【例2-1】常用math库函数举例

    >>> math.sqrt(3)          #返回正数的平方根
    1.7320508075688772
    >>> math.sqrt(-3)         #负数出错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: math domain error
    >>> math.pow(5,3)          #返回5的3次方
    125.0
    >>> 0.1+0.2+0.3         
    0.6000000000000001
    >>> math.fsum([0.1, 0.2, 0.3])     #精确求和
    0.6
    >>> math.factorial(5)    #返回5的阶乘
    120
    

    【例2-2】math库函数应用实例。分别输入三角形的三条边长,求三角形的面积、周长、最长边长和最短边长。

    提示

    1. 根据海伦公式,p=(a+b+c)/2,S=√[p(p-a)(p-b)(p-c)]
    2. 假设输入的三条边满足 a>0 and b>0 and c>0 and a+b>c and b+c>a and a+c>b
    #E2-2.py
    import math
    a=float(input("a="))
    b=float(input("b="))
    c=float(input("c="))
    p=(a+b+c)/2
    area=math.sqrt(p*(p-a)*(p-b)*(p-c))
    circum=a+b+c
    max_side=max(a,b,c)
    min_side=min(a,b,c)
    print("面积:",area)
    print("周长:",circum)
    print("长边为:",max_side)
    print("短边为 :",min_side)
    

    math库的其它函数(了解)

    函数 说明
    math.gcd(x,y) 返回整数x和y的最大公约数
    math.degrees(x) 将弧度转换为度
    math.radians(x) 将度转换为弧度
    math.sin(x) 返回x(弧度)的三角正弦值
    math.asin(x) 返回x的反三角正弦值
    math.cos(x) 返回x(弧度)的三角余弦值
    math.acos(x) 返回x的反三角余弦值
    math.tan(x) 返回x(弧度)的三角正切值
    math.atan(x) 返回x的反三角正切值
    math.atan2(x,y) 返回x/y的反三角正切值

    赋值语句

    >>> a=3
    >>> b=5
    >>> a+b
    8
    >>> a,b=3,5
    >>> a+b
    8
    >>> a=3;b=5
    >>> a+b
    8
    >>> x=y=9
    >>> x
    9
    >>> y
    9
    
    • Python中,赋值运算符=表示“赋值”,即将等号右侧表达式的计算结果赋给左侧变量,包含等号(=)的语句称为“赋值语句”:
      <变量> = <表达式>
    • 此外,还有一种同步赋值语句,同时给多个变量并行赋值:
      < 变量1>, …, < 变量N> = < 表达式1>, …, < 表达式N>
      也可以写成:
      < 变量1>=< 表达式1>;< 变量2>=< 表达式2>;……<变量N> =< 表达式N>
    • 链式赋值 将同一个值赋给多个变量
      <变量1>=<变量2>=…=<变量n >=<表达式>

    【例2-3】编写程序输入两个数分别赋给变量x和y,交换变量x和y的值,并输出

    #方法一
    x=float(input("x="))
    y=float(input("y="))
    t=x
    x=y
    y=t
    print("x=",x)
    print("y=",y)
    #方法二
    x=float(input("x="))
    y=float(input("y="))
    x,y=y,x
    print("x=",x)
    print("y=",y)
    

    相关文章

      网友评论

          本文标题:2020年3月11日 第二章 基本数据类型、运算符和表达式 -1

          本文链接:https://www.haomeiwen.com/subject/ltzmehtx.html