美文网首页
Python之旅-2

Python之旅-2

作者: 骑小猪看流星 | 来源:发表于2018-11-03 00:00 被阅读84次
前言:

本篇文章是《Python之旅》系列的第二篇,在上一篇文章中主要学习了:Python的中文编码、PYthon的基础语法以及Python的常见符号。
本篇文章主要学习的知识点有:Python的变量、多变量以及Python的五种数据类型

变量
变量是存储信息的容器。我个人通俗的理解是(通过拆字法来分析):,说明这个物质在某一领域是可以变化、可以拓展的,但是变化的主动权需要有一定依据,你不能不受控制的变化(某一领域,我们可以理解为数据类型,主动权可以理解为代码逻辑,用户使用逻辑);,在某一领域要遵循该领域定义的相对范围之内,无休止的大或者小是不行的,否则计算机在区分数据类型的设计之初就没有了任何意义(一定范围,我们可以理解为数据类型对应的使用范围),在计算机程序中,变量不仅可以是数字,还可以是程序范围内允许的数据类型。

在代码中创建变量时就意味在内存中开辟一块空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据(对应的数据类型)可以被存储在内存中。以下是Python的变量写法:标识符 = 数据类型,代码如下:

# 字符串
x = "1"
y = "2"
# 整数
a = 1
# 浮点数
b = 1.2
# 布尔类型
c = True

多变量赋值
以上代码的变量,都是单个赋值。当然,Python也允许开发者同时为多个变量赋值,如:

#多变量赋值-方式一:
e = f = g = 1

# 以上代码的意识是,创建一个整型对象,这个对象的值为1,三个变量被分配到相同的内存空间上。
#简单点理解就是将多行代码转换为一行代码

# 另外,Python也允许这样来实现多变量赋值:
#多变量赋值-方式二:
i, j, k = 1, True, "我爱你中国"
# 以上代码的意识是,一个整型对象1分配给变量i;
#一个布尔类型对象True分配给变量j;一个字符串对象 我爱你中国 分配给变量k

数据类型
首先我们一起来复习下,Java基本数据类型有那几种?Java基本数据类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double,也有人称为四类八种。

在Python中,共有五个标准的数据类型,分别是:

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

下面就这五类数据类型做详细分析:

Numbers(数字)

数字类型包含以下四种:

  • int(有符号整型)
  • long(长整型)
  • float(浮点型)
  • complex(复数)

数字类型的数据主要是用来存储数值,当我们使用数值类型来指定一个变量值时,Number对象就会被创建:

# 整数
a = 1
a = 3
# 输出结果:3
print a

Python考虑到,内存申请过多如果既没有又没有及时释放可能会导致应用卡顿,因此,Python可以使用del语句删除一些对象的引用:

# 整数
a = 1
a = 3
# 输出结果:3
print a
#删除变量a在内存中的位置
del a

这个时候,如果不赋值继续想打印a变量值,就会报错,如图所示:

del语句
注意
长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型;另外,long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代。

另外,数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。因此,开发者也可以使用del语句删除一些 Number 对象引用,及时释放内存,这也是一种性能优化的具体实现。

String(字符串)

字符串或串(String):由数字、字母、下划线组成的一串字符并配上首尾引号的字符简称为字符串。
Python的字符串有2种取值顺序:

  • A:从左到右索引默认0开始的,最大范围是字符串长度少1
  • B:从右到左索引默认-1开始的,最大范围是字符串开头


    取值顺序

    字符串有一些常见的使用规则,如拼接、截取字符串、重复:

a = 'Hello World!'
# 完整字符串  输出:Hello World!
print a

# 输出字符串中的第一个字符  输出:H
#这个大家不陌生,字符串根据索引输出对应的属性值
print a[0]

# 输出字符串中第三个至第五个之间的字符串   输出:llo
print a[2:5]

# 输出从第三个字符开始的字符串   输出:llo World!
print a[2:]

# 输出字符串 两次   输出:Hello World!Hello World!
#  * 2 表示输出字符串 两次、* 3 表示输出字符串 三次
print a * 2

# 输出连接的字符串   输出:Hello World! Python
print a + " Python"

注意:这里的 星 号,后面跟的数字就是重复输出几遍,星 2 就代表重复输出2遍,以此类推

另外,Python也有一系列的字符串表示符,下面是具体实现即描述:

字符串表示符

Python也提供了一系列字符串计算符,来方便开发者提高工作效率,具体的字符串计算符号如下:


字符串计算符
List(列表)

List数据类型,可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。List数据类型使用 [ ] 来进行标识,列表内从左到右,索引默认从 0 开始。下面是Python关于List数据类型的代码示例:

#列表的定义
listData = [True, "False", 233, 12.3]
smallListData = [123, 'john']

# 输出完整列表   [True, 'False', 233, 12.3]
print listData  

# 输出列表的第一个元素  True
print listData[0]  

# 输出第二个至第三个元素 ['False', 233]
print listData[1:3]  

# 输出从第三个开始至列表末尾的所有元素  [233, 12.3]
print listData[2:]  

# 输出列表两次  [123, 'john', 123, 'john']
print smallListData * 2  

# 打印合并的列表  [True, 'False', 233, 12.3, 123, 'john']
print listData + smallListData  

多提一嘴:看到这个格式,不仅想起Java中那个神奇的Object数组(引战勿喷):

    Object [] arr = new Object[10];
        arr[0] = true;
        arr[1] = false;
        arr[2] = 233;
        arr[3] = 456;
        arr[4] = 12.34;
        arr[5] = "我爱你中国";

更新列表

Python的列表想要添加元素可以使用append来进行添加:代码如下:


#列表的定义
listData = [True, "False", 233, 12.3]
smallListData = [123, 'john']

# 添加单个元素
listData.append("Python")
# 输出:   [True, 'False', 233, 12.3, 'Python']
print listData


# 添加子列表
listData.append(smallListData)
# 输出:   [True, 'False', 233, 12.3, 'Python', [123, 'john']]
print listData

删除列表

Python的列表想要删除元素可以使用del来进行添加:代码如下:

#列表的定义
listData = [True, "False", 233, 12.3]
smallListData = [123, 'john']

# 删除具体的元素
del listData[1]
del listData[2]

# 打印具体的属性值 [True, 233]
print listData

为了方便后面对于列表的使用,下面的截图是列表常见API的使用:


列表的常用API
Tuple(元组)

元组是Python语言的另一个数据类型,类似于上面提到的List(列表)。元组使用()标识符来声明该变量是元组的数据类型。元组的内部元素使用逗号隔开。
注意:元组不能二次赋值,相当于只读列表,如果赋值,Python解释器就会报错。因此对元组的简单理解就是Python中不可变的列表。但元组也允许 根据索引截取、重复输出等基本操作


tupleData = (True, "False", 520, 13.14)
smallTupleData = (456, 'Tom')

# 输出完整元组  (True, 'False', 520, 13.14)
print tupleData

# 输出元组的第一个元素  True
print tupleData[0]

# 输出第二个至第三个的元素  ('False', 520)
print tupleData[1:3]

# 输出从第三个开始至列表末尾的所有元素  (520, 13.14)
print tupleData[2:]

# 输出元组两次  (True, 'False', 520, 13.14, True, 'False', 520, 13.14)
print tupleData * 2

# 打印合并起来的元组  (True, 'False', 520, 13.14, 456, 'Tom')
print tupleData + smallTupleData

刚才也说到了 元组不能设置值,如果设置值就会报错,如下图:


元组不能设置值

值得一提的是,虽然元组不能设置值,但是可以对元组进行连接组合:

#定义元组
data = (2,3)
newData = (4,5)

# 构建新的元组
endData = data + newData

# 最终打印:(2, 3, 4, 5)
print endData

由于元组也是一个序列,因此就可以访问元组中的指定位置的元素,这样也就可以截取索引中的一个元素或者一段元素。

  • 获取元组单个元素的参考代码:
#定义元组
data = (2,3)
newData = (4,5)

# 构建新的元组
endData = data + newData

# 最终打印:(2, 3, 4, 5)
print endData

# 截取endData元组里面的索引为1的数据 
subsData = endData[1]
# 会打印:3
print subsData

  • 获取元组一段元素的参考代码:
#定义元组
data = (2,3)
newData = (4,5)

# 构建新的元组
endData = data + newData

# 最终打印:(2, 3, 4, 5)
print endData

# 截取endData元组里面的索引为1极其以后的数据
subsData = endData[1:]
# 会打印:(3, 4, 5)
print subsData

Dictionary(字典)

Python的字典(dictionary)数据类型,使用{ }来进行标识。字典数据类型由索引(key)和它对应的值value组成,因此和Java的Map有异曲同工之效。
值得一提的是:列表是有序的对象集合,字典是无序的对象集合。
既然类似于Java的Map,那么可以参考Java有两种写法,一种是先声明后赋值、还有一种是声明的时候就直接赋值

  • 方式一:动态添加key 和 value
#创建字典
dictData = { }
#给字典依次添加索引及属性值
dictData['key1'] = "key1 对应的属性值"
dictData[2] = "2对应的属性值"
dictData[3] = True
dictData['hello'] = "我爱你中国"
dictData['word'] = 520.1314

print dictData['hello']          # 输出键为'hello' 的值    我爱你中国
print dictData['word']           # 输出键为 word 的值   520.1314

  • 方式二:使用前就声明 key 和 value
# 使用前就定义字典
endDict = {'name': 'tom', 'code': "Python", 'profession': 'Coder'}
# 输出完整的字典  {'code': 'Python', 'profession': 'Coder', 'name': 'tom'}
print endDict

# 输出所有键  ['code', 'profession', 'name']
print endDict.keys()

# 输出code键 找到对应的value  Python
print endDict['code']

# 输出所有属性值  ['Python', 'Coder', 'tom']
print endDict.values()

由于字典可以没有限制地取任何Python对象,因此它既可以是标准的对象,也可以是用户定义的,但键不行,所以要使用字典需要记住两个重要的点:

  • 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

  • 键必须不可变,所以可以用数字,字符串或元组充当,因此列表就不行

文章用到的源码

总结:

本篇文章我们主要学习了:Python的变量、多变量以及Python的五种数据类型

如果这篇文章对您有开发or学习上的些许帮助,希望各位看官留下宝贵的star,谢谢。

Ps:著作权归作者所有,转载请注明作者, 商业转载请联系作者获得授权,非商业转载请注明出处(开头或结尾请添加转载出处,添加原文url地址),文章请勿滥用,也希望大家尊重笔者的劳动成果

相关文章

  • 读书笔记 | Python学习之旅 Day2

    Python学习之旅 读书笔记系列 Day 2 (2018.03.16) 《Python编程从入门到实践》 第1章...

  • Python之旅-2

    前言: 本篇文章是《Python之旅》系列的第二篇,在上一篇文章中主要学习了:Python的中文编码、PYthon...

  • python3——开始

    如果你没有 Python2.x 的基础,你想直接从 Python3.x 开始你的 Python 之旅。你可以按照下...

  • frida学习之旅——输出对象类型参数

    frida学习之旅 1、安装python fridapip install frida 2、手机安装frida-s...

  • 封面

    python学习之旅

  • PYTHON学习之旅(一)

    PYTHON学习之旅(一) 文|一本正经胡说八道的猫 PYTHON自学之旅,为了更好的学习python,这几天使用...

  • Python - 基本数据类型

    学习资料 Python之旅 相关链接 Python 基础 笔记 常用数据类型 序列(suquence): Pyth...

  • 数据分析实战45讲 笔记二

    03丨Python基础语法:开始你的Python之旅 注释在 python 中使用 #,如果注释中有中文,一般会在...

  • 2021-03-04

    开启我的生信学习之旅。先给自己定几个小目标: 1. 学习Linux; 2. 学习Python; 3. 学习R语言;...

  • 我的Python学习之旅2

    2017.2.2 3. 在使用变量之前要进行赋值 字符串就是引号内的一切东西,也叫文本,文本和数字是截然不同的.引...

网友评论

      本文标题:Python之旅-2

      本文链接:https://www.haomeiwen.com/subject/salktqtx.html