在之前的文章我们介绍了一下 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. js方法中参数传过来的值包含括号

    前提,传递的id为变量值,比如从后台获取数据循环,在每个循环里调用shenpi()方法,假设传的id包含括号,例如 20190329100833(更正) 这样的数据,那么直接调用会报错,控制台会报错: ...

  2. Linux常见指令大全

    转载自https://www.cnblogs.com/caozy/p/9261224.html 前言 本文特点 授之以渔:了解命令学习方法.用途:不再死记硬背,拒绝漫无目的: 准确无误:所有命令执行通 ...

  3. cannot resolve symbol AppCompatActivity

    记一次配置性的问题 今天复习自定义控件的时候新建一个project,生成的代码冒红,可把我给郁闷了.我知道我的配置是正确的,可是... 它出现了cannot resolve symbol AppCom ...

  4. OpenWrite一款博客可一文多发的实用工具

    前言 许多网友想看一文多发的OpenWrite,今天,它来了!别问落地价,因为内测无价! 这款实用工具,可支持十大博客平台一键发布,是博主们的发文神器 你看它多种平台.一键管理.后台界面优雅.还有签到 ...

  5. 在Chrome 中使用Vimium

    原文连接:https://blog.csdn.net/wuxianjiezh/article/details/91848604 Vimium:像在 Vim 中一样使用 Chrome 安装 使用方法 在 ...

  6. Android WebView 加载富文本内容

    WebView加载数据的方式有两种: 1. webView.loadUrl(data);//加载url 2. webView.loadDataWithBaseURL(null,data, " ...

  7. Mongdb可视化工具Studio 3T的使用

    一.官网地址 https://studio3t.com/ 二.下载和安装 点击DOWNLOAD即可下载 按照自己电脑系统进行选择,然后填写邮箱和选择行业,第一次登录如果不提交不会下载,下载完成是一个z ...

  8. 【机器学习实战】计算两个矩阵的成对距离(pair-wise distances)

    矩阵中每一行是一个样本,计算两个矩阵样本之间的距离,即成对距离(pair-wise distances),可以采用 sklearn 或 scipy 中的函数,方便计算. sklearn: sklear ...

  9. opengl画不出直线 线段 坐标轴 却能画出其他图形的坑

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/12054507.html 好多次都是画坐标轴的三条直线画不出来,虽然最后都解决了  但是还是耽误 ...

  10. SpringCloud Zuul2.X网关实现服务熔断降级(复制即用)

    版本: <properties> <spring-boot.version>.RELEASE</spring-boot.version> <spring-cl ...