zoukankan      html  css  js  c++  java
  • python基础之变量类型和数据运算

    一、变量的类型

      程序中,为了更充分的利用内存空间以及更有效率的管理内存,变量是有不同的类型的。
      怎样知道一个变量的类型呢?
      在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要我们主动的去说明它的类型,系统会自动辨别
      可以使用type(变量的名字),来查看变量的类型

    name = "Python"
    age = 18
    print(type(name),type(age))
    ——————————————————————————————————
    <class 'str'> <class 'int'>

    1、数字(Number)

    (1)int(有符号整型)

      在32位机器上:-2**31~2**31-1

      在64位机器上:-2**63~2**64-1

    (2)long(长整型)(基本不用)

    (3)float(浮点型)

      浮点数用来处理实数,即带有小数的数字

    (4)complex(复数)

      复数由实数部分和虚数部分组成,一般形式为x+yj

    PS:Python中存在小数字池:-5 ~ 257

    2、布尔类型

      真或家(1或0)(True or False)

    3、字符串(String)

    PS:字符串(%s);整数(%d);浮点数(%f)

    字符串常用功能:

      移除空白、分割、长度、索引、切片

    4、列表(List)

    创建列表:

    1 num_list = [12,234,45,12]
    2 3 num_list2 = list([12,23,34,126])

    基本操作:

      索引、切片、追加、删除、长度、循环、包含

    5、元组(Tuple)(不可变列表)

    创建元组:

    age = (11,22,33,44)
    或 age
    = tuple((11,22,33,44))

    6、字典(Dictionary)

    创建字典:

    person = {"name":"ryz","age":18}
    或
    person = dict({"name":"ren","age":18})

    常用操作:

      索引、新增、删除、键值对、循环、长度

    7、空值(None)

      空值时python中一个特殊的值,用None表示;None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

    8、可变类型和不可变类型

    可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表、字典

    不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)

    二、数据运算

    1、算数运算

    # 算数运算
    a = 10 b = 5 print(a+b) # 加法 print(a-b) # 加法 print(a*b) # 乘法 print(a/b) # 除法 print(a//b) # 取整除 print(a%b) # 取余 print(a**b) # 取幂 ----------------------------------------------------------------- 15 5 50 2.0 2 0 100000

    2、比较运算

    #比较运算符
    a = 10
    b = 5
    print(a == b)
    print(a != b)
    print(a < b)
    print(a <= b)
    print(a > b)
    print(a >= b)
    #注意:<>表示不等于,现在已经被废弃
    ------------------------------------------------------
    False
    True
    False
    False
    True
    True

    3、赋值运算(复合赋值运算符)

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author: Renyz
    #赋值运算符
    #要求:让两个变量等于一个值
    #1、链式赋值
    a = b = 2
    print(id(a),id(b))
    ---------------------------------------------------------
    140730512466608 140730512466608
    ---------------------------------------------------------
    ---------------------------------------------------------
    #2、交叉赋值
    #第一种交叉赋值法:
    n = 10
    m = 20
    c = n
    n = m
    m = c
    print(n,m)
    ----------------------------------------------------------
    20 10
    ----------------------------------------------------------
    #第二种交叉赋值法:
    n = 10
    m = 20
    n,m = m,n 
    print(n,m)
    -----------------------------------------------------------
    20 10

    4、逻辑运算

    #and
    #去办理贷款买房手续,需要你且你媳妇一同来办理
    you = input("你本人去吗(去或者不去)?")
    your_wife = input("媳妇去吗(去或者不去)?")
    if you == "" and your_wife == "":
       print("恭喜,两个人来了,把事情办成了!")
    else:
       print("必须有两个人来办理贷款业务!")
    ----------------------------------------------------------------
    你本人去吗(去或者不去)?去
    媳妇去吗(去或者不去)?去
    恭喜,两个人来了,把事情办成了!
    #or
    #去办理个人贷款买房手续,只需要你或者你媳妇代理
    you = input("你本人去吗(去或者不去)?")
    your_wife = input("媳妇去吗(去或者不去)?")
    if you == "" or your_wife == "":
       print("恭喜,至少一个人办理就行了!")
    else:
       print("必须有一个人来办理贷款业务!")
    -----------------------------------------------------------------
    你本人去吗(去或者不去)?去
    媳妇去吗(去或者不去)?不去
    恭喜,至少一个人办理就行了!
    #青年时期17~24年龄
    age = 30 #不是青年时期
    if not (age >= 17 and age <= 24):
        print("不是青年时期!<17或者大于24")
    -------------------------------------------------------------
    不是青年时期!<17或者大于24

    5、成员运算

    name = '''
    毕洪态,
    赵明利,
    hello,
    world,
    '''
    a = "world" in name
    b = "haha" in name
    c = "毕洪态" not in name
    print(a)
    print(b)
    print(c)
    ------------------------------------------------------------------------
    True
    False
    False

    6、身份运算

    is 是比较两个引用是否指向了同一个对象(引用比较)

    == 是比较两个对象(值)是否相等

    #身份运算符
    #is是判断内存地址;==是判断变量值
    #一个内存地址可以对应多个变量,一个变量只能对应一个内存地址 a = [11,22,33] b = [11,22,33] print(a == b) print(a is b) #验证id print(id(a),id(b)) ------------------------------------------------------------------- True False 434119402120 434119402184
    拓展:
    In [1]: a=256
    In [2]: b=256
    In [3]: a is b
    Out[3]: True
    In [4]: a=257
    In [5]: b=257
    In [6]: a is b
    Out[6]: False

      注意:因为python对小整数在内存中直接创建了一份,不会回收,所有创建的小整数变量直接从对象池中引用他即可。但是注意Python仅仅对比较小的整数对象进行缓存(范围为范围[-5, 256])缓存起来,而并非是所有整数对象。也就说只有在这个[-5,256]范围内创建的变量值使用is比较时候才会成立

    7、位运算

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author: Renyz
    a = 60  # 60 = 0011 1100
    b = 13  # 13 = 0000 1101
    c = 0
    c = a & b  # 12 = 0000 1100
    print("Line 1 - Value of c is ", c)
    c = a | b  # 61 = 0011 1101
    print("Line 2 - Value of c is ", c)
    c = a ^ b  # 49 = 0011 0001 #相同为0,不同为1
    print("Line 3 - Value of c is ", c)
    c = ~a  # -61 = 1100 0011
    print("Line 4 - Value of c is ", c)
    c = a << 2  # 240 = 1111 0000
    print("Line 5 - Value of c is ", c)
    c = a >> 2  # 15 = 0000 1111
    print("Line 6 - Value of c is ", c)

    运算符优先级:

  • 相关阅读:
    mongodb3.6 (四)net 客户端如何连接、访问mongodb集群
    mongodb3.6 副本集(三)mongodb 如何做数据备灾
    winform中如何使用确认对话框
    Centos6.5在线配置安装Java环境与Tomcat环境
    IBatis.Net 下使用SqlBulkCopy 大批量导入数据 问题解决
    【easyui-combobox】下拉菜单自动补全功能,Ajax获取远程数据源
    IDEA创建springboot异常(Failed to load class "org.slf4j.impl.StaticLoggerBinder")
    Elasticsearch6.5安装&&常见问题与答案解释
    JS实现多Div模块拖拽功能
    IView入门练习~CDN模式全局加载JS
  • 原文地址:https://www.cnblogs.com/renyz/p/11498438.html
Copyright © 2011-2022 走看看