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

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

附上李老师和本人扣扣:2573799357

本人扣扣:1392916221

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

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,答案为真

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的时候释放内存

Python的序列数据和变量的更多相关文章

  1. (八)python的简单数据类型和变量

    什么是数据类型? 程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种. 例如英雄联盟游戏,一个人物角色有名字,钱,等级,装备等特性,大家第一时间会想到这么表示 名字:德玛西亚------ ...

  2. 流畅的python之序列

    python对开发者友好的根源在于:1.序列的泛型操作2.内置的元组和映身类型3.用缩进来架构的源码4.无需变量声明的强类型 序列数据共用的一套丰富的操作:迭代.切片.排序和拼接.内置序列类型:1.容 ...

  3. 孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化

    孤荷凌寒自学python第三十七天python的文件与内存变量之间的序列化与反序列化 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.什么是序列化与反序列化 序列化是指将内存中的数据进行指 ...

  4. 第三篇:python基础之数据类型与变量

    阅读目录 一.变量 二.数据类型 2.1 什么是数据类型及数据类型分类 2.2 标准数据类型: 2.2.1 数字 2.2.1.1 整型: 2.2.1.2 长整型long: 2.2.1.3 布尔bool ...

  5. python学习之 -- 数据序列化

    json / pickle 数据序列化 序列化定义:把变量从内存中变成可存储或传输的过程称为序列化.反序列化:把变量内容从序列化的对象重新读到内存里称为反序列胡. 序列化模块之--pickle使用注意 ...

  6. 第二篇.1、python基础之数据类型与变量

    一.变量 1 什么是变量之声明变量 #变量名=变量值 age=18 gender1='male' gender2='female' 2 为什么要有变量 变量作用:“变”=>变化,“量”=> ...

  7. Python基础一. 简介、变量、对象及引用

    一.Python简介 Python是一门计算机编程语言,它是由荷兰人Guido van Rossum在1989年圣诞节期间为了打发无聊的圣诞节而编写的,作为ABC语言的继承 特性: 面向对象.解释型. ...

  8. Python/Numpy大数据编程经验

    Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点.   ...

  9. Python基础-类变量和实例变量

    Python基础-类变量和实例变量 写在前面 如非特别说明,下文均基于Python3 大纲: 1. 类变量和实例变量 在Python Tutorial中对于类变量和实例变量是这样描述的: Genera ...

随机推荐

  1. css中的名词

    用到的单词 current 当前 hover 悬停 selected 挑选 disabled 禁用 focus 得到焦点 blur 失去焦点 checked 勾选 success 成功 error 出 ...

  2. Spring Boot AOP的使用

    简单来说讲,动态地将代码切入到类的指定方法.指定位置上的编程思想就是面向切面的编程. 目录 AOP几个术语 AOP Demo 引入Maven依赖 一个简单的Controller 定义切面类 调用服务 ...

  3. socket通信的三种实现方式

    三种 socket 的实现方式 nodejs 下的 socket 服务端代码 const net = require('net') const server = net.createServer() ...

  4. REST是什么?RESTFul又是什么?这二者的关系是怎样的?

    REST(一种软件架构风格) 全称:Representational State Transfer 含义:(表述性 状态 转移) 是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可 ...

  5. 动态规划入门(dp)

    dp的基本思想,是把大问题转化成一个个小问题,然后递归解决. 所以本质思想的话还是递归. dp最重要的是要找到状态转移方程,也就是把大问题化解的过程. 举个例子 一个数字金字塔 在上面的数字三角形中寻 ...

  6. Android运行时注入浅析与使用

    背景 最近接触新项目,项目中引入了Android Annotation(AA)依赖注入开源框架,代码中大片的注解代码,对于没用过注解框架(或者说没有如此大面积的使用)的我来说确实看得很费力,于是花时间 ...

  7. x86架构:分页机制和原理

    分页是现在CPU核心的管理内存方式,网上介绍材料很多,这里不赘述,简单介绍一下分页的背景和原理 1.先说说为什么要分段 实模式下程序之间不隔离,互相能直接读写对方内存,或跳转到其他进程的代码运行,导致 ...

  8. 题解 [SHOI2002]滑雪

    记忆化搜索$||dp||$剪枝 先讲方法,代码待会上 方法一:记忆化搜索 这个方法不怎么解释,就是每搜索完一个高度的最长路径记录一下,以后搜索其他的点时如果走到了这条路就直接用记录的值计算就是了 方法 ...

  9. Android VideoView未解决,动态读取权限、BottomNavigationView的用法

    昨天想写的,但是因为Video的毛病,是真找不出为啥了.百度也没用,学长也不清楚. 百度了那么久,大概得出结论,电脑的视频是不能用它来播放的... ..经过两天的奋斗,我居然搞定了,我的视频终于出来了 ...

  10. Linux本地套接字(Unix域套接字)----SOCK_DGRAM方式

    目录 简述 创建服务端代码: 创建客户端代码 接收函数封装 发送封装 服务端测试main函数 客户端测试main函数 编译运行结果 简述 这里介绍一下Linux进程间通信的socket方式---Loc ...