zoukankan      html  css  js  c++  java
  • Python 变量与运算符

    变量

    基本概念:

    1、 变量,名字,数据的唯一标识
    2、变量命名:

    • 字母、数字、下划线;
    • 不能以数字开头;
    • 区分大小写;
    • 不能使用保留字和关键字;
    • 命名要有意义;(多个单词时,推荐使用下划线连接)

    3、变量本身没有类型,也没有类型限制,数据类型是根据赋值的类型

    加深对变量的认识:

    a = 1
    b = a
    a = 2
    print(a) 结果:2
    print(b) 结果: 1

    分析: 


    file

    a = [1, 2, 3]
    b = a
    a[0] = ‘1print(a) 结果: [‘1’, 2, 3]
    print(b) 结果: [‘1’, 2, 3]

    分析:


    file

    变量两个维度:

    • 值类型 不可变 int 、string、tuple
    • 引用类型 可变 list、set、dict

    举栗

    举栗子前,先介绍一个 Python 内置函数 id(), 用于获取内存存储数据的地址。

    # 栗子1
    print(id('hello'))              //  结果:4364624200
    a =  'hello'
    b = 'hello'
    print(id(a))            //  结果: 4364624200
    print(id(b))            //  结果: 4364624200
    a = a + 'world'
    print(id(a))            // 结果:4364610096
    
    # 栗子2
    'Python'[0] 
    'Python'[0]  = 'p'
    // 结果就会报以下错误了
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'str' object does not support item assignment

    通过两个栗子,从而证明值类型的不可变,变量重新的赋值只是指向了一个新的地址。

    不可变的元组与可变的列表

    a = [1, 2, 3]
    id(a)                     // 结果: 4636166088  内存地址(转换为16进制,比较合适)  
    a.append(4)      // 末尾追加一个数值,使用点运算符的链式方式 
    id(a)                   // 结果:4636166088    

    得出结论:改变内部的值并不会改变存储在内存的地址

    b = (1, 2, 3)

    元组定义好后是不可改变的,也没有上面列表的追加参数的函数方法;在程序上能用元组解决问题的尽量使用元组,少使用列表,团队合作开发互相调用下避免修改。

    多维元组,列表

     a = (1, 2, 3, (1, 2, 3))
    
    访问: a[3][2]
    
    b = (1, 2, 3, [1, 2, 3])
    b[3][1] = '1'
    print(b)          // 结果:(1, 2, 3, [1, '1', 3])
    修改元组里的列表里的值是可以,因为修改的是列表

    运算符


    运算符这里就把画的一个思维导图放上,只要知道有几种运算符种类和每个种类运算符可以干嘛就行了,具体到各个符号用的时候看看思维导图 就好~


    file

    887934385 交流群 分享资料,分享技术

  • 相关阅读:
    Mac OSX 读写usb composite设备
    std io的一个笔记
    国庆假期掠影
    c++类型转化
    operator new and delete
    一个递归求和的两种方法
    10.24,今天是程序员节
    基于MyUsbDevice类的一个例子
    逆波兰表达式笔记
    2012年的最后一天
  • 原文地址:https://www.cnblogs.com/pypypy/p/12025355.html
Copyright © 2011-2022 走看看