当前位置: 首页 > news >正文

【编程基础之Python】7、Python基本数据类型

【编程基础之Python】7、Python基本数据类型

  • Python基本数据类型
    • 整数(int)
      • 基本的四则运算
      • 位运算
      • 比较运算
      • 运算优先级
    • 浮点数(float)
    • 布尔值(bool)
    • 字符串(str)
  • Python数据类型变换
    • 隐式类型转换
    • 显式类型转换
    • 强制类型转换
    • 赋不同类型的值
  • 写在后面

Python基本数据类型

Python是一种动态类型语言,它支持多种基本数据类型和复合数据类型,让开发人员能够更加方便地处理不同类型的数据。本文将介绍Python中的基本数据类型,包括整数、浮点数、布尔值、字符串等。

整数(int)

整数是Python中最基本的数据类型之一,它表示整数,例如 1、2、3、5等。Python的整数类型可以表示任意大小的整数,因此可以处理非常大的整数,而不需要担心溢出的问题。

在Python中,整数可以使用十进制、二进制、八进制、十六进制等方式表示,例如:

# 十进制
a = 123# 二进制
b = 0b1010# 八进制
c = 0o123# 十六进制
d = 0x123# 很大的数
e = 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

可以使用 type() 函数来查看变量的类型,例如:

print(type(a))
print(type(b))
print(type(c))
print(type(d))
print(type(e))

image-20230302142804886

Python中的整数运算包括基本的四则运算(加、减、乘、除)以及其他的位运算、比较运算等。

基本的四则运算

基本的四则运算在Python中与数学中的运算规则一致,分别使用加(+)、减(-)、乘(*)、除(/)和地板除(floor division,除法结果向下取整,//)符号进行运算。

a = 5
b = 3print(a + b)   # 输出7
print(a - b)   # 输出3
print(a * b)   # 输出10
print(a / b)   # 输出1.6666666666666667
print(a // b)  # 输出1

image-20230302143630751

需要注意的是,在Python 2中整数除法的结果会自动向下取整,而在Python 3中整数除法的结果为浮点数。如果想要在Python 3中使用向下取整的除法,可以使用地板除(//)符号。

注意://得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。

image-20230302152939887

位运算

位运算是指对整数的二进制位进行操作的运算,包括按位与(&)、按位或(|)、按位异或(^)、左移(<<)和右移(>>)等运算符。

a = 5  # 二进制表示为101
b = 3  # 二进制表示为011print(a & b)  # 输出1,二进制表示为001
print(a | b)  # 输出7,二进制表示为111
print(a ^ b)  # 输出6,二进制表示为110
print(a << 1)  # 输出10,二进制表示为1010
print(a >> 1)  # 输出2,二进制表示为10

image-20230302144708621

左移和右移运算符可以将整数的二进制位向左或向右移动一定的位数(n),向左移动等价于乘以2的n次方(2 ** n),向右移动等价于除以2的n次方。

比较运算

比较运算用于比较两个数的大小关系,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)等运算符。

a = 5
b = 3print(a == b)  # 输出False
print(a != b)  # 输出True
print(a > b)  # 输出True
print(a < b)  # 输出False
print(a >= b)  # 输出True
print(a <= b)  # 输出False

image-20230302151624303

运算优先级

在进行复杂的数值运算时,需要注意运算优先级。在Python中,运算符的优先级从高到低分别是:

  • 幂运算 **
  • 正负号 +x, -x
  • 乘法、除法、取余运算 *, /, %, //
  • 加法、减法运算 +, -

需要注意的是,如果需要改变运算的优先级,可以使用括号将运算表达式括起来。

浮点数(float)

浮点数是带小数的数字,在Python中用浮点数类型(float)表示,例如 3.14、-0.5 等。浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)。

在Python中,浮点数的精度是有限的,因此在进行数学计算时,可能会出现精度误差。例如:

a = 0.1 + 0.2print(a)  # 输出0.30000000000000004

image-20230302152243257

可以使用 round() 函数来四舍五入浮点数,例如:

a = 0.1 + 0.2
a = round(a, 2)print(a)  #输出0.3

image-20230302152513823

浮点数与整数一样,也支持四则运算、比较运算等,但不支持位运算。

布尔值(bool)

布尔值只有两个取值TrueFalse,用于表示真或假。在Python中,可以将任何值转换为布尔值,使用 bool() 函数即可。例如:

print(bool(0))      # 输出False
print(bool(1))      # 输出True
print(bool(''))     # 输出False
print(bool('abc'))  # 输出True

image-20230302154535161

布尔类型在Python中广泛应用于条件判断和循环等控制语句中,例如 if 语句、while 循环和 for 循环等。

a = True
b = Falseif a and not b:print("a是True并且b是False")for i in range(10):if i % 2 == 0:continueprint(i)while a or b:print("Looping...")a = a and bb = a and b

image-20230302155011095

字符串(str)

字符串是一组字符的序列,用于表示文本。在Python中,字符串类型(str)可以使用单引号、双引号或三引号来定义,例如:‘hello’、 “world” 等。

字符串是不可变的,因此不能修改字符串中的字符。

可以使用索引(下标)访问字符串中的字符,例如:

s = 'hello'print(s[0])   # 输出'h'
print(s[-1])  # 输出'o'

image-20230302155238864

可以使用字符串的切片访问字符串中的字符,或者创建一个新的字符串,例如:

s1 = 'hello'
s2 = s1[1:4]print(s1[1:3])   # 输出'ell'
print(s2)        # 输出'ello'

image-20230302155411444

可以使用加号(+)将两个字符串连接起来,使用乘号(*)可以将字符串重复多次,例如:

s1 = 'hello'
s2 = 'world'print(s1 + s2)  # 输出'helloworld'

image-20230302155457494

除了常规的字符串操作之外,Python还提供了一些内置方法来处理字符串。例如,我们可以使用 split() 方法来将字符串分割成列表,使用 strip() 方法来去除字符串两端的空格,使用 replace() 方法来替换字符串中的某个字符或子串等等。

s1 = "hello,world"
lst = s1.split(",")                 # 将字符串以逗号为分隔符,分割成列表
s2 = s1.strip()                     # 去除字符串两端的空格
s3 = s1.replace("world", "Python")  # 将字符串中的"world"替换为"Python"
print(s1)
print(lst)
print(s2)
print(s3)

image-20230302155659552

Python数据类型变换

在Python中,数据类型并不是一成不变的,数据类型可以根据实际情况做变换。

Python是一种动态语言,变量在使用之前不需要指定数据类型,而是在运行时根据赋值的值自动确定类型,因此Python的数据类型变换非常灵活。

隐式类型转换

在Python中,有些类型之间的运算是自动进行类型转换的,这种类型转换称为隐式类型转换。

例如,当整数和浮点数进行运算时,整数会自动转换为浮点数:

a = 5     # a为整数
b = 3.14  # b为浮点数
c = a + b # a自动转换为浮点数,c为8.14

在隐式类型转换时,Python会自动选择合适的类型进行转换,但是这种转换不一定总是符合我们的期望,因此有时需要手动进行类型转换。

显式类型转换

Python中可以使用一些内置函数进行显式类型转换,常用的内置函数包括int()、float()、str()、bool()等。

a = "5"       # a为字符串
b = int(a)    # a转换为整数,b为5
c = float(b)  # b转换为浮点数,c为5.0
d = bool(c)   # c转换为布尔类型,d为True
e = str(d)    # d转换为字符串,e为"True"
print(a, type(a))
print(b, type(b))
print(c, type(c))
print(d, type(d))
print(e, type(e))

image-20230302160720193

在进行类型转换时,有时会出现类型不匹配的错误,例如在字符串中包含非数字字符时使用int()函数进行转换会出错。因此在进行类型转换时需要谨慎,并确保数据类型的一致性。

强制类型转换

有时候,我们需要将一个对象强制转换为另一个类型。Python中可以使用各个数据类型所对应的构造函数进行强制类型转换。例如,可以使用int()构造函数将一个浮点数或字符串转换为整数。

a = 5.8     # a为浮点数
b = int(a)  # a强制转换为整数,b为5print(a, type(a))
print(b, type(b))

image-20230302162048423

强制类型转换可能会丢失数据,例如将一个浮点数强制转换为整数时,会将小数部分直接截断,导致数据的精度损失。

赋不同类型的值

在Python中,对于同一个变量,还可以通过赋值的方式改变变量的类型。

a = 5
print("现在我是整数:", a, type(a))
a = 5.6
print("现在我是浮点数:", a, type(a))
a = True
print("现在我是布尔值:", a, type(a))
a = "变来变去"
print("现在我是字符串:", a, type(a))

image-20230302162519157

写在后面

Python是一门强大的编程语言,拥有丰富的基本数据类型。在本篇文章中,我们介绍了Python的几种基本数据类型:整数、浮点数、布尔值和字符串,以及它们之间的相互转换。同时,我们还讨论了Python中的算术运算、比较运算和逻辑运算,以及它们的应用。

相关文章:

【编程基础之Python】7、Python基本数据类型

【编程基础之Python】7、Python基本数据类型Python基本数据类型整数&#xff08;int&#xff09;基本的四则运算位运算比较运算运算优先级浮点数&#xff08;float&#xff09;布尔值&#xff08;bool&#xff09;字符串&#xff08;str&#xff09;Python数据类型变换隐式类型…...

Kakfa详解(一)

kafka使用场景 canal同步mysqlelk日志系统业务系统Topic kafka基础概念 Producer: 消息生产者&#xff0c;向kafka发送消息Consumer: 从kafka中拉取消息消费的客户端Consumer Group: 消费者组&#xff0c;消费者组是多个消费者的集合。消费者组之间互不影响&#xff0c;所有…...

图解LeetCode——剑指 Offer 12. 矩阵中的路径

一、题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相…...

particles在vue3中的基本使用

第三方库地址 particles.vue3 - npm 1.安装插件 npm i particles.vue3 npm i tsparticles2.在main.js中引入 import Particles from particles.vue3 app.use(Particles) // 配置相关的文件常用 api particles.number.value>粒子的数量particles.number.density粒子的稀密…...

04 Android基础--RelativeLayout

04 Android基础--RelativeLayout什么是RelativeLayout&#xff1f;RelativeLayout的常见用法&#xff1a;什么是RelativeLayout&#xff1f; 相对布局&#xff08;RelativeLayout&#xff09;是一种根据父容器和兄弟控件作为参照来确定控件位置的布局方式。 根据父容器定位 在相…...

python基础命令

1.现在包的安装路径 #pip show 包名 2.pip讲解 相信对于大多数熟悉Python的人来说&#xff0c;一定都听说并且使用过pip这个工具&#xff0c;但是对它的了解可能还不一定是非常的透彻&#xff0c;今天小编就来为大家介绍10个使用pip的小技巧&#xff0c;相信对大家以后管理和…...

用 Real-ESRGAN 拯救座机画质,自制高清版动漫资源

内容一览&#xff1a;Real-ESRGAN 是 ESRGAN 升级之作&#xff0c;主要有三点创新&#xff1a;提出高阶退化过程模拟实际图像退化&#xff0c;使用光谱归一化 U-Net 鉴别器增加鉴别器的能力&#xff0c;以及使用纯合成数据进行训练。 关键词&#xff1a;Real-ESRGAN 超分辨率 视…...

数据结构预备知识(模板)

模板 功能上类比C的重载函数&#xff0c;可以使用一种通用的形式&#xff0c;去代替诸多数据类型&#xff0c;使得使用同一种函数的时候&#xff0c;可以实现对于不同数据类型的相同操作。增强类和函数的可重用性。 使用模板函数为函数或类声明一个一般的模式&#xff0c;使得…...

SWM181按键控制双通道PWM固定占空比输出

SWM181按键控制双通道PWM固定占空比输出&#x1f4cc;SDK固件包&#xff1a;https://www.synwit.cn/kuhanshu_amp_licheng/ &#x1f33c;开发板如下图&#xff1a; ✨注意新手谨慎选择作为入门单片机学习。目前只有一个简易的数据手册和SDK包&#xff0c;又没有参考手册&am…...

pygame函数命令

pygame.mixer.music.load() —— 载入一个音乐文件用于播放 pygame.mixer.music.play() —— 开始播放音乐流 pygame.mixer.music.rewind() —— 重新开始播放音乐 pygame.mixer.music.stop() —— 结束音乐播放 pygame.mixer.music.pause() —— 暂停音乐播放 pygame.mixer.mu…...

异步循环

业务 &#xff1a; 批量处理照片 &#xff0c; 批量拆建 &#xff0c; 裁剪一张照片需要异步执行等待 &#xff0c; 并且是批量 所以需要用到异步循环 裁剪图片异步代码 &#xff1a; 异步循环 循环可以是 普通 for 、 for of 、 for in 不能使用forEach ,这里推荐 for…...

Vue表单提交与数据存储

学习内容来源&#xff1a;视频p5 书接目录对页面重新命名选择组件后端对接测试接口设置接口前端调用对页面重新命名 将之前的 Page1 Page2 进行重新命名&#xff0c;使其具有实际意义 Page1 → BookManage &#xff1b; Page2 → AddBook 并且 /router/index.js 中配置页面信息…...

API网关(接入层之上业务层之上)以及业务网关(后端服务网关)设计思路(二)

文章目录 流量网关业务网关常见网关对比1. OpenResty2. KongKong解决了什么问题Kong的优点以及性能Kong架构3. Zuul1.0过滤器IncomingEndpointOutgoing过滤器类型Zuul 1.0 请求生命周期4. Zuul2.0Zuul 与 Zuul 2 性能对比5. Spring Cloud GatewaySpring Cloud Gateway 底层使用…...

有些笑话,外行人根本看不懂,只有程序员看了会狂笑不止

我一直都觉得我们写代码的程序员与众不同&#xff0c;就连笑话都跟别人不一样。 如果让外行人来看我们一些我们觉得好笑的东西&#xff0c;他们根本不知道笑点在哪里。 不信你来瞧瞧&#xff0c;但凡有看不懂的地方&#xff0c;说明你的道行还不够深。 1.大多数人开始学编程时…...

企业电子招投标采购系统——功能模块功能描述

​ 功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外…...

Presto 在美图的实践

导读&#xff1a;本文的主题是Presto高性能引擎在美图的实践&#xff0c;首先将介绍美图在处理ad-hoc场景下为何选择Presto&#xff0c;其次我们如何通过外部组件对Presto高可用与稳定性的增强。然后介绍在美图业务中如何做到合理与高效的利用集群资源&#xff0c;最后如何利用…...

Molecule:使用Jetpack Compose构建StateFlow流

Molecule:使用Jetpack Compose构建StateFlow流 看下面的jetpack compose片段&#xff1a; Composable fun MessageCard(message: Message) {Column {Text(text message.author)Text(text message.body)} }这段代码最有趣的部分是它实际上是reactive。其反应性为 通过Composa…...

计算机组成原理(2.2)--系统总线

目录 一、总线结构 1.单总线结构 1.1单总线结构框图 ​编辑1.2单总线性能下降的原因 2.多总线结构 2.1双总线结构 2.2三总线结构 2.3四总线结构 ​编辑 二、总线结构举例 1. 传统微型机总线结构 2. VL-BUS局部总线结构 3. PCI 总线结构 4. 多层 PCI 总线结构 …...

如何使用dlinject将一个代码库实时注入到Linux进程中

关于dlinject dlinject是一款针对Linux进程安全的注入测试工具&#xff0c;在该工具的帮助下&#xff0c;广大研究人员可以在不使用ptrace的情况下&#xff0c;轻松向正在运行的Linux进程中注入一个共享代码库&#xff08;比如说任意代码&#xff09;。之所以开发该工具&#…...

Docker安装Cassandra数据库,在SpringBoot中连接Cassandra

简介 Apache Cassandra是一个高度可扩展的高性能分布式数据库&#xff0c;旨在处理许多商用服务器上的大量数据&#xff0c;提供高可用性而没有单点故障。它是NoSQL数据库的一种。首先让我们了解一下NoSQL数据库的作用。 NoSQL 数据库 NoSQL数据库&#xff08;有时称为“Not …...

Linux常用命令总结(建议收藏)

Linux常用命令总结(建议收藏) 这里收集了一些常用命令以便需要时查看&#xff0c;欢迎作补充。&#xff08;这里的提到操作都默认以CentOS系统为基础&#xff09; 文件管理 目录操作 切换目录 cd 查看目录 ls -l 列出文件详细信息 或者直接ll-a 列出当前目录下所有文件及…...

【Java】P1 基础知识与碎碎念

Java 基础知识 碎碎念安装 Intellij IDEAJDK 与 JREJava 运行过程Java 系统配置Java 运行过程Java的三大分类前言 本节内容主要围绕Java基础内容&#xff0c;从Java的安装到helloworld&#xff0c;什么是JDK与什么是JRE&#xff0c;系统环境配置&#xff0c;不深入Java代码知识…...

Jackson CVE-2017-7525 反序列化漏洞

0x00 前言 Jackson 相对应fastjson来说利用方面要求更加苛刻&#xff0c;默认情况下无法进行利用。 同样本次的调用链也可以参考fastjson内容&#xff1a;Java代码审计——Fastjson TemplatesImpl调用链 相关原理&#xff0c;可以参考&#xff1a;Jackson 反序列化漏洞原理 …...

【2023】DevOps、SRE、运维开发面试宝典之Kubernetes相关面试题

文章目录 1、Kubernetes集群的特点?2、Kubernetes集群各节点的组件有那些?分别有什么作用?3、简述Kubernetes集群的工作原理4、什么是Pod资源5、Label标签的作用?6、Deployment控制器与Statfulset控制器的区别?7、Pod拉取镜像的三种策略?8、简述Pod的生命周期9、Pod的生命…...

【算法】PatchMatch立体匹配算法_原理解析

目录 前言 原理解析 1.倾斜支持窗口&#xff08;Slanted Support Windows&#xff09; 什么是视差平面&#xff1f; 为什么视差和像素坐标点之间的关系可以解释为平面方程&#xff1f; 视差平面的通用参数方程和点加法向量方程 什么是倾斜支持窗口&#xff1f; 2.基于倾…...

【同步工具类:CyclicBarrier】

同步工具类:CyclicBarrier介绍源码分析CyclicBarrier 基于ReetrantLock Condition实现。构造函数await() 函数业务场景方案一:代码实现测试截图方案二代码实现测试打印总结介绍 官方介绍: 一种同步辅助工具&#xff0c;允许一组线程都等待对方到达共同的障碍点。CyclicBarrie…...

Android 12.0 Settings 去掉打开开发者模式和USB调试模式的广播

1.概述 在12.0的系统产品rom定制化开发中,在系统Settings的开发者模式中,打开开发者模式和usb调试模式都会发出开发者模式改变广播和usb调试模式改变广播, 项目开发功能需要要求去掉这两个广播以免影响其他功能,所以就要看哪里发出广播来屏蔽掉就可以了,这样就可以去掉开发…...

OSI七层网络模型和TCP/IP四层网络模型的异同

文章目录前言一、什么是OSI&#xff1f;二、什么是TCP/IP四层模型&#xff1f;三、OSI七层网络模型和TCP/IP四层网络模型的关系&#xff1a;四、 OSI七层和TCP/IP的区别&#xff1a;前言 本节系统总结&#xff1a; 一、什么是OSI&#xff1f;二、什么是TCP/IP四层模型&#xf…...

接口测试必备技能 - 加密和签名

1、什么是加密以及解密&#xff1f; 加密&#xff1a;在网络上传输的原始数据&#xff08;明文&#xff09;经过加密后形成&#xff08;密文&#xff09;传输&#xff0c;防止被窃取。 解密&#xff1a;将加密还原成原始数据 2、加密方式分类&#xff1f; 对称式加密&#xf…...

JVM虚拟机概述(1)

1.JVM概述 1.1为什么要学习JVM 通过学习JVM ( java Virtual Machine )可以帮助我们理解java程序运行的过程&#xff0c;了解虚拟机中各种机制的实现原理。为后期写出优质的代码做好准备&#xff0c;为向更高的层次提升打好基础。 1.2虚拟机 虚拟机的本质就是在windows中&…...

做一个在线支付网站/建立一个网站需要多少钱?

一&#xff0c;现象&#xff1a;1. 1 远程连接数据库mariadb时&#xff0c;报错二&#xff0c;定位&#xff1a;2. 1 首先本地连接上数据库&#xff0c;然后操作权限表数据&#xff0c;然后远程再次连接依然连接不上&#xff1b;2. 2 搜索mariadb的配置文件&#xff0c;一一…...

wordpress宠物模板/百度引流推广哪家好

如果不换罗米,如果门将没受伤,如果梅西能够上场,如果索林守住位置,如果....没有那么多如果....足球就是足球,Argentina,dont cry for me....走好...我的世界杯结束了 转载于:https://www.cnblogs.com/maxwolf/archive/2006/07/02/440646.html...

腾讯云 wordpress博客/山东网站seo

1)默认自带python2环境,自行安装pip yum -y install epel-release yum install python-pip 2)进行pip的更新,否则很多安装会报错 pip install --upgrade pip pip install --upgrade setuptools 3)安装开发库 yum install python-devel yum install libevent-devel yu…...

wordpress前台漏洞/郑州网络营销哪家正规

一、Wordcount练习 1.需求:通过hadoop分析文件中单词总数 1.要被分析的文件内容如图所示,每个单词之间以空格分开 2.实现的效果如图 2.代码实现 1.解决数据倾斜问题 考虑到在机器运行过程中 Reduce阶段每个相同的Key会由一个ReduceTask来处理,而java共有十六万个,其他的单词只有…...

连云港做网站优化/排行榜123网

一、将数据库中的Date格式的数据&#xff0c;或者指定日期的字符串格式化为想要的样式DATE_FORMAT (date, format)能根据格式串format 格式化日期或日期和时间值date&#xff0c;返回结果字符串。可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值&#xff0c;以便得到所希望的格…...

有名的网站开发工具/网站优化公司哪个好

QML Modules 在Qt 6.2中&#xff0c;首次出现了一个全面的构建系统API&#xff0c;允许您将QML模块指定为一个完整的、封装的单元。这是一个显著的改进&#xff0c;但由于QML模块的概念在Qt 5中还很不成熟&#xff0c;甚至经验丰富的QML开发人员现在可能会问“QML模块到底是什…...