在之前的文章我们介绍了一下 Python 中 if while for 的使用,本章我们来看一下 Python 中的变量类型。

在 Python 定义变量时的规则是 变量名 = 变量 ,Python 中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在内存中存储的数据可以有多种类型。

例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。

Python 定义了一些标准类型,用于存储各种类型的数据。

Python有五个标准的数据类型:

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

我们先来看一下 Python 中的 Number 类型和 String 类型

 a = 10
b = 20
c = ""
d = ""
print(type(a), type(b), type(c), type(d)) # int int str str
print(type(str(a)), type(b), type(int(c)), type(d)) # str int int str
print(a + b) #
print(c + d) #
print(a + c) # TypeError: unsupported operand type(s) for +: 'int' and 'str'

在声明变量时,如果变量是数字且没有加双引号 " " 或单引号 ' ',则该变量为 Number 类型,如果变量是以双引号 " " 或单引号 ' ' 包起来,无论变量内容是什么,都是一个 String 类型。

我们可以通过 type(变量) 来输出判断变量的类型。

如果变量为纯数字,则可以通过 int(变量) 将 String 类型变量转换为 Number 类型的 int 值,可以通过 str(变量) 将 Number 类型变量转换为 String 类型变量。

Number 类型变量如果通过 + 连接则表示算数运算,String 类型变量如果通过 + 连接则表示字符串的拼接,Number + String 会报错。

 name = "zhangsan"
print(name[1]) # h

在上面的字符串中我们可以通过下标的形式可以获取到某一个字母,如果我们想通过下标的形式获取过个字母,也就是一个字符串,那么我们可以使用列表。

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

 list1 = ['python', 786, 2.23]
list2 = [123, 'hello']
print(list1) # 输出完整列表 ['python', 786, 2.23]
print(list1[0]) # 输出列表的第一个元素 python
print(list1[1:3]) # 输出第二个至第三个元素 [786, 2.23]
print(list1[2:]) # 输出从第三个开始至列表末尾的所有元素 [2.23]
print(list1 * 2) # 输出列表两次 ['python', 786, 2.23, 'python', 786, 2.23]
print(list1 + list2) # 打印组合的列表 ['python', 786, 2.23, 123, 'hello']

Python 中有一种列表相似的数据类型,元组,

元组是另一个数据类型,类似于 List(列表)。

元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

将上面的列表 list1 和 list2 的 [ ] 改为 ( ) 即变成了元组

 list1 = ('python', 786, 2.23)
list2 = (123, 'hello')
print(list1) # 输出完整列表 ('python', 786, 2.23)
print(list1[0]) # 输出列表的第一个元素 python
print(list1[1:3]) # 输出第二个至第三个元素 (786, 2.23)
print(list1[2:]) # 输出从第三个开始至列表末尾的所有元素 (2.23)
print(list1 * 2) # 输出列表两次 ('python', 786, 2.23, 'python', 786, 2.23)
print(list1 + list2) # 打印组合的列表 ('python', 786, 2.23, 123, 'hello')

我们发现元组的输出结果和列表的输出结果是完全一样的,我们再来看一下列表和元组的不同之处:

 list = ['python', 786, 2.23]
tuple = ('python', 786, 2.23)
list[1] = 1000
print(list) #
tuple[1] = 1000
print(tuple) # TypeError: 'tuple' object does not support item assignment

以上代码我们可以看出列表是可以重新赋值的,但元组值是只读模式,无法重新赋值,但我们可以通过元组合列表间的相互转换来对元组进行重新赋值,如下

 tuple1 = ('python', 786, 2.23)
tuple1 = list(tuple1)
print(tuple1) # ['python', 786, 2.23]
tuple1[1] = 1000
print(tuple1) # ['python', 1000, 2.23]
tuple1 = tuple(tuple1)
print(tuple1) # ('python', 1000, 2.23)
tuple1[1] = 786 # TypeError: 'tuple' object does not support item assignment

接下来我们看一下 Python 中的字典。

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

 dict = {}
dict['one'] = "This is one"
dict[2] = "This is two" tinydict = {'name': 'zhangsan', 'age': 30, 'city': 'beijing'} print(dict['one']) # 输出键为'one'的值 This is one
print(dict[2]) # 输出键为 2 的值 This is two
print(tinydict) # 输出完整的字典print {'name': 'zhangsan', 'age': 30, 'city': 'beijing'}
print(tinydict.keys()) # 输出所有键 dict_keys(['name', 'age', 'city'])
print(tinydict.values()) # 输出所有值 dict_values(['zhangsan', 30, 'beijing'])

Python数据类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

函数 描述

int(x [,base])

将x转换为一个整数

long(x [,base] )

将x转换为一个长整数

float(x)

将x转换到一个浮点数

complex(real [,imag])

创建一个复数

str(x)

将对象 x 转换为字符串

repr(x)

将对象 x 转换为表达式字符串

eval(str)

用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。d 必须是一个序列 (key,value)元组。

frozenset(s)

转换为不可变集合

chr(x)

将一个整数转换为一个字符

unichr(x)

将一个整数转换为Unicode字符

ord(x)

将一个字符转换为它的整数值

hex(x)

将一个整数转换为一个十六进制字符串

oct(x)

将一个整数转换为一个八进制字符串

Python 从入门到进阶之路(三)的更多相关文章

  1. Python 从入门到进阶之路(四)

    之前的文章我们简单介绍了一下 Python 的几种变量类型,本篇文章我们来看一下 Python 中的函数. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性, ...

  2. Python 从入门到进阶之路(一)

    人生苦短,我用 Python. Python 无疑是目前最火的语言之一,在这里就不再夸他的 NB 之处了,本着对计算机编程的浓厚兴趣,便开始了对 Python 的自学之路,并记录下此学习记录的心酸历程 ...

  3. Python 从入门到进阶之路(七)

    之前的文章我们简单介绍了一下 Python 中异常处理,本篇文章我们来看一下 Python 中 is 和 == 的区别及深拷贝和浅拷贝. 我们先来看一下在 Python 中的双等号 == . == 是 ...

  4. Python 从入门到进阶之路(六)

    之前的文章我们简单介绍了一下 Python 的面向对象,本篇文章我们来看一下 Python 中异常处理. 我们在写程序时,有可能会出现程序报错,但是我们想绕过这个错误执行操作.即使我们的程序写的没问题 ...

  5. Python 从入门到进阶之路(五)

    之前的文章我们简单介绍了一下 Python 的函数,本篇文章我们来看一下 Python 中的面向对象. Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是 ...

  6. Python 从入门到进阶之路(二)

    之前的文章我们对 Python 语法有了一个简单的认识,接下来我们对 Python 中的 if while for 做一下介绍. 上图为 if 判断语句的流程,无论任何语言,都会涉及到判断问题,if ...

  7. python快速入门及进阶

    python快速入门及进阶 by 小强

  8. Python 爬虫从入门到进阶之路(三)

    之前的文章我们做了一个简单的例子爬取了百度首页的 html,本篇文章我们再来看一下 Get 和 Post 请求. 在说 Get 和 Post 请求之前,我们先来看一下 url 的编码和解码,我们在浏览 ...

  9. Python 爬虫从入门到进阶之路(八)

    在之前的文章中我们介绍了一下 requests 模块,今天我们再来看一下 Python 爬虫中的正则表达的使用和 re 模块. 实际上爬虫一共就四个主要步骤: 明确目标 (要知道你准备在哪个范围或者网 ...

随机推荐

  1. 准确率、精确率、召回率、F-Measure、ROC、AUC

    先理解一下正类(Positive)和负类(Negetive),比如现在要预测用户是否点击了某个广告链接,点击了才是我们要的结果,这时,点击了则表示为正类,没点击则表示为负类. TP(True Posi ...

  2. oracle创建索引

    数据库索引是为了提高查询速度的一种数据结构. 索引的创建语句 索引的创建语句非常简单. CREATE INDEX 索引名 ON 表名(列名); 除了单列索引,还可以创建包含多个列的复合索引. CREA ...

  3. SpringMVC框架之第一篇

    2.SpringMVC介绍 2.1.SpringMVC是什么 SpringMVC是Spring组织下的一个表现层框架.和Struts2一样.它是Spring框架组织下的一部分.我们可以从Spring的 ...

  4. 初学Manjaro

    近期,看有朋友在使用Manjaro系统,感觉这个系统挺不错,于是我也安装了Manjaro,学习一下!!!! Manjaro下载地址:https://manjaro.org/download/ Manj ...

  5. filezilla无法登陆ubuntu虚拟机

    一般情况下,是新安装的虚拟机没有安装ssh造成的 进入虚拟机控制台,输入 sudo apt-get openssh-server 回车 等安装完成即可登陆.

  6. 现代“十二要素应用”与 Kubernetes

    "十二要素应用"为开发SaaS应用提供了方法上的指导,而Docker能够提供打包依赖,解耦后端服务等特性,使得两者非常吻合.这篇文章介绍了Docker特性怎样满足了开发" ...

  7. 阿里巴巴供应链平台事业部2020届秋招-Java工程师

    阿里巴巴供应链平台事业部,2020届秋季校园招聘开始啦!Java开发工程师虚位以待,机会难得,占坑抓紧. 入职就发师兄,一对一师兄辅导. 在这里,你将有机会接触阿里集团的所有数据库.中间件等基础设施. ...

  8. AI行业精选日报_人工智能(12·18)

    百度Apollo升级自动驾驶平台,发布车路协同.智能车联两大平台 12 月 18 日消息,Apollo 发布了全球首个点到点城市自动驾驶开放能力.自动驾驶云.新一代智能交通解决方案.小度车载 2020 ...

  9. Leetcode题解 - 链表简单部分题目代码+思路(21、83、203、206、24、19、876)

  10. C# Task TaskFactory 异步线程/异步任务

    Task是.NetFramework3.0出现的,线程是基于线程池,然后提供了丰富的API TaskFactory  提供对创建和计划 Task 对象的支持 创建和启动异步任务 1.Task task ...