• Python 学习 第一篇:数据类型(数字,布尔类型,操作符)


    Python语言最常用的对象是变量和常量,常量的值是字面意思,其值是不可变的,变量的值是可变的,例如,123,"上海"是常量,而a=1,a=2,其中a是变量名。内置的核心数据类型有:数字、字符串、列表、字典、元组、文件、集合、None和布尔类型。变量的数据类型是由初始化的常量来指定的,其类型根据赋值是可变的,这就是Python的动态类型模型。

    Python语言的特点是:

    • Python是强类型的语言,只能对一个对象进行适合该类型的操作。
    • Python是动态类型的,自动检测到变量的类型。
    • Python语言是大小写敏感的,变量a和变量A是不同的变量名,'abc' 和'Abc'是不同的字符串。

    一,变量的动态类型

    在Python中,类型是在运行过程中动态决定的,而不是通过代码声明的,这意味着没有必要事先声明变量。

    当在Python中运行赋值语句:a = 3 时,Python自动把a作为整数对象来使用。变量名不和类型关联,变量名只不过是对象的一个引用而已,数据类型是和对象相关联的。当变量出现在表达式中时,它会马上被当前引用的对象所代替。

    总之,变量在赋值的时候创建,可以引用任何数据类型的对象,并且必须在初始化之后才能引用。

    二,数字类型

     Python的数字类型包括:整数、浮点数和复数

    • 整数:在Python3.0中支持无穷精度的整数,可以通过内置函数int(n)来创建整数,整数是精确的,
    • 浮点数:类似于C语言中的双精度,可以通过内置函数float(n)来创建浮点数,浮点数可能存在误差,
    • 复数:虚部以j或J结尾,可以通过内置函数complex(real,image)来创建复数
    • 二进制,八进制和十六进制:可以通过内置函数bin(n),oct(n),hex(n)来分别创建二进制数,八进制数和十六进制数

    1,基数为2,8和16的整数

    二进制,八进制和十六进制只能表示整数:

    • 二进制(binary):以0b或0B开头,后面接0-1的数字
    • 八进制(octal):以0o或0O开头,后面接0-7的数字,
    • 十六进制(hex ):以0x或0X开头,后面接十六进制的数字0-9和A-F,字符编写成大写或小写都行

    各个进制的常量表示:

    • 常量0o10 是指十进制的8,使用oct(8)来表示
    • 常量0b10是指十进制的2,使用bin(2)来表示
    • 常量ox10是指十进制的16,使用hex(16)来表示

    2,除法

    Floor除法是指:把结果向小舍入到最近的整数,例如,小于2.5最小的整数是2,小于-2.5最小的整数是-3

    >>> import math
    >>> math.floor(2.5)
    2
    >>> math.floor(-2.5)
    -3

    在Python 2.6 版本中:

    / 表示传统除法:如果两个操作数都是整数类型,执行截断的整数除法,返回的结果是整数;如果任意一个操作数是浮点数,则返回小数。

    // 表示Floor除法:总是截断余数,当两个操作数都是整数时,结果是整数(n);如果有任何一个操作数是浮点类型,则返回一个浮点数(n.0)。

    在Python 3.0 版本中:

    / 表示真除法:不管操作数的类型,都返回包含小数的结果;

    // 表示Floor除法:对于整数执行截断除法,对于浮点数执行浮点除法。

    例如,在Python 3.0 版本中:

    >>> 5//2.0
    2.0
    >>> 5//-2.0
    -3.0

    3,位操作

    把整数当作二进制位串来对待,使用位操作符进行位移操作

    >>> x=1  #0b0001
    >>> x<<2
    4
    >>> x|2
    3
    >>> x&1
    1

    4,内置的数学工具

    导入内置的math模块,常用的数学工具:

    • pow(a,b),求a的b次幂
    • round(seed):求随机数
    • math.sqrt(x),求x的平方根
    • math.floor(x):向下取最小的整数
    • math.trunc(x):截断小数点,保留整数

    5,精确小数

    精确小数是有固定精度的浮点数,通常情况下,浮点数缺乏精确性,这是因为用来存储数值的空间有限,例如,下面的计算应该得到0,但是结果却没有等于0,而是结果接近于0:

    >>> 0.1+0.1+0.1-0.3
    5.551115123125783e-17

    不过使用精确小数,结果能够修正:

    >>> from decimal import Decimal
    >>> Decimal('0.1') + Decimal('0.1') - Decimal('0.2')
    Decimal('0.0')

    设置精确小数对象的精度:

    decimal.getcontext().prec = 4

    6,分数

    分数是指带有分子和分母的表达式,分数 1/2的表示方法是:

    >>> from fractions import Fraction
    >>> x=Fraction(1,2)

    三,布尔类型

    bool数据类型的值是:True和False,显示的是True和False,其行为跟整数1和0是相同的。

    布尔类型常用于条件表达式中,用于控制循环结构和分支结构。

    对于bool值可以进行逻辑运算(and,or,not)。

    1,Python的真值规则

    • 数字0、0.0、空字符串、空值None、空对象(空的元组,空的集合,空的列表)都是False;
    • 其他值都是True

    2,布尔and和or运算符返回对象,而不是值True或False

    and 和 or运算符总会返回对象,不是运算符左侧的对象,就是右侧的对象。

    对于or运算符而言,Python会由左至右求操作对象,然后返回第一个为真的操作对象。or运算符是短路计算,Python会在其找到第一个True的操作数就停止。如果没有遇到True的对象,那么返回最后一个假的对象。

    >>> 1 or []
    1
    >>> [] or 1
    1
    >>> [] or {}
    {}

    对于and运算符而言,Python会由左至右求操作对象,然后返回第一个为假的操作对象。and运算符是短路计算,Python会在其找到第一个False的操作数就停止。如果没有遇到False的对象,那么返回最后一个True的对象。

    >>> 1 and 2 and 3
    3
    >>> [] and {}
    []
    >>> 1 and []
    []

    四,空值

    空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。在真值测试中,表现为False。

    五,操作符

    特殊的操作符

    • =  :赋值
    • ==  :相等
    • !=  :不等
    • is   :检查对象的同一性,如果两个变量名指向同一个对象,返回True

    1,逻辑运算符

    • and  :逻辑与
    • or  :逻辑或
    • not  :逻辑非

    2,逻辑表达式

    • >,<,>=,<=  :大于,小于,大于或等于,小于或等于
    • ==:相等
    • !=:不等

    3,算术操作符

    • +  :加
    • -  :减
    • *  :乘
    • **  :幂乘,例如,a**b,是指a的b次方
    • /  :除,在Python3.0中,是真除法,无论任何类型都会保持小数部分
    • //  :Floor除法,省略掉结果的小数部分
    • %  :求模

    4,位运算符

    • &  :按位与
    • |  :按位或
    • ^  :异或

    5,移位符

    • <<  :向左移位
    • >>  :向右移位

    参考文档:

  • 相关阅读:
    For in
    For each.....in
    正则表达式
    DOM&&BOM
    字幕滚动
    web API种类
    应用程序接口
    for each in
    object constructor
    编程语言历史
  • 原文地址:https://www.cnblogs.com/ljhdo/p/5614054.html
Copyright © 2020-2023  润新知