初探 Python 基本数据类型

前言

学习任何编程语言都很类似, 大概都需要从最基础知识学起, 再逐步通过做一些简单的小项目来提升自己. 上一篇中, 我们学习了 Python 的下载与安装以及编辑器 Vscode 的下载安装 (这些字也是用 Vscode 码的:D). 在后面的几篇中, 我将逐步学习 Python 的基础知识, 主要包括: 基本的数据类型、流程控制语句、函数以及类的学习. 大致学习完了这些内容后, 就马马虎虎算是入了 Python 的门了.

那么 Python 都有哪些基础数据类型呢? 在学习基本数据类型前先确立一个观念, 即在 Python 中「万物皆对象」. 因为不论是像基本数据类型, 还是我们后期将要学习的函数、类等概念, 都可以看成是对象. 就像在现实生活中, 一栋房子就可以看成是一个对象, 那么既然是对象, 其就有属性、特征等等属于这一对象所特有的. 房子有面积、价格等的特性; 又如宠物狗也有相应的特征, 如宠物狗的年龄, 种类等等. 这样的例子在生活中数不胜数. 借用现实生活中的例子, 我就可以理解 Python 中的「万物皆对象」了. 因为每种对象都有它的属性特征等等. 在下面的学习中, 会逐步体现出来这种特性.

基本数据类型

扯完了「万物皆对象」, 现在就正式开始学习一下 Python 的基本数据类型. 简单来讲, Python 的基础数据类型大致有: 数字(number)、字符串(string)、列表(list)、集合(set)、元组(tupple)、字典(dict). 下面逐次进行学习.

基本类型

再进一步细分, 上面提到的数据类型可以分为基本类型和容器类型. 其中整型、浮点数、布尔型等属于基本类型; 字符、元组、列表、字典、集合等属于容器类型. 至于为什么这样分, 后面学习将会让你明白这一点.

整型

顾名思义, 整型就是整数的意思. 我们可以看下面的示例:

myNumber = 4
# 打印 myNumber 以及 myNumber 的类型
print(f"my number is {myNumber} and it's type is", type(myNumber))

运行上述代码后, 我们可以得出这样一条输出:

my number is 4 and it's type is <class 'int'>

可以看到我们这里定义的 myNumber 的类型是 int(其实也是类). 前面说到 Python 中万物皆对象, 既然是这样, 那么整数也有其属性、方法等. 我们利用 dir() 函数来查看一下整数都有哪些属性和方法.

print(f"myNumber 的属性为:", dir(myNumber))

这里我么只挑几个方法和属性来看看. 例如在返回的方法和属性中, 我们能看到类似于

__abs__
__add__

等这样两边带有双下划线的东东, 这些是什么呢? 其实这些就是 myNumber 的方法, 这里比如我们用这里返回的第一和第二个方法试试.

# 使用第一个方法试试, __abs__ 方法会返回数字的绝对值
myNumber.__abs__()
# 再使用第二个方法试试, __add__ 方法会返回加上一个数后的结果, 比如这里我们加上 6 试试
myNumber.__add__(6)

程序将分别返回

4
10

结果正确! 除了返回了 abs 这样的方法外, 还返回了类似于 bit_length 这样的属性, 我们来看看.

# 查看 myNumber 的二进制长度
myNumber.bit_length
# myNumber.bit_length()

输出的结果为

<built-in method bit_length of int object at 0x00000000672680D0>

可以看到这是一种内置的方法. 此外还可以用 Python 自带的标准库 sys 来获取字节数长度.

# import our package 
import sys

# get the size of myNumber
sys.getsizeof(myNumber)

这样得到的字节数为 28. 下面我们来看看浮点数.

浮点数

我们先来看看下面的例子:

myFloat = 4.0
print(f"the type of myFloat is {type(myFloat)}")

可以看到得出的结果为:

the type of myFloat is <class 'float'>

得到的类型是 float 无疑! 接下来要学习的就是布尔类型啦, 布尔类型的值就两种, 非真即假, 一般用 1 表示真, 用 0 表示假.

布尔类型

请看下面的简单例子:

T = Ture
F = False
print(T + 6)
print(F - 2)

这些都是简单的基本概念, 通常布尔类型用于条件判断.

容器类型

有了上面的基本类型还不够, 还需要容器类型的数据. 从名字上就能看出, 容器类型的数据就是用于盛放某些数据的.

字符

在接下来的入门学习中, 将会采用最简单的例子予以说明. 这样对编程零基础的同学非常友好.

# 给出字符
myString = "I am a string."
print(myString)

字符也有一些属性和方法, 例如分割字符串, 将字符串的首字母大写等等.

# 首字母大写
myString.capitalize()
# 分割
myString.split()
# 查找索引
myString.find('am')
# 替换
myString.replace('string', 'number')

元组

这一小节我们学习一下元组. 元组和列表类似, 但区别就是元组是不可变, 而列表是可变的. 请看下面的例子:

myTupple = ('I am s string', 66)

怎么样, 看完元组就知道为什么是容器类型的数据了吧, 因为可以盛放不同的数据类型. 注意元组不可更改, 但可以通过索引的方式来获取元组的元素. 和多数语言一样, Python 的索引也是从 0 开始的, 比如我们要获取元组的第一个元素就可以通过

myTupple[0]

进行获取.

列表

在形式上, 列表和元组的定义很类似, 只不过列表是用中括号进行定义的. 我们看下面的例子:

myList = ['I love Python but I am a beginner', 33]
# 可以通过索引的方式获取列表的元素, 也可以通过索引的方式替换元素, 增加元素则可以用 append() 方法
myList[0] = 'a new string'
myList.append('a new element')
print(myList)

字典

字典用于存放键值对型的数据. 请看下面的例子:

myDict = {'bookName':'Beauty of Mathematics', 'author':'Jun Wu'}

字典的索引稍微不用于元组以及列表的索引, 字典是通过键的方式获取字典元素, 例如我们要获取作者信息:

myDict['author']

集合

这里集合的概念和数学上集合的概念有点类似, 用于存放不重复的数据容器类型.

mySet = {'Python','MATLAB', 'R', 'C', 20, 20}
mySet

可以看到输出的结果少了一个 20. 和数字的四则运算类似, 集合也有交、并、差等的操作.

set1 = {'C', 'R', 'MATLAB', 20}
set2 = {'C', 'R', 'MATLAB', 30, 40}
# 交集
print(set1.intersection(set2))
print(set1 & set2)

# 并集
print(set1.union(set2))
print(set1 | set2)

# 差
print(set1.difference(set2))
print(set1 - set2)

# 对称差
print(set1.symmetric_difference(set2)) # 差去共同的部分
print(set1 ^ set2)

需要注意的是集合不能存储可变的对象.

小结

入门学习了基本的数据类型, 包括数字、字符、元组、列表、字典、集合等. 接下来将入门学习控制语句.

参考

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值