zoukankan      html  css  js  c++  java
  • Python的序列数据和变量

     本篇内容涉及字符串、列表、元组、Python中的报错,以及变量本质,包括引用计数技术

    该篇只为抛砖引玉,其内容来自Python学习中总结,另外感谢李老师的教导和Python班同学们的帮助

    首先解释:序列数据和变量

    1.序列指一组有顺序的数据列表,有序

    2.变量本文指变量名

    字符串【无意义】

    不可变数据类型

    · 语法:

    'a'单引号和'''a'''三引号

    "a"双引号和"""a"""三双引号

    a = "Carla:"I can come today,""    
       #该行为错误代码,在python中有一个有意思的地 
       # 方,""双引号中为一个字符串,那么双引号中的双引号只是一个英文中语句符使用呢?
       #那么改行代号则可以使用3引号就可以正常在代码中使用双引号了
       #题外话,在美国的纽约时报和各大报纸中很多语句都经常使用双引号
    print(‘-------分割线--------’)
    a = '''Carla:"I can come today" '''    #该行为正常代码,卡拉:“我今天能来” 这里显示是双引号
    print('--------分割线!-------')
    a = """Carla:'I can come today' """   #改行显示为单引号

    在Python中没有字符和字符串之分:

    1、C语言中单个字符叫char,只能用单引号定义  注 char a = 'a ';

    2、C语言中多个字符,字符串str必须用双引号定义

    3、Python中没有字符和字符串之分

    字符串为什么没有意义,只显示给人们

    列表【有意义】——list

    列表是一个可变数据类型 -> 功能性强

    列表是一个有顺序的序列,而且支持【任意数据类型】在其中存储

    1、列表有意义,可以在列表中进行数据操作

    >>> a = [1,2,3,4,5]    #a
    >>> a   #显示a
    [1,2,3,4,5]
    >>> a[0] = 3   #a的0下标修改为3    
    >>> a
    [3, 2, 3, 4, 5] 

    2、列表的语法:[]  #英文模式下的中括号

    3、支持索引和切片,索引和切片的操作和字符串的操作一样,注意逗号分隔的数据!

    4、列表中可以创建空列表

    那么问题来了,空列表是真的还是假的

    a = ' '  #真假?——字符串
    #答案为假
    a = []  #真假? ——列表
    #答案为假
    a = [' ',' ',' ']    #那么这个,是真还是假?
    #答案为真

    解释:如何确定a的真假,那么确定的是【列表】还是【字符串】?

    列表为假的依据:列表为空则为假

    这个列表是空的吗?(机器是不会思考的)

    先看最外层

    代码测试:

    if a:    #使用if条件判断语句测试
        print('123')    #如果为真则打印123
    #打印结果为123,答案为真

    5、列表其中的数据支持修改

    元组【有意义】——tuple

    不可变的数据

    语法:()  #英文模式下的括号,可在Python中创建元组

    1、元组也可以保存任意数据类型

    2、元组和列表都支持索引和切片

    3、元组不支持数据修改

    4、创建单个元组后面要加逗号,否则为整数,可使用type函数查看数据类型

    文字游戏:元组不可变,那么元组中的列表可变吗?

    答案是不可以!!!

    解释:元组中列表的元素是可变的!!!!但是元组中的列表是不能变的

    a = (1,2,3,[1,2,3],'abc')
    >>>a
    (1,2,3,[1,2,3],'abc')
    >>>a[3][1] = 'a'  #a的第三个索引中的第1个索引修改为a,下标从零开始
    >>>a
    (1,2,3,[1,a,3],'abc')    #元组中的列表元素是可以修改的!!!

    Python中的报错:

    • TypeError:'tuple' object does not support item assignment

    • TypeError:错误类型

      • 类型错误,对这个数据类型不属于他的操作

    • 'tuple' object does not support item assignment:错误的原因

    • TypeError:

    • unsupported operand type(s) for +: 'int' and 'str'

      • 不支持这样的操作,int和str类型不支持一起

    • SyntaxError:invalid syntax 语法错误,如a++

    变量命名规范

    请一定遵循命名规范!

    1、数字和特殊符号不能开头

    2、可采用驼峰和地中海命名

    地中海:make_dinner   或 驼峰:makeDinner

    变量引用计数:

     

    • 创建变量:

    • 内存: #占用两块(实际不止两块)

      • 存储 变量名需要内存

      • 实际数据需要内存【同一个数据内存共享】

    • 共享:a = 1 b = 1 c =1,abc中的1,实际数据共用一个内存地址

      • 优点:节约内存

        • Python本身就在使用一些基础变量

        • 如:0-9 和 a-z

        • 如果创建新的基础数据类型,那么不好去新开辟一块内存,而是直接和已有的共享

    • 独立:彼此互不影响(C/Java语言的变量创建)

      • 缺点:浪费内存、容易造成内存碎片

    当引用计数为0的时候释放内存

  • 相关阅读:
    sql:drop、delete、truncate的区别
    pgsql:插入数据,存在就更新,不存在就插入
    sql:多表连接查询
    克隆模式
    canvas 实现星空闪烁的效果,鼠标滑动,连接周围的点
    JS微信网页图片预览可放大缩小
    muduo_base 02 (Atomic)
    muduo_base 01 (Timestamp)
    select/poll/epoll
    socket编程(二)
  • 原文地址:https://www.cnblogs.com/zhanqing/p/python_2.html
Copyright © 2011-2022 走看看