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

【python基础】基本数据类型

文章目录

  • 一. Python基本数据类型
    • 1. 整数
      • 1.1. python的四种进制
      • 1.2. 数中的下划线
    • 2. 浮点数
    • 3. 复数
    • 4. 布尔型
    • 5. 运算符
      • 5.1. 算术运算符
      • 5.2. 比较运算符
      • 5.3. 逻辑运算符
      • 5.4 运算符优先级
    • 6. 常量
  • 二. 注释
  • 三. Python之禅

一. Python基本数据类型

1. 整数

  • 无长度限制:Python 3中整型数据的长度不受机器字长的影响,它的取值范围只与计算机的内存有关。也就是说,只要计算机的内存足够大,无论整型的长度为多少,都不用担心溢出问题。
  • 4种进制来表示整型,默认的是十进制,如果想要用其他进制表示,需要加上引导符号

1.1. python的四种进制

二进制:以0B或0b开头;
八进制:以 0O或0o开头;
十六进制:以0X或0x开头
# 1. 转为10进制
>>> a=0b101
>>> print('a的十进制表示:%d'%a)
a的十进制表示:5# 2. 不同进制之间的转换
bin(x):将数值x转换为二进制。 
oct(x):将数值x转换为八进制。 
hex(x):将数值x转换为十六进制。 
int(x):将字符串x转换为整数。>>> a=0b101
>>> print(bin(5))
0b101
>>> print(oct(5))
0o5
>>> print(hex(5))
0x5
# 转换为10进制
>>> print(int(a))
5

 

# 对整数执行加(+)减(-)乘(*)除(/)运算。
>>> 2 + 3
5
>>> 3 - 2
1
>>> 2 * 3
6
>>> 3 / 2
1.5# 两个乘号表示乘方运算:
>>> 3 ** 2
9
>>> 10 ** 6
1000000

 

1.2. 数中的下划线

书写很大的数时,可使用下划线将其中的数字分组,使其更清晰易读:

>>> universe_age = 14_000_000_000
>>> print(universe_age)
14000000000

在Python看来,1000与1_000没什么不同,1_000与10_00也没什么不同。这种表示法适用于整数和浮点数,但只有Python 3.6和更高的版本支持

 

2. 浮点数

  • Python的浮点数一般以十进制表示,由整数和小数部分组成,如 0.0,2.34,3.14159都是浮点数。
  • 对于非常大或者非常小的浮点数可以用科学记数法表示。如: 0.00000051可以表示成5.1E-7,314000可以表示成3.14E5
  • Python中的浮点数是双精度的,每个浮点数占8个字节(64位)52 位存储尾数11位存储阶码1位存储符号,故浮点数的取值范围为-1.8E308~1.8E308。超出这个范围将视为无穷大(inf)或者无穷小 (-inf)
  • Python中最长可以输出浮点数的17位数字,但是计算机只能保证15位数字的精度,对于超出17位的浮点数会产生截断。一旦产生截断,结果就会产生误差。如平时我们都会认为0.1+0.2的结果是0.3,但是实际执行的结果却是0.30000000000000004。

注意小数计算的结果包含的小数位数可能是不确定的

>>> 0.2 + 0.1
0.30000000000000004
>>> 3 * 0.1
0.30000000000000004

 

无论是哪种运算,只要有操作数是浮点数,Python默认得到的总是浮点数,即便结果原本为整数也是如此。

>>> 4/2
2.0
>>> 1 + 2.0
3.0
>>> 2 * 3.0
6.0
>>> 3.0 ** 2
9.0

 

3. 复数

格式为2+3j和5.6+7.8j这样的数据称为复数。一个复数由“实部”和 “虚部”两部分组成,实部是一个实数,虚部是一个实数后加j或J组成, 虚部不能单独存在

# 转换为复数
>>> a=complex(2,4)
>>> print(a)
(2+4j)
# 打印实部和虚部
>>> print('实部:',a.real,'虚部:',a.imag)
实部: 2.0 虚部: 4.0
# 转换为复数
>>> print(complex(6))
(6+0j)

 

4. 布尔型

布尔型只有True和False两个值,本质上来说,布尔型其实是一种特殊的整数,True对应1,False对应0。
任何对象都具有布尔属性,在Python中,以下数据的值均为False:

  1. None
  2. False
  3. 任何为0的数字类型:0、0.0、0j。
  4. 任何空字符、空列表、空字典:“”、()、[ ]、{}。
  5. 用户定义的类实例,如果类中定义了_bool_()或者 _len_()方法,并且方法返回0,或者布尔值False。

以下代码结果均为False:

>>> bool()
False
>>> bool('')
False
>>> bool(0)
False
>>> bool([ ])

 

5. 运算符

运算符是告诉编译程序执行指定运算操作的符号,是针对操作数进行运算。 如表达式1+0.01中,1和0.01均为操作数,+是运算符

数值运算符是一类对数值型操作数有效的运算符。按照不同的功能, 又可以分成算术运算符、赋值运算符、比较运算符、逻辑运算符等。

5.1. 算术运算符

一元操作符。以x=2,y=9为例,对以下算术运算符进行说明, 一元运算符如表
在这里插入图片描述

二元运算符如表
在这里插入图片描述

 

不同类型的数值运算
Python中的算术运算符也支持对不同类型的数值进行混合运算。在混合运算时,Python会强制将数值进行 临时类型转换。遵循原则是将简单的数据类型转换为相对复杂的那一种数据类型。

  • 布尔类型进行算术运算时,会将值视为0或1。
  • 整型与浮点型进行混合运算时,会将整型转换为浮点型
  • 其他类型与复数运算时,会将其他类型转换为复数
1+True #结果为2 
1*2.0 #结果为2.0 
1+(2+3j) #结果为(3+3j)

 

例题:时间转换

给定一个以秒为单位的时间t,要求用“ H : M : S ”的 格式来表示这个时间。 H 表示小时, M 表示分钟, S 表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出“0:0: 0”;若t=3661,则输出“1:1:1”。

t=eval(input())
H=t//3600 # 整数除得小时
t=t%3600  # 余数:去除小时的秒
M=t//60   # 整数除:秒中有多少分钟
S=t%60    # 余数:去除分钟后的秒,  
print("{}:{}:{}".format(H,M,S))

 

5.2. 比较运算符

比较运算符是比较符号左右两边的操作数,运算结果是一个布尔值。以x=2,y=9为例,对以下比较运算符进行说明。

在这里插入图片描述

猜数游戏

程序中给出一个固定的数字,用户通过键盘输入一个数,如果这个数 与程序给出的数字相同,则输出“恭喜你猜对了!”,如果这个数比程序 给出的数字大则输出“太大了!”,如果这个数比程序给出的数字小,则输出“太小了!”。

y=50
x=eval(input('请输入你猜的数字:'))
if x==y:print('恭喜你猜对了')
elif x>y:print('太大了')
else:print('太小了')

 

5.3. 逻辑运算符

逻辑运算符可以把多个条件表达式连接起来,形成更为复杂的条件
在这里插入图片描述

剪刀石头布游戏

小明和小红想玩“剪刀,石头,布”游戏。在这个游戏中,两个人同 时说“剪刀”“石头”或“布”,压过另一方的为胜者。规则是:“布” 胜过“石头”,“石头”胜过“剪刀”,“剪刀”胜过“布”。

# 输入:
# 两个数分别代表小明和小红的选择,范围为{0,1,2},用逗号隔开。0表示石头,1表示布,2表示剪刀。
# 这两个数分别表示两个人所选的。如:0和2,则表小明出石头,小红出剪刀。# 输出:
# 如果前者赢,输出“小明胜”。如果后者赢,输出“小红胜”。如果 是平局,输出“平局”。a, b = eval(input())
if (a == 0 and b == 1) or (a == 1 and b == 2) or (a == 2 and b == 0): print('小红胜')
if (a == 1 and b == 0) or (a == 2 and b == 1) or (a == 0 and b == 2): print('小明胜')
if a == b:print('平局')

 

5.4 运算符优先级

常见运算符优先级由高到低的顺序如下:

  • 乘方:∗∗
  • 按位取反:~
  • 正负号:+x;-x
  • 乘、除、求余:∗、/、%
  • 加、减:+、-;
  • 比较:<、 <=、>、>=、!=、==
  • 成员判断:not in、in;
  • 逻辑运算:not、and、 or

 

同一优先级下的:

  • 运算符在运算时是按照从左往右的顺序执行,如2+3-4的运算顺序是:解释器先运算2+3,得到结果5再与运算符结合执行5-4。
  • 赋值运算符的结合则相反,按照从右往左的顺序,如x=y=z,会先 将z的值赋给y,再将y的值赋给x。

 

6. 常量

常量类似于变量,但其值在程序的整个生命周期内保持不变。
Python没有内置的常量类型,但Python程序员会使用全大写来指出应将某个变量视为常量,其值应始终不变:

MAX_CONNECTIONS = 5000

 

二. 注释

在Python中,注释用井号(#)标识。井号后面的内容都会被Python解释器忽略,

# 向大家问好。
print("Hello Python people!")

 

三. Python之禅

Simple is better than complex.

如果有两个解决方案,一个简单、一个复杂,但都行之有效,就选择简单的解决方案吧。这样,你编写的代码将更容易维护,你或他人以后改进这些代码时也会更容易。

Now is better than never.

你可以用余生来学习Python和编程的纷繁难懂之处,但这样你什么项目都完不成。不要企图编写完美无缺的代码,而是要先编写行之有效的代码,再决定是对其做进一步改进,还是转而去编写新代码。

 

相关文章:

【python基础】基本数据类型

文章目录 一. Python基本数据类型1. 整数1.1. python的四种进制1.2. 数中的下划线 2. 浮点数3. 复数4. 布尔型5. 运算符5.1. 算术运算符5.2. 比较运算符5.3. 逻辑运算符5.4 运算符优先级 6. 常量 二. 注释三. Python之禅 一. Python基本数据类型 1. 整数 无长度限制&#xff1…...

应用层——HTTP

像我们电脑和手机使用的应用软件就是在应用层写的&#xff0c;当我们的数据需要传输的时候换将数据传递到传输层。 应用层专门给用户提供应用功能&#xff0c;比如HTTP,FTP… 我们程序员写的一个个解决我们实际的问题都在应用层&#xff0c;我们今天来聊一聊HTTP。 协议 协议…...

剧本杀小程序搭建,为商家带来新的收益方向

近几年&#xff0c;剧本杀游戏成为了游戏市场的一匹黑马&#xff0c;受到了不少年轻玩家的欢迎。随着信息技术的快速发展&#xff0c;传统的剧本杀门店已经无法满足游戏玩家日益增长的需求&#xff0c;因此&#xff0c;剧本杀市场开始向线上模式发展&#xff0c;实现行业数字化…...

十六、【机器学习】【监督学习】- 支持向量回归 (SVR)

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…...

基于FPGA的多路选择器

目录 一、组合逻辑 二、多路选择器简介&#xff1a; 三、实战演练 摘要&#xff1a;本实验设计并实现了一个简单的多路选择器&#xff0c;文章后附工程代码 一、组合逻辑 组合逻辑是VerilogHDL设计中的一个重要组成部分。从电路本质上讲&#xff0c;组合逻辑电路的特点是输…...

面经学习(杭州实在智能实习)

个人评价 秃狼觉得本次的面试是有史以来难度最大的&#xff0c;问了很多陌生的八股文&#xff0c;项目问的比较少&#xff0c;估计是项目本来就没有什么亮点&#xff0c;也是第一次被面试官说菜的面试。不过在后续的学习上还是收获颇丰的。 1.说说你在实习中遇到的难点吧&…...

mysql、oracle、db2数据库连接参数

mysql、oracle、db2数据库连接参数 参数/数据库driverurlMysqlcom.mysql.jdbc.Driver 或 com.mysql.cj.jdbc.Driverjdbc:mysql://localhost:3306/数据库名Oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:localhost:1521:orcl 注&#xff1a;orcl为数据库SIDDB2com.ib…...

redis缓存击穿和缓存穿透的封装、缓存更新的CacheAside方案、数据预热

redis缓存击穿和缓存穿透的封装 一、首先是互斥锁二、封装为工具类三、调用四、数据预热五、缓存更新的CacheAside方案 &#xff08;来源黑马redis&#xff09; 一、首先是互斥锁 //拿到锁private boolean tryLock(String key) {Boolean flag stringRedisTemplate.opsForValue…...

ArcGIS Pro SDK (九)几何 5 多边形

ArcGIS Pro SDK &#xff08;九&#xff09;几何 5 多边形 文章目录 ArcGIS Pro SDK &#xff08;九&#xff09;几何 5 多边形1 构造多边形 - 从映射点的枚举2 构造多边形 - 从包络3 获取多边形的点4 获取多边形的各个部分5 枚举多边形的各个部分6 获取多边形的线段7 构建圆环…...

Docker 镜像使用和安装

​ 1、简介 Docker是一个开源的应用容器引擎&#xff1b;是一个轻量级容器技术&#xff1b; Docker支持将软件编译成一个镜像&#xff1b;然后在镜像中各种软件做好配置&#xff0c;将镜像发布出去&#xff0c;其他使用者可以直接使用这个镜像&#xff1b; 运行中的这个镜像…...

JAVA:Filer过滤器+案例:请求IP访问限制和请求返回值修改

JAVA&#xff1a;Filer过滤器 介绍 Java中的Filter也被称为过滤器&#xff0c;它是Servlet技术的一部分&#xff0c;用于在web服务器上拦截请求和响应&#xff0c;以检查或转换其内容。 Filter的urlPatterns可以过滤特定地址http的请求&#xff0c;也可以利用Filter对访问请求…...

FastAPI -- 第三弹(自定义响应、中间件、代理、WebSockets)

路径操作的高级配置 OpenAPI 的 operationId from fastapi import FastAPIapp FastAPI()# 通过 operation_id 参数设置 app.get("/items/", operation_id"some_specific_id_you_define") async def read_items():return [{"item_id": "F…...

网安小贴士(16)网络安全体系

前言 网络安全体系是一个综合性的系统&#xff0c;旨在保护网络系统中的硬件、软件和数据免受未经授权的访问、泄露、破坏或篡改。这个体系涉及多个方面&#xff0c;包括网络安全策略、安全技术和安全管理等。 一、网络安全体系概述 网络安全体系通常包括以下几个关键组成部分…...

UCOSIII 中断管理接口剖析

引言 在实时操作系统中&#xff0c;中断处理是一个非常重要的环节。理解和掌握中断处理流程对提高系统实时性和稳定性至关重要。本文将详细解析uCOS-III内核中的中断管理接口&#xff0c;包括 OSIntEnter() 和 OSIntExit() 函数的流程&#xff0c;并结合流程图对各个步骤进行说…...

windows 11 PC查询连接过的wlan密码

1:管理员打开cmd 2:输入netsh wlan show profiles 3:netsh wlan show profiles Shw2024-5G keyclear 密码关键内容&#xff1a;12345678...

npm install 出现canvas错误

npm install canvas2.8.0 --ignore-scripts只要是&#xff1a;npm ERR! Failed at the XXXX.X.X install script 这种错误 都可以&#xff1a;npm install XXXX.X.X --ignore-scripts进行更改 https://blog.csdn.net/YXWik/article/details/119039561...

Python爬虫入门篇学习记录

免责声明 本文的爬虫知识仅用于合法和合理的数据收集&#xff0c;使用者需遵守相关法律法规及目标网站的爬取规则&#xff0c;尊重数据隐私&#xff0c;合理设置访问频率&#xff0c;不得用于非法目的或侵犯他人权益。因使用网络爬虫产生的任何法律纠纷或损失&#xff0c;由使用…...

怎样对 PostgreSQL 中的慢查询进行分析和优化?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 怎样对 PostgreSQL 中的慢查询进行分析和优化&#xff1f;一、理解慢查询的危害二、找出慢查询&#x…...

Springboot项目远程部署gitee仓库(docker+Jenkins+maven+git)

创建一个Springboot项目&#xff0c;勾选web将该项目创建git本地仓库&#xff0c;再创建远程仓库推送上去 创建TestController RestController RequestMapping("/test") public class TestController { GetMapping("/hello") public String sayHelloJe…...

Chromium CI/CD 之Jenkins实用指南2024- Windows节点开启SSH服务(七)

1.引言 在现代软件开发和持续集成的过程中&#xff0c;自动化部署和远程管理是不可或缺的关键环节。SSH&#xff08;Secure Shell&#xff09;协议以其强大的安全性和灵活性&#xff0c;成为连接和管理远程服务器的首选工具。对于使用Windows虚拟机作为Jenkins从节点的开发者而…...

阿里大数据面试题集锦及参考答案(3万字长文:持续更新)

目录 MapReduce Shuffle为什么要将数据写入环形缓冲区 MapReduce Shuffle为什么容易发生数据倾斜 Hadoop HA当一个Namenode挂掉,会有数据丢失吗 数据倾斜发生的位置 Combiner了解吗? 什么情况下不能用Combiner? Sum、Count、Count(distinct)哪些能用、哪些不能用Comb…...

springboot 配置 spring data redis

1、在pom.xml引入父依赖spring-boot-starter-parent&#xff0c;其中2.7.18是最后一版支持java8的spring <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</…...

Numpy基础用法

Numpy基础用法 numpy.all()num.sun() numpy.all() numpy 中的 all() 函数用于测试 NumPy 数组中所有元素是否都满足指定条件。它接受一个 NumPy 数组作为输入&#xff0c;并返回一个布尔值&#xff0c;指示数组中所有元素是否都满足条件。让我们通过具体的代码示例来深入探讨 n…...

设计模式--享元模式

享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构型设计模式&#xff0c;它通过共享大量细粒度的对象来减少内存消耗。这个模式的核心思想是把对象的状态分为内在状态和外在状态&#xff0c;其中内在状态是可以共享的&#xff0c;而外在状态是需要独立维护的。 享…...

可视化剪辑,账号矩阵,视频分发,聚合私信一体化营销工具 源----代码开发部署方案

可视化剪辑&#xff1a; 为了实现可视化剪辑功能&#xff0c;可以使用流行的视频编辑软件或者开发自己的视频编辑工具。其中&#xff0c;通过设计用户友好的界面&#xff0c;用户可以简单地拖拽和放大缩小视频片段&#xff0c;剪辑出满足需求的视频。在开发过程中&#xff0c;可…...

CCF-CSP认证考试 202406-2 矩阵重塑(其二) 100分题解

更多 CSP 认证考试题目题解可以前往&#xff1a;CSP-CCF 认证考试真题题解 原题链接&#xff1a; 202406-2 矩阵重塑&#xff08;其二&#xff09; 时间限制&#xff1a; 1.0 秒 空间限制&#xff1a; 512 MiB 题目背景 矩阵转置操作是将矩阵的行和列交换的过程。在转置过程…...

初阶数据结构的实现1 顺序表和链表

顺序表和链表 1.线性表1.1顺序表1.1.1静态顺序表&#xff08;不去实现&#xff09;1.1.2动态顺序表1.1.2.1 定义程序目标1.1.2.2 设计程序1.1.2.3编写代码1.1.2.3测试和调试代码 1.1.2 顺序表的问题与思考 1.2链表1.2.1链表的概念及结构1.2.1.1 定义程序目标1.2.1.2 设计程序1.…...

破解反爬虫策略 /_guard/auto.js(一) 原理

背景 当用代码或者postman访问一个网站的时候&#xff0c;访问他的任何地址都会返回<script src"/_guard/auto.js"></script>&#xff0c;但是从浏览器中访问显示的页面是正常的&#xff0c;这种就是网站做了反爬虫策略。本文就是带大家来破解这种策略&…...

40.简易频率计(基于等精度测量法)(3)

&#xff08;1&#xff09;BCD8421码&#xff1a;十进制数字转换成BCD8421码的方法 补零&#xff1a;你需要显示多少位数字&#xff0c;就在前面补上四倍的位宽。比如你要显示一个十进制8位的数字&#xff0c;就在前面补上8*432个零。判断&#xff1a;判断补零部分显示的十进制…...

关于Centos停更yum无法使用的解决方案

最近在使用Centos7.9系统时候&#xff0c;发现yum仓库无法进行安装软件包了&#xff0c;官方说2024年6月30日进行停更&#xff0c;停更后无法提供对应的软件服务。 我在使用yum安装包的时候发现确实不能使用官方服务了&#xff1a; CentOS停更的影响 CentOS停止更新之后&#…...

护肤品 网站建设策划书/网络热词英语

里程碑是每一个项目开发过程中的检查点&#xff0c;是项目监控的有效措施之一。但是&#xff0c;一个项目究竟设置几个里程碑才合适呢&#xff1f;这个问题可能困扰着很多在工作中需要通过项目达成目标而又非专业的项目管理人士。今天就带您了解一下关于项目里程碑的知识点。 在…...

网站开发界面设计用什么工具/seo网站免费优化软件

在使用CAD看图软件查看DWG图纸的过程中&#xff0c;当图纸中的CAD标注文字太小的时候该怎么修改其大小呢&#xff1f;浩辰CAD看图王电脑版中&#xff0c;提供了多种标注方法&#xff0c;包含线性标注、对齐标注、角度标注、坐标标注等&#xff0c;标注主要就是将标注内容显示在…...

wordpress网盘资源/seo优化排名技术百度教程

...

免费的网站程序哪里好/公众号引流推广平台

Error ORA-03113: 通信通道的文件结尾进程 ID: 2232会话 ID: 1250 序列号: 这是oracle 报的错误&#xff0c; 可能这个03113这个编码的错误有很多。 但是要找到是什么原因就需要根据2232这个编码找到 这个日志文件 D:\app\Administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_2…...

青岛模版网站建设/简述什么是seo及seo的作用

副标题——别把技术问题转化为人际问题&#xff08;作者&#xff1a;孙继滨&#xff09;【项目经理之修炼】 全文索引 刚刚进入项目时&#xff0c;由于权威还没有树立&#xff0c;人际关系尚浅&#xff0c;经常会有组员不把你当回事儿。于是&#xff1a; 你要求组员写周报&…...

江苏网站建设开发/seo搜索引擎优化求职简历

有哪些基础的问题&#xff1f; 一些简单的问题在前面的文章中都体现了&#xff1a; 为什么要使用消息中间件&#xff1f;消息中间件有哪些缺点&#xff1f;ActiveMQ、RabbitMQ、RocketMQ和kafka都有什么优缺点&#xff1f;RabbitMQ如何保证高可用性&#xff1f;kafka如何保证…...