零基础学会Python编程——数据也分类:常见数据类型

简介: 零基础学会Python编程——数据也分类:常见数据类型


前言

在编程时,我们会遇到各种各样的数据。Python 语言中的常用数据主要有数字型、字符串型、布尔型。本章将详细讲解这几种数据类型,以及不同数据类型之间的相互转换。


学习目标

  • 掌握不同数据类型之间的区别。
  • 掌握不同数据类型之间的相互转换。

一.常见数据类型

1.数字类型

数字型数据,就是与数字相关的数据类型。在 Python 语言中,数字型的数据类型主要有整数类型(int)和浮点数类型(float)。

(1) 整数类型

Python 中的整数类型的数据就是数学中的整数,整数类型能表示所有正整数、0 和负整数。

【例3-1】

下面演示创建一个整数类型数据,在shell模式下输入如下语句。

  • 第1行:定义一个变量a,并赋值 200。
  • 第2~3行:查看变量a的值。
  • 第4行:使用type函数查看变量a的类型。
  • 第5行:输出变量a为一个int类,即为整数类型数据。

(2)浮点数类型

Python 中的浮点数类型数据就像数学中的小数。由于浮点数在计算机内部是通过二进制的方式来存储,浮点数的运算不是绝对精确的,会存在微小的误差。

【例3-2】

下面演示创建一个浮点数类型数据,在 shell模式下输入如下语句。

  • 第1行:定义一个变量 b,并赋值 3.14159。
  • 第2~3行:查看变量b的值。    
  • 第4 行:使用type 函数查看变量b的类型。    
  • 第5行:输出变量b为一个float 类,即为浮点数类型数据。


2.布尔类型

不同于数字型数据,布尔(bool)类型数据只有两个值,即 True 和 False,分别代表真和假,通常用在条件判断和循环语句中。

(1)布尔型数据的取值

除了直接赋值,布尔类型数据通常通过比较运算和逻辑运算得到。

【例3-3】

下面演示创建一个布尔类型数据,在shell模式下输入如下语句。

  • 第1行:定义一个变量 a,并赋值 True。
  • 第2~3行:查看变量a的类型为布尔类型。
  • 第4行:定义一个变量 b,并赋值False。
  • 第5~6行:查看变量b的类型为布尔类型。
  • 第7~8行:比较运算1<3的结果为True。
  • 第9~10行:逻辑运算 True and False的结果为False。

(2)布尔型数据的使用

布尔型数据非常简单,常用在判断语句中,作为判断的条件。接下来举例说明布尔型数据的编程使用方法。

【例3-4】

下面演示在判断语句中使用布尔类型数据,在 shell 模式下输入如下语句。

  • 第1行:定义一个变量a,并赋值 True。
  • 第2~3行:使用if判断语句,如果条件为真,则输出字符串“a为真”(注意第3行,最前面的
  • “…”是shell模式的换行提示,不需要输人。但print前面需要有1个制表符或4个空格的缩进)。
  • 第4行:程序运行结果,可以看到输出了字符串“a 为真”。


3.字符串类型

在 Python 中,凡是被引号(单引号 / 双引号 / 三引号)括起来的数据都称为字符串。如 "100"、'abc'都是字符串。

(1) 字符串的创建

在 Python 语言中,创建字符串可以通过 str(),也可以通过单引号或双引号直接创建,下面一一举例说明。

【例3-5】

使用str函数创建一个空字符串,在 shell模式下输入如下语句。

  • 第1行:使用str函数创建一个空字符串str1。
  • 第2行:查看字符串str中的内容,因为str1一个空字符,所以第3行中输出了一对引号引号里面没有任何元素。
  • 第4行:使用type 函数查看变量strl的类型。
  • 第5行:输出变量strl 为一个str 类,即为字符串类型数据。

【例3-6】

使用一对引号创建一个字符串,在shell模式下输入。

  • 第1行:使用一对引号创建一个字符串str2.
  • 第2 行:查看字符串str2 中的内容。
  • 第 4 行:使用type 函数查看变量str2的类型。
  • 第 5 行:输出变量str2 为一个str 类,即为字符串类型数据。

1.>>> str2 - "Crossin"
2.>>> str2
3.'Crossin
4.>>> type(str2)
5.<class 'str'>

(2)字符串的切片

切片是 Python 语言中特有的功能,通过一行代码就可以实现获取子串的功能。切片有三个参数 [a:b:c] ,a 是起始位置,不提供则默认为开头;b 是结束位置,不包含在子串内,不提供则默认至结尾;c 是间隔步长,不提供可省去第 2 个冒号,默认为 1,负数为倒序。

注意:字符串的索引是从0开始的,所以索引位置n表示第n+1个字符。

【例3-7】

字符串的切片示例如下,在shell模式下编写如下程序。

  • 第1行:创建一个字符串s,s的值为abcd123456789。
  • 第2~3行:从索引为1开始取,总共取出4-1 即3个字符“bcd”。
  • 第4~5行:从索引为10开始倒序取,总共取出10-1即9个字符“7654321dc”。
  • 第6~7行:从索引为1开始正序取,步长为2,取出的字符为“bd246”。  

(3)split 函数

在 Python 编程中,除了上述的切片方法,还可以通过 split() 函数指定分隔符(不指定则默认为空白符,包括空格、Tab 制表符、回车换行符)对字符串进行分割。

【例3-8】

使用split进行的示例如下,在shell模式下编写如下程序。

  • 第1行:创建一个字符串strl并赋值。
  • 第2行:使用split数对字符str空白符为分隔符进行分割,并把分割后的结果赋值都单变量str2。
  • 第3~4行:变量str2,看分后的结果为一个列表。
  • 第5~8行:以逗号“,”为分割符对字符串进行分割。

(4) f-string

f-string 是一种格式化字符串,它的作用是将变量的值按照需要填充到一个字符串的内部。f-string 的语法很简单,在字符串的引号前加上字母 f,然后在需要填充变量的位置加上大括号 { 变量名 } 即可。

【例3-9】

f-string格式化字符串示例如下,在shell模式下编写如下程序。

  • 第1~2行:创建2个变量并赋值。
  • 第3行:通过f-string将变量填充到字符串中,并赋值给新变量。
  • 第4~5行:查看填充后的字符串内容。
1. >>> name = "Crossin"
2. >>> age = 18
3.>>> s =f"我叫{name},今年{age}岁"
4.>>> s
5.'我叫Crossin,今年18岁'

(5)字符串遍历

字符串的遍历就是依次对字符串中的每个字符进行操作访问,也就是把字符串中的每一个字符都单独取出一次。

【例3-10】

下面演示对字符串的遍历操作,在 shell 模式下编写如下程序。

  • 第1行:创建一个字符串s,并赋值“abc123”。
  • 第2~3行:使用for循环语句遍历字符串s,在循环语句下使用print函数输出变量i的值(第3行开头应缩进)。
  • 第4~9行:程序输出的遍历结果,可以看到字符串s中的字符被依次输出。
1.>>> s = "abc123"
2.>>> for i in s:
3.... print(i)  
4. a
5. b
6. c
7.1
8.2
9.3

4.数据类型的相互转换

变量的类型由所赋值的数据类型决定。在某些情况下,可以通过相关函数对数据进行类型转换。

(1)int 函数

如果想把其他数据类型转换为整数,可以使用 int 函数。需要注意的是,如果原类型是字符串,只有纯数字的字符串才能转换为整数类型,带有字母和其他符号(包括小数点)的字符串不能转换为整数类型,否则程序会报错。

【例3-11】

把字符串数据转换为整数类型数据,在shell模式下编写如下程序。

第1-6行:通过int 函数把字符串“10”转换为整数10。

1.>>> d = “10"
2.>>> d1 = int(d)
3.>>> d1
4.10
5.>>> type(d1)    
6.<class 'int'>

【例3-12】

浮点数类型数据都可以被int函数转换为整数类型数据,但此转换并不是采用四舍五入的方式,而是直接把小数部分去除。

在shell模式下编写如下程序。

  • 第1~3行:通过int函数把浮点数2.23转换为整数2
  • 第4~6行:通过int函数把浮点数2.89转换为整数2  

【例3-13】

我们知道布尔类型数据只有两个值True 和False,那么把布尔类型数据转换为整数类型数据会获得什么结果呢?

在shell模式下编写如下程序

  • 第1~3 行:使用int 函数把布尔类型数据“False”转换为整数类型数据的结果是0。
  • 第4~6行:使用int函数把布尔类型数据“True”转换为整数类型数据的结果是1。
1.>>> d1= int(False)
2.>>> d1
3.0
4.>>> d2 = int(True)
5. >>> d2
6.1

(2)str 函数

把其他类型数据转换为整数类型数据可以使用 int 函数,而如果想把其他类型数据转换为字符串类型数据可以使用 str 函数。

【例3-14】

把其他类型数据转换为字符串类型数据,在 shell模式下编写如下程序。

  • 第1行:定义一个变量a,并赋值整数123456789。
  • 第2行:使用str函数把变量a的类型转换为字符串类型,并把转换后的结果赋值给变量al。
  • 第3~4行:查看变量al的值,可以看到多了一对引号,即把整数类型数据转换为了字符串类型数据。
  • 第5行:定义一个变量b,并赋值浮点数3.1415。
  • 第6行:使用str函数把变量b的类型转换为字符串类型,并把转换后的结果赋值给变量bl。
  • 第7~8行:查看变量b1的值,可以看到多了一对引号,即把浮点数类型数据转换为了字符串类型数据。

(3) bool 函数

如果想要把其他类型数据转换为布尔型数据,可以使用 bool 函数。

【例3-15】

把其他类型数据转换为布尔类型数据,在shell模式下编写如下程序。

  • 第1~3行:把整数2020转换为布尔类型数据的结果为 True。
  • 第4~6行:把整数0转换为布尔类型数据的结果为 False。
  • 第7~9行:把字符串“hello”转换为布尔类型数据的结果为 True。
  • 第10~12行:把空字符串转换为布尔类型数据的结果为 False。
  • 第13~15行:把浮点数 3.14转换为布尔类型数据的结果为 True。
  • 第16~18行:把浮点数0.0转换为布尔类型数据的结果为False。
1.>>> b= bool(2020)
2.>>> b
3.True
4.>>> b= bool(e)
5. >>> b
6.False
7. >>> b = bool("hello")
8. >>> b
9. True
10. >>> b = bool("")
11.>>> b
12.False
13.>>> b = bool(3.14)
14. >>> b
15. True
16.>>> b =bool(0.0)
17.>>> b18. False

通过上面的示例程序,可以发现无论将何种类型的数据转换为布尔类型数据,都只有 True 和False 两个值。

(4)float 函数

如果想要把其他类型数据转换为浮点类型数据可以使用 float 函数,同样需要注意的是不能把带字母和其他符号的字符串转换为浮点数。

【例3-16】

把其他类型数据转换为浮点数类型数据,在 shell模式下编写如下程序。

  • 第1~6行:把布尔类型数据“False”与“True”转换为浮点数类型数据,结果分别为0.0上1.0。
  • 第7~9行:把带小数点和数字的字符串“3.14”转换为浮点数类型数据的结果为3.14。
  • 第10~12行:把整数2020转换为浮点数类型数据的结果为2020.0。
  • 第13~15行:把纯数字的字符串“2020”转换为浮点数类型数据的结果为2020.0。
1. >>> f1 = float(False)
2.>>>f1
3.0.0
4. >>> f2 = float(True)
5.>>>f2
6.1.e
7.>>>f3=float("3.14")
8.>>>f3
9.3.14
10.>>> f4 = float(2020)
11.>>>f4
12. 2020.0
13.>>>f5 =float("2020")
14.>>>f5
15.2828.0

(5)eval 函数

Python 提供了许多内置函数,这些函数让 Python 更加便捷,而 eval 函数是其中之一。

eval函数可以把一个字符串表达式当作代码来执行,并返回表达式的值。在 shell模式下编写

rue如下程序。    

  • 第1行:定义一个变量x并赋值整数7。
  • 第2~3行:输出表达式“3*7”的值为21。
  • 第4~5行:输出表达式“2+2”的值为 4。
  • 第6~7行:输出表达式“8/4”的值为2.0。
1.>>>x=7
2. >>> eval("3 * x")
3.21
4. >>> eval("2 + 2")
5.4
6. >>> eval("8 / 4")
7.2.0

练习案例

输入英文文章,通过程序输出该英文文章的单词数。

可以用一个变量接收用户输入的字符串,然后使用 split 函数对该字符串进行分割,分割后的数据存放在列表中,使用 len() 方法可以得到列表中元素的个数,最后使用 print() 函数输出单词数。

string = input("请输入:")
list1 = string.split(" ")
num = len(list1)
print("这段文字共有:",num,"个单词")


创作不易,求关注,点赞,收藏,谢谢~    

 

目录
相关文章
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
21天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
105 80
|
10天前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
33 14
|
13天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
20天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
57 2
|
1月前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
49 10
|
1月前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
1月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
1月前
|
关系型数据库 开发者 Python
Python编程中的面向对象设计原则####
在本文中,我们将探讨Python编程中的面向对象设计原则。面向对象编程(OOP)是一种通过使用“对象”和“类”的概念来组织代码的方法。我们将介绍SOLID原则,包括单一职责原则、开放/封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则有助于提高代码的可读性、可维护性和可扩展性。 ####