【python全栈系列】day03-python数据类型-Number

python3中有六个标准的数据类型:Number(数字)String(字符串)List(列表) Tuple(元组) Set(集合)Dictionary(字典)

下面我们就用几天的时间分别来对每一种数据类型进行剖析

Number类型

Python3中Number类型支持 int(整型)、float(浮点型)、bool(布尔类型)、complex(复数)

1、 基本写法

# 整型
num = 1
# 浮点型
num1 = 3.12
# 布尔类型:判断是个事件的真假,真为True假为False
bool1 = True 
print(5 > 4)#输出 True
print(3 < 1)#输出 False

2、 bool 是 int 的子类,True 和 False 可以和数字相加

num1 = 12
bool1 = True
bool2 = False
print(num1  + bool1)#13
print(num1  + bool2)#12

3、当判断 True==1、False==0 时会返回 True

num1 = 1
num2 = 0
bool1 = True
bool2 = False
print(num1 ==  bool1)#True
print(num2 == bool2)#True

4、可以通过 is 来判断类型,print(0 is False) 返回的是false

p1 = 0
p2 = 0
k1 = False
k2 = False
print(p1 is p2)#True 
print(k1 is k2)#True
print(p1 is k1)#False
print(0 is False)#False
# 从上面代码中我们也能得出结论,bool是int的子类,但是他们在内存中存储的是不同的东西
# True==1、False==0 时会返回 True
# True is 1、False is 0 时会返回 False

这里先解释一下关键字is,后期课程会详细讲解,python中is是一个关键字,用于比较两个对象的身份(用户判断他们是不是指向或者存储同一份内存),如果is判断返回true就说明这两个值共享一份内存,是同一份,反之就是两个不同的数据

总结:上面的例子说明了,bool是int的子类,True==1、False==0,但是实际上True和1是两分内存,他们本质上是不一样的 下面我们看看他们之间的转化,同时引出一些实际项目中的应用

转化,看代码
# bool(): 将其他数据类型转换为布尔类型
print(bool(100)) # True
print(bool(3.12)) # True
print(bool(0)) # False
print(bool("hello")) # True
print(bool('')) # False
print(bool("")) # False
print(bool(' ')) # True
print(bool([12,34,7])) # True
print(bool([])) # False
print(bool((32,45,67))) # True
print(bool({"name":"三哥","age":18})) # True
print(bool(())) #False
print(bool({})) # False
print(bool(None)) # False
总结一下上面的例子可以发现 (这个比较重要,后续开发中if判断用这个特点很好用)
  • 数字0,空字符串""或者'',空列表[],空元组(),空字典{},空集合set(),None这些数据转换为bool类型 时是False

  • 但是这里有个地方特别提醒一下,print(bool(' ')) # True这个中间实际是有字符(空格字符,这个判断返回True)

应用

那上面说了那么多到底有什么用呢,这个还是非常有用的,主要用在if判断的时候,还是上代码,注意看注释.

现在有一个场景,判断项目是不是处于登录状态

  • 项目中定义一个变量loginInfo = {}
  • 未登录时变量的值是{}
  • 登录操作成功后我们给loginInfo赋值,可以把发起登录请求返回的登录数据赋值给loginInfo,这个时候返回的数据可能出错,有可能是None,也有可能是正常的登录信息
  • 赋值后我们的 loginInfo就有可能是{},也有可能是空值None,那判断是不是有效的登录就应该如下
if(loginInfo != {} and loginInfo != None):print('有登录信息,说明是登录状态')
  • 但是我们上面已经知道了空对象{}和None转化成Bool后都是false,那这样接下来的判断就简单了
#这里的if(loginInfo),如果loginInfo是{}或者是None都将会返回Flase
if(loginInfo):#假如返回true说明loginInfo一定是有有效值的对象print('有登录信息,说明是登录状态')

5、最后我们来看一下complex(复数)

复数是用来计算复杂的数据,在许多科学和工程应用中都有重要的作用,但在python平时的项目开发中用到的比较少。复数是一个数学概念,包含了实部和虚部。下面我们一起来看看怎么用它。

什么是 complex() 函数?

complex() 函数是 Python 中的一个内置函数,用于创建复数对象。复数由实部和虚部组成,形式上表示为 a + bi,其中 a 是实部,b 是虚部,i 是虚数单位。

complex() 函数的基本语法如下: complex(real, imag)

real 是一个数字或表达式,表示复数的实部。如果省略,实部默认为 0。

imag 是一个数字或表达式,表示复数的虚部。如果省略,虚部默认为 0。

创建
#complex创建复数
a = complex(2,3)
#也可以下面的方式创建
b = 2 + 3j
print(a == b)# 输出 True,
# 上面两种方式创建是一样的
获取

获取复数a的实部,使用a.real,获取复数a的虚部,使用a.imag

a = complex(2,3)
print(a.real)# 输出 2.0
print(a.imag)# 输出 3.0

运算

  • 复数的加法,实部加实部,虚部加虚部;
  • 复数的减法,实部减实部,虚部减虚部;
  • 复数的乘法
    • 注意:i ² = -1
    • (a+bj) * (c+dj) = ac + adj+bcj+bd*(-1) = (ac-bd) + (ad+bc)j
  • 复数的除法:复数无法直接相除。可以将被除数和除数都乘以除数的共轭复数,复数乘以其共轭复数将转换为实数,则除法运算转换为乘法运算及实部与虚部分别除以实数。
    • 共轭复数:实部相同,虚部互为相反数,例如a+bj的共轭复数为
    • 共轭复数相成得到实数字,(c+dj)*(c-dj)= (c²-d²)
    • (a+bj) / (c+dj) = (a+bj)(c-dj)/((c+dj)(c-dj)) = ((ac+bd)+(bc-ad)j)/(c²-d²)
a = complex(10,6)
b = complex(4,3)
print(a+b)#(14+9j)实部加实部,虚部加虚部
print(a-b)#(6+3j)实部减实部,虚部减虚部;
print(a*b)#(22+54j) =  (40-18) + (30 + 24)j
print(a/b)#(2.32-0.24j)

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

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

相关文章

学会python——用python编写一个电子时钟(python实例十七)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.电子时钟程序 3.1 代码构思 3.2代码实例 3.3运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性…

thinkphp8 执行 db:: 需要引入什么

在ThinkPHP8中&#xff0c;执行数据库操作需要使用Db类。为了执行Db::静态调用&#xff0c;您需要引入think\facade\Db类。 在您的控制器或模型文件顶部&#xff0c;使用以下代码引入Db类&#xff1a; use think\facade\Db; 然后您就可以使用Db类来执行数据库操作&#xff0c;…

【Python】从Word文档中提取表格的方法

在Python中&#xff0c;从Word文档&#xff08;通常是.doc或.docx格式&#xff09;中提取表格可以使用第三方库&#xff0c;如python-docx。以下是使用python-docx库从Word文档中提取表格的基本步骤&#xff1a; 安装python-docx库&#xff1a; 如果你还没有安装这个库&#xf…

今天的A股,让人惊愕了,2个耐人寻味的重要信号,有望迎来下一个超级风口!

今天的A股&#xff0c;让人惊愕了&#xff0c;你知道是为什么吗&#xff1f;盘面上出现2个耐人寻味的重要信号&#xff0c;有望迎来下一个超级风口&#xff01; 1、今天两市低开低走&#xff0c;但大消费劲头十足&#xff0c;连中免这样的大体量都涨停了&#xff0c;另外消费茅…

爬虫-网页基础

HTML 基本语法 HTML&#xff1a;Hyper Text Markup Language, 超文本标记语言&#xff0c;是计算机语言的一种&#xff0c;由元素构成。 p元素 <p>Web 真好玩&#xff01;</p> 由三大部分组成 开始标签&#xff1a;一对尖括号中间包裹这元素名称元素内容&#x…

SaaS运营:如何根据“客户漏斗”定制合作伙伴营销策略?

将你的合作伙伴营销策略与你的客户漏斗模型相结合&#xff0c;可以显著提升你的营销效果。通过瞄准客户旅程中的每一个阶段&#xff0c;你可以增加客户参与度并推动转化&#xff0c;从而将你的促销活动提升到新的高度——这仅仅是一个以数据为支撑的方法。 为了探讨如何在漏斗…

数据结构 - C/C++ - 树

公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 树的概念 结构特性 树的样式 树的存储 树的遍历 节点增删 二叉搜索树 平衡二叉树 树的概念 二叉树是树形结构&#xff0c;是一种非线性结构。 非线性结构&#xff1a;在二叉树中&#x…

Echarts热力图关闭初始化时动画效果(由左至右渐进加载动画)

Echarts热力图关闭初始化时动画效果&#xff08;由左至右渐进加载动画&#xff09; 在Echarts配置中&#xff0c;热力图初始时加载数据会有由左向右的渐进的加载动画。无论是在option或在series添加均不生效&#xff0c;但是在折线图会生效。 animation animationDuration ani…

C/C++ 编程语言详解

前言 C 和 C 是两种功能强大且广泛使用的编程语言。C 语言因其高效、灵活和接近硬件的特性&#xff0c;在系统编程、嵌入式系统和高性能计算中占据重要地位。C 则在 C 的基础上增加了面向对象编程特性&#xff0c;广泛应用于软件开发、游戏编程和大型系统设计。本文将详细介绍…

LLM应用:传统NLP任务

LLM出来以后&#xff0c;知乎上就出现了“传统NLP已死”的言论&#xff0c;但是传统NLP真的就被扔进历史的垃圾桶了吗&#xff1f; 其实&#xff0c;尽管LLM具有出色的通用能力&#xff0c;但仍然无法有效应对低资源领域的自然语言处理任务&#xff0c;如小语种翻译。为了更好地…

golang——Gin框架及路由介绍

一. 框架介绍 Gin是一个轻量级的Go语言Web框架&#xff0c;它具有高性能和简洁的设计。由于其快速的路由匹配和处理性能&#xff0c;Gin成为Go语言中最受欢迎的Web框架之一。 特点&#xff1a; 快速和轻量&#xff1a;Gin框架的设计注重性能和效率&#xff0c;采用了一些优化措…

quartz调度框架和gbase8s适配过程中的四个报错

1.报错Caused by: java,sql.SOLException Create breakpoint . : 发生语法错误。 程序与数据库通过jdbc连接时&#xff0c;为了保持连接&#xff0c;会向数据库发送sql语句验证连接有效 --如mysql的其他数据库 connection-test-query: "select 1;" --gbase8s数据库…

第二十一章 网络编程

​ 一、网络的相关概念 1. 网络通信 &#xff08;1&#xff09;网络通信&#xff1a;将 数据 通过网络从一台设备传输到另一台设备 &#xff08;2&#xff09;java.net 包下提供了一系列的类或接口&#xff0c;完成网络通信 2. 网络 概念&#xff1a;两台或多台设备通过一定…

轻松省电!教你苹果手机自动调节亮度怎么设置

在日常使用手机的过程中&#xff0c;屏幕亮度是影响电池续航的关键因素之一。苹果手机提供的自动调节亮度功能&#xff0c;可以根据环境光线自动调整屏幕亮度&#xff0c;从而提供最佳的视觉体验并有效延长电池使用时间。想知道苹果手机自动调节亮度怎么设置吗&#xff1f; 本…

工厂自动化相关设备工业一体机起到什么作用?

在当今的制造业领域&#xff0c;工厂自动化已成为提高生产效率、保证产品质量和降低成本的关键。在这一进程中&#xff0c;工业一体机作为一种重要的设备&#xff0c;发挥着不可或缺的作用。 工业一体机是自动化生产线上的控制中心。它能够整合和处理来自各个传感器、执行器和其…

02:vim的使用和权限管控

vim的使用 1、vim基础使用1.1、vim pathname 2、vim高级用法2.1、查找2.2、设置显示行号2.3、快速切换行2.4、 行删除2.5、行复制粘贴 3、权限管理3.1、普通用户和特权用户3.2、文件权限表示 vim是Linux中的一种编辑器&#xff0c;类似于window中的记事本&#xff0c;可以对创建…

函数式编程和命令式编程

函数式编程&#xff08;Functional Programming, FP&#xff09;与命令式编程&#xff08;Imperative Programming, IP&#xff09;是编程领域中两大截然不同的范式&#xff0c;它们在解决问题的策略和哲学上存在着本质的差异。 函数式编程&#xff08;Functional Programming…

python解耦重构,提高程序维护性

一、重构思想 思路来源 java spring设计模式学习&#xff0c;强调低耦合的思想&#xff0c;通过解耦来提高程序的可维护性。 二、代码重构 解决方案 通过单独配置文件来控制变量的改变。 spring的话可以读取xml或者是springboot 读取application.properties 来获取变量值。…

产业链协同,共谋产业新高度

国际数字影像产业园始终秉承“产业协同&#xff0c;共谋发展”的核心理念&#xff0c;致力于通过深化产业链上下游的紧密合作&#xff0c;推动数字影像产业的持续繁荣。 一、产业协同的具体实践 1、产业链整合&#xff1a;园区积极整合数字影像产业的上下游资源&#xff0c;形…

java排序根据对象的某一个字段

你可以使用 Java 的 Collections.sort 方法结合自定义的比较器来根据 Result 对象的 area 属性对 List 进行排序。假设 Result 类有一个 getArea 方法来获取 area 属性&#xff0c;以下是具体的实现代码&#xff1a; import java.util.ArrayList; import java.util.Collection…