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

news2024/10/6 12:29:45

  • 作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 

  •  座右铭:低头赶路,敬事如仪

  • 个人主页:网络豆的主页​​​​​​

目录

​编辑

 前言

学习目标

一.常见数据类型

1.数字类型

(1) 整数类型

 (2)浮点数类型

 2.布尔类型

(1)布尔型数据的取值

 (2)布尔型数据的使用

 3.字符串类型

(1) 字符串的创建

(2)字符串的切片

 (3)split 函数

(4) f-string

(5)字符串遍历

4.数据类型的相互转换

(1)int 函数

(2)str 函数

 (3) bool 函数

(4)float 函数

(5)eval 函数

练习案例


 前言

在编程时,我们会遇到各种各样的数据。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,"个单词")


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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/704533.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Can’t connect to MySQL server on ‘localhost’ (10061)

标题:Can’t connect to MySQL server on ‘localhost’ (10061) 一种情况是&#xff0c;mysql服务没有开启&#xff0c; 解决方式&#xff1a;以管理员身份进入cmd&#xff0c;然后输入net start mysql&#xff0c;注意这里的mysql&#xff0c;指的是你的mysql服务的名称&am…

万字长文,SpringSecurity实现权限系统设计

RBAC权限分析 RBAC 全称为基于角色的权限控制&#xff0c;本段将会从什么是RBAC&#xff0c;模型分类&#xff0c;什么是权限&#xff0c;用户组的使用&#xff0c;实例分析等几个方面阐述RBAC 思维导图 绘制思维导图如下 什么是RBAC RBAC 全称为用户角色权限控制&#xff…

MySQL笔记之一致性视图与MVCC实现

一致性读视图是InnoDB在实现MVCC用到的虚拟结构&#xff0c;用于读提交&#xff08;RC&#xff09;和可重复度&#xff08;RR&#xff09;隔离级别的实现。 一致性视图没有物理结构&#xff0c;主要是在事务执行期间用来定义该事物可以看到什么数据。 一、Read View 事务在正…

怎样高标准地个性化您的电商业务?教你一招搞定

怎样高标准地个性化您的电商业务&#xff1f;教你一招搞定&#xff01; 想要增加销售额和打造一个客户喜爱的品牌&#xff0c;电子商务个性化是您成功的关键。但是&#xff0c;个性化您的在线购物体验的各个方面这个过程简直令人生畏。但是别怕&#xff0c;我将在这里告诉大家利…

计算机 - - - windows电脑搭建FTP局域网文件传输服务器

控制面板&#xff0c;打开程序和功能&#xff0c;启用或关闭Windows功能。 勾选这几个 然后点确定&#xff0c;应用更改成功后重启电脑生效。 打开IIS管理器。 添加ftp站点。 输入ftp站点名称&#xff0c;选择文件存放的物理路径。 ip地址设置为当前电脑的ip地址&#x…

重识Flutter — 探索Slivers的奇妙世界(综合实例)

前言 在前三篇文章中&#xff0c;从为什么要使用Sliver&#xff0c;再根据使用频率逐个解析Slivers系列的组件。相信您已经入门了Sliver的世界。为了更好的将Slivers相关的组件结合起来使用&#xff0c;本文将通过一个综合的案例来帮助你理解。 源代码&#xff1a;https://ww…

【动态规划】LeetCode 583. 两个字符串的删除操作 Java

583. 两个字符串的删除操作 我的代码&#xff0c;错误代码&#xff0c;只考虑到了字母出现的次数&#xff0c;没有考虑到两个字符串中字母出现的顺序 class Solution {public int minDistance(String word1, String word2) {int[] arr1 new int[26];int[] arr2 new int[26];…

Fiddler抓包工具笔记

一、简介 Fiddler代理相当于中介的角色 快捷键ShiftF5去缓存刷新 二、抓包 1. 设置过滤器 没有设置过滤器的话&#xff0c;会抓所有的包&#xff0c;非常乱会混淆 隐藏包含这些内容的URL 2. 快速定位到需要的包 点击&#xff1a;Webforms菜单 界面分析&#xff1a; …

SQlite3 编译

参考博客&#xff1a;https://blog.csdn.net/flowerspring/article/details/121268403 1.下载C源码以及def文件https://www.sqlite.org/download.html 2. 下载完成之后解压 sqlite-amalgamation获取C源码&#xff0c;解压sqlite-dll-win32-xx获取里面的def文件。 3.新建sqlite…

前端vue入门(纯代码)18

不管何时何地&#xff0c;永远保持热爱&#xff0c;永远积极向上&#xff01;&#xff01;&#xff01; 【20.尚硅谷GitHub搜索案例_vue-resource实现】 1.vue-resource vue-resource 是 vue 中一个用于发送请求的插件。 vue 发送请求推荐使用 axios &#xff0c;vue-resourc…

2023上半年软考系统分析师科目一整理-23

2023上半年软考系统分析师科目一整理-23 对于如下所示的序列图所描述的场景&#xff0c;最适合于采用的设计模式是&#xff08;30&#xff09;&#xff1b;该模式适用的场合是&#xff08;31&#xff09;。 A&#xff0e;Visitor B&#xff0e;Strategy C&#xff0e;Observe…

TI AM64x工业核心板规格书(双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F,主频1GHz)

1 核心板简介 创龙科技SOM-TL64x是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 单/四核Cortex-R5F 单核Cortex-M4F设计的多核工业级核心板&#xff0c;通过工业级B2B连接器引出5x TSN Ethernet、9x UART、2x CAN-FD、GPMC、PCIe/USB 3.1等接口。核心板经过专业的PCB Layo…

【C++练习】string:字符串题型训练(5道编程题)

【C练习】string:字符串题型训练 Ⅰ.字符串中的第一个唯一字符Ⅱ.字符串最后一个单词的长度Ⅲ.把字符串转换成整数Ⅳ.字符串相加Ⅴ.反转字符串 Ⅰ.字符串中的第一个唯一字符 解题思路&#xff1a; 第一种方法&#xff1a; 两次遍历 1.第一次遍历&#xff0c;将每个字符出现的次…

【HTTP 协议2】如何构造 HTTP 请求

文章目录 前言一、地址栏输入二、HTML 特殊标签三、form 表单四、ajax总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 &#x1f4d7; Java数据结…

【Echarts】配置项归纳

【Echarts】配置项归纳 一、title二、legend三、grid四、xAxis/yAxis五、polar六、radiusAxis七、angleAxis八、radar九、dataZoom1. 内置型数据区域缩放组件2. 滑动条型数据区域缩放组件3. 框选型数据区域缩放组件 十、tooltip十一、axisPointer十二、toolbox十三、brush十四、…

不定长图文模型训练

文章目录 生成数据集模型选择计算均值和标准差训练代码测试集测试 生成数据集 import os import random from PIL import Image, ImageDraw, ImageFont, ImageFilter from io import BytesIO import timedef main():_first_num random.randint(1, 1000)_code_style [加, 减,…

【uniapp开发小程序】实现粘贴一段文字后,自动识别到姓名/手机号/收货地址

一、需求 在uni-app中开发小程序&#xff0c;实现粘贴一段文字后自动识别到手机号&#xff0c;并将手机号前面的内容作为姓名&#xff0c;手机号后面的内容作为收货地址&#xff0c;并去除其中的特殊字符和前缀标识。 实现效果&#xff1a; 二、实现方式&#xff1a; <…

【vue】vue.js中引入组件

目录 ⭐️一、点击按钮1弹出弹窗⭐️二、vue.js引入组件具体步骤1、创建自定义组件的文件夹&#xff08;以弹窗组件为例&#xff09;2、在index.vue中引入keyProductsTip.vue模块3、在index.vue中引入组件4、在index.vue中使用组件&#xff0c;点击按钮打开弹窗5、index.vue中的…

高级web前端开发工程师的主要职责模板(合集)

高级web前端开发工程师的主要职责模板1 职责&#xff1a; 1、web端页面的制作、开发和优化; 2、编写静态和动态页面和交互、特效等功能的脚本程序; 3、开发基于HTML5技术的可灵活定制、可扩展的前端UI组件; 4、优化前端架构&#xff0c;提高系统的灵活性和可扩展性; 5、开…

【AUTOSAR】BMS开发实际项目讲解(二十六)----电池管理系统低压上下电功能

低压上下电功能 关联的系统需求 Sys_Req_3101、Sys_Req_3102、Sys_Req_3103、Sys_Req_3104; 功能实现描述 低压上电管理 ID Description ASIL Ref. LVM-101 当系统检测到如下任一信号有效时&#xff1a; 整车CAN、ACC、IGN、CC、CP唤醒、一路预留硬线唤醒系统应…