MultipartFile 支持什么类型_Python 基本功: 3. 数据类型

9baa6a3f72f105bc7cd6121fd53db704.png

前文从宏观的角度带你了解了 Python 的宇宙:

多多教Python:Python 基本功: 2. 学会调用库​zhuanlan.zhihu.com
7d837f8494ab97e10554823b58f664af.png

如果你浏览了一遍上文列举的一些非常流行的库,那你已经有一个大致的了解 Python 可以帮助你完成什么样的任务。而这篇文章,将反过来,从 Python 最细节的角度,也是你真正开始写 Python 最需要了解的知识:Python 自带的数据类型

教程需求:

  • Mac OS, Windows, Linux 都可以
  • 安装了 Python 3.0 版本以上, Anaconda

鸭子就是数据类型,嗯

Python在数据处理能力上很强悍,而且还可以轻松的对接大数据平台 (Hadoop, Storm) 做大数据运算。幸运的是,不像其他编程语言 (C++, Java), Python 本身自带的数据种类不算多,而且非常容易调用,有的时候你甚至都不知道这个数据是哪一个类型,这个概念叫:

9ac4e2b670f3226f7cbc0d52ed746a14.gif

鸭子类型 (Duck Type):

当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。我们并不关心对象是什么类型,到底是不是鸭子,只关心行为

重点是最后一句,当我们看到一段 Python 代码里的数据,或者变量,我们很有可能不知道,也不关心这个数据是什么类型的,但是我们关心的是这个数据的行为是什么样的。

整数 int, 浮点 float, 字符串 string

现在我们打开 Anaconda,可以跟着教程输入同样的代码:

In [1]:alibaba_stock_price = 120.5

In [2]:type(alibaba_stock_price)
Out[2]:float

In [3]:alibaba_shares = 300
In [4]:type(alibaba_shares)
Out[4]:int

In [5]:isinstance(alibaba_shares, int)
Out[5]:True

In [6]:alibaba_stock_value = alibaba_stock_price * alibaba_shares
       alibaba_stock_value
Out[6]:36150.0

In [7]:type(alibaba_stock_value)
Out[7]:float

In [8]:alibaba_stock_value = int(alibaba_stock_value)
In [9]:type(alibaba_stock_value)
Out[9]:int

In [10]:alibaba_stock_value
Out[10]:36150

现在我们来一行一行分析:

  1. alibaba stock price 是 阿里巴巴股票价格,是一个 Python 变量,初始化到数值 120.5,这个时候我们不知道数据类型是什么。
  2. 我们调用了 Python 的 type() 方程,这是 Python 自带的可以查看数据类型的方程,你传入一个变量,他返回这个变量的类型。这里显示我们的阿里巴巴股票价格是 float。float 在 Python 里是一个比较通用的代表这个类型可以囊括任何带小数点的正负数。
  3. 我们定义了一个新的变量,alibaba shares, 指阿里巴巴的股票数量,这里给了300股。
  4. 因为这个数字不带小数点,所以当我们用 type() 查询的时候,Python 给出的是一个整数类 int。 如果一个数字后面没有小数点,你可以默认为是整数,除非这个数字是 300.0, 因为后面带了小数点,虽然小数点后面是0,Python 仍然默认是 float。
  5. isinstance() 是 Python 另外一个自带的查询数据类型的方程,但是这个方程可以帮你直接做比较,这里我传入了 阿里巴巴股票数量 和 整数类 (int),看是否这个变量是属于整数类,返回结果是 True, 也就是是的。
  6. 现在我们做一个数学乘法,把 阿里巴巴股票价格 和 阿里巴巴股票数量 相乘,得到的是持有的阿里巴巴股票价值。因为这里是 float 乘以 int, Python 会把返回的数据默认为 float 类型,我想大家应该能猜到,因为 float 囊括了 int。
  7. 这里确认了这是一个 float 类型。
  8. Python 允许你在部分数据类型之间强行转换,比如这里就是把 float 转换成 int ,我们得到了一个整数类型的 阿里巴巴股票价值。
  9. 确认了是整数类型。
  10. 最后我们看一下,这个整数类型的数字是 36150, 比 float 类型少了小数点和后面那个0,因为我们在转换数据类型的时候舍弃了数据的精准度,虽然在这里没有影响,但是在小数点后面不是0的时候就会产生误差,这也是在做数据比较经常出现的 BUG
In 

叫爸爸 x 300

11. 这里我们创建了一个新变量 alibaba ticker, 是阿里巴巴股票的英文字符,'BABA'。

12. 当我们用 阿里巴巴股票字符 乘以 阿里巴巴股票数量,会得到什么结果呢?

13. 结果就是 'BABA' 重复了 300遍,返回的是一个字符串 'BABA' x 300。

列表 List

列表是 Python 里非常常用的数据类型,非常灵活和有效,是一个可以存储不同种类数据的容器,并且支持 Indexing, Slicing, Mutating, Inferring, Broadcasting 这类的高级运作。因为这篇文章不是重点讲列表运算,我们就做一些简单的列表示范:

In [1]:price_list = [120.5, 130.0, 110.5, 140.5]
In [2]:ticker_list = ['BABA', 'AAPL', 'PDD']
In [3]:mixed_list = [120, 'BABA', 130.5]
In [4]:share_list = [5, 10, 20]

In [5]:value_list = [price*share for price,share in zip(price_list, share_list)]
In [6]:value_list
Out[7]:[600, 1300, 2200]
  1. 创建一个价格列表。
  2. 创建一个股票字符列表。
  3. 创建一个多种类列表。
  4. 创建一个股票数量列表。
  5. 创建一个股票价值列表,是价格列表的每一个元素 乘以 股票数量的每一个元素,这里用到了 推导 (Inferring) 和 元素打包方程 (Zip()),这两个概念在之后的教程会讲到。
  6. 输出股票价值列表。

元组 Tuple

元组也是 Python 里非常常用的数据类型,也是一个可以容纳不同种类的容器,虽然在功能性上和延展性上不如列表,但是创建简单,而且经常被用来容纳不同种类的数据 (列表往往会装载同样类型的数据)。

In [1]:stock_tuple = (100, 120.5, 'BABA')
In [2]:stock_tuple[0]
Out[2]:100
In [3]:stock_tuple[1]
Out[3]:120.5
In [4]:stock_tuple[2]
Out[4]:'BABA'
  1. 创建了一个股票的元组,第一个元素是股票数量,第二个元素是股票价格,第三个元素是股票的字符串。
  2. 获取元组的第一个元素,Python 里获取元素都是从0开始,并且基本上所有容器都支持索引 (运用 "[ ]" + 数字的组合 ),之后会讲到。
  3. 获取元组的第二个元素,价格。
  4. 获取元组的第三个元素,股票字符。

集合 Set

集合和列表很相似,一个很大的区别是集合里,就像数学定义的,元素都是独一无二的,所以我们可以尝试一下操作:

In [1]:price_list = [120.5, 130, 125, 120.5]
In [2]:price_set = set(price_list)
In [3]:price_set
Out[3]:{120.5, 125, 130}
  1. 创建一个价格列表,里面有一个重复的元素 120.5。
  2. 从列表种类转换成集合种类,运用了 set() 方程。
  3. 打印集合,显示去掉了其中一个重复元素

字典 Dict

字典是 Python 里非常重要的数据种类,也是大数据时代很常用的一个容器。我们知道字典是用来查询的,给你一个字,你去查询其含义,在 Python 中也是如此,只不过换了一种形式:

给你一个钥匙 Key, 去查询其值 Value

来看一段代码:

In [1]:price_dict = {'BABA': 120.5, 'PDD': 30}
In [2]:price_dict['BABA']
Out[2]:120.5
In [3]:price_dict['PDD']
Out[3]:30
In [4]:price_dict.keys()
Out[4]:dict_keys(['BABA', 'PDD'])
In [5]:price_dict.values()
Out[5]:dict_values([120.5, 30])
  1. 一个价格查询字典,里面有 ‘BABA’ 和 ‘PDD' (拼多多)的股票英文字符和股价,这里股票字符是钥匙,值是股价。
  2. 查询阿里巴巴股票价格。
  3. 查询拼多多股票价格。
  4. 查看字典里所有的钥匙。
  5. 查看字典里所有值。

小结

这篇文章介绍了 Python 自带的几种数据类型,你们会发现 Python 的数据类型虽然不算多,但是用法非常灵活,多样。这是符合 Pythonic 编程的一种思想,虽然数据本身是很严谨的,但是写 Python 的时候不需要给自己条条框框,语法放飞自我。同样的一行代码在其他的编程语言 C++/C, Java 可能需要十几行,这就是 Python 带来的强功能性+便捷性

要详细的看每一个数据类型,这里是一个外部链接:

Python 3 数据教程​www.runoob.com

你可以打开 Anaconda 或者 PyCharm 很浅的玩玩试试手,在之后的教程中会挖掘出这些工具的潜能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值