8.1.1 理解数据类型
数据类型是根据数据本身的性质和特征来对数据进行分类,例如奇数与偶数就是一种数据类型。在奇数这种数据类型中,数据集合中的元素全为奇数,奇数与2相余后的余数为1。在偶数这种数据类型中,数据集合中的元素全为偶数,偶数与2相余后的余数为0。
数据类型不限于数字,凡是能转化为数据形式的,都可以给它定义一个类型。为数据定义类型,极大地方便了人类在逻辑层面对数据进行分析和处理。
对于计算机来说,无所谓数据类型,它“看到”的只是二进制,编程语言中的数据类型是方便程序员进行数据处理而定义的一种逻辑概念。 在第十一章中会介绍面向对象编程,届时通过对象的语义来建立数据模型,我们可以自定义数据类型。
8.1.2 Python中的数据类型
Python中的数据类型主要分为简单数据类型和容器数据类型。
简单数据类型是不可再分割的基础数据类型。而容器数据类型,是容纳其它对象的数据类型。
Python中的简单数据类型有整型,浮点类型,布尔类型,空类型。整型就是我们常说的整数,浮点类型就是带小数点的,布尔类型用来表示逻辑上的真和假。Python中的列表,元组,字典,集合等是容器数据类型。字符串也算是一种容器数据类型,只不过在字符串这个容器中,包含的元素都是字符。
8.1.3 简单数据类型
数据类型都有其特定的类型名称,在Python中可以通过内置的type类型来输出数据类型的类型名。type类型的基本用法:
type(object)
执行type函数时,可通过参数object传递值或变量名,以输出对应的类型名称。
(1) 整数类型
整数类型就是常说的整数,例如负整数,正整数,以及0。现在请同学们进入Python的交互模式,通过type类型来输出数据的类型名。
>>> type(2020) <class 'int'>
在交互模式中,可以看到<class 'int'>的输出,单引号括住的即为数据的类型名。
class有类,类别的意思,在Python中通过class关键字来定义数据类型。
我们继续在交互模式中验证其它整数的类型名:
>>> type(0) <class 'int'> >>> type(-1314) <class 'int'>
从交互模式的输出中,我们可以发现这样的规律,对于整数,它们的类型名都为int。在学习的过程中,不断地对输入输出或逻辑概念进行验证,在现象中发现事物的规律,是一种很有效的学习方法。
(2) 浮点类型
浮点类型就是常说的小数,带小数点的,例如20.1314, 0.0。同样地,可通过type来输出浮点类型的类型名:
>>> type(0.0) <class 'float'> >>> type(20.1314) <class 'float'>
Python中的浮点类型,其类型名为float。在数字末尾只带一个.号时,也是浮点类型。
>>> type(0.) <class 'float'>
(3) 布尔类型
布尔类型用来表示逻辑上的真或假。在Python中提供了True和False关键字,前者用来表示逻辑上的真值,后者用来表示逻辑上的假值。在交互模式中输出布尔类型的类型名:
>>> type(True)<class 'bool'>>>> type(False)<class 'bool'>
Python中的布尔类型,其类型名为bool。现在通过以上介绍的简单数据类型,来编写一个实例程序。
代码实例-计算1到10之间的所有合数的和:
# 定义变量sum_of_numbers用来保存所有合数的和 sum_of_numbers = 0 合数指自然数中除了能被1和本身整除外还能被其他数(0除外)整除的数,所以首先排除1与2 for number in range(3, 10): # 通过for循环和range来遍历从2到number之间的所有自然数 for divisor in range(2, number): # % 是Python中的求余计算符号 if number % divisor == 0: # number能被其他数整除时,余数为0 # 如果余数为0,说明为合数,执行break退出循环 sum_of_numbers = sum_of_numbers + number break else: print(sum_of_numbers)
上文中的代码与7.2.4节中的代码实例实现的是相同的功能,改动的地方主要以下有两点:
(1) 将外层循环改成了for循环(2) 将变量is_composite_number定义为布尔类型。在实际开发中,如果需要表示逻辑上的真或假,那么使用布尔类型会比较自然。
整型和浮点类型的0值会自动转换为逻辑上的假值,在Python中使用True表示真值,False表示假值。
8.1.4 特殊的None类型
在Python中有一个特殊的None类型,None在语义上表示空数据类型,它是一个单例,值为恒定的None值, None在Python中是一个关键字,表示值为空。现在进入交互模式,查看None所对应的类型:
>>> type(None) <class 'NoneType'>
从输出可知,None所对应的类型为NoneType,在Python中None值只与None值相等,None值转换后的布尔值为False。
8.1.5 变量的数据类型
在6.1节中对变量进行了详细讲解,变量是用来存储数据内存地址的容器。变量的类型,取决于变量所指向的数据的类型。我们同样可以在交互模式中进行验证:
>>> data_type = 0 >>> type(data_type) <class 'int'> >>> data_type = 20.1314 >>> type(data_type) <class 'float'> >>> data_type = True >>> type(data_type) <class 'bool'>
8.1.6 最具实力的小班培训
薯条老师在广州有开设线下培训班,小班授课模式,一班最多6个人。也可一对一授课,全程帮助你学好计算机,实现高薪就业。不在广州的同学可提供住宿,也可以报名线上小班,用腾讯会议上直播课。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python中高级爬虫逆向工程师就业班,月薪15K-25K,包拿Offer
(3) Python数据分析+商业分析+数据科学就业班,企业级项目实战,月薪10K-20K
(4) Python量化交易就业班,A股+期货+数字货币量化,月薪10K-40K
(5) Python机器学习+深度学习算法工程师,月薪20-50K
跟薯条老师学习的学生有拿到花生日记,林氏家居,南方电网,京东, 阿里等公司的offer, 学生的最低薪资有6K,最高薪资有18K, 平均就业薪资有11000。
扫码咨询薯条老师:
已有2位薯条发表了看法:
访客 评论于 2021-08-17 12:41:49 回复
3是合数吗?
薯条老师 评论于 2021-10-19 16:45:41 回复
3是质数