【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和编程的纷繁难懂之处,但这样你什么项目都完不成。不要企图编写完美无缺的代码,而是要先编写行之有效的代码,再决定是对其做进一步改进,还是转而去编写新代码。

 

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

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

相关文章

【HTML入门】第十四课 - form表单(下)表单控件们(一)

上一节&#xff0c;我们学习了基本的 form 标签的属性们&#xff0c;我们说过&#xff0c;form表单是一个区域&#xff0c;里面有一些控件元素&#xff0c;这一小节&#xff0c;我们来看一下这些控件们。 目录 1 文本输入框 2 密码输入框 3 数值型输入框 4 文本域输入框 1…

如何为游戏本地化选择语言

为游戏本地化选择合适的语言是一个至关重要的决定&#xff0c;它会极大地影响您的游戏在国际市场上的成功。适当本地化的游戏可以接触到更广泛的受众&#xff0c;提高玩家满意度&#xff0c;并促进销售。以下是在决定将游戏本地化为哪种语言时需要考虑的一些关键因素&#xff1…

Java(二十一)---栈的使用和模拟实现

文章目录 前言1.什么是栈(Stack)?2. 栈的模拟实现3.stack的使用![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/80c82d22f3ee49cfaa2915d1c961573e.png)4.关于栈的oj题4.1.有效的括号4.2.逆波兰表达式4.3.栈的压入、弹出序列4.4.最小栈 前言 前面几篇我们学习了顺序…

UE4-打包游戏,游戏模式,默认关卡

一.打包游戏 注意windows系统无法打包苹果系统的执行包&#xff0c;只能使用苹果系统打包。 打包完之后是一个.exe文件。 打包要点&#xff1a; 1.确定好要操控的角色和生成位置。 2.设置默认加载的关卡和游戏模式。 在这个界面可以配置游戏的默认地图和游戏的模式&#xff0c;…

八,九、 MyBatis 操作数据库 ★ ✔

八&#xff0c;九、 MyBatis 操作数据库 JDBC 操作⽰例回顾1. 什么是MyBatis?2. MyBatis⼊⻔2.1 准备⼯作2.1.1 创建⼯程 2.1.2 数据准备2.2 配置数据库连接字符串2.3 写持久层代码 ★2.4 单元测试 ★ 使⽤Idea ⾃动⽣成测试类3. MyBatis的基础操作3.1 打印⽇志 ★3.2 参数传递…

26.js事件

事件&#xff1a;用户行为 事件三要素: 事件源 事件类型 事件处理函数 事件绑定 语法1&#xff1a;dom 0级&#xff08;dom 0级指最原始的&#xff0c;在dom标准被正式定义之前的事件处理方式&#xff0c;事件处理函数通常在<script>标签中或直接在HTML元素的事件属性上…

轻量级文本编辑器 | Notepad-- v2.17 官方版

软件简介 Notepad--是一款国产的跨平台轻量级文本编辑器&#xff0c;旨在作为 Notepad 的替代品。它使用 C 编写&#xff0c;支持 Windows、Mac、Linux 等多种操作系统。 鉴于某些Notepad竞品作者的不当言论&#xff0c;Notepad--的意义在于&#xff1a;减少一点错误言论&…

应用最优化方法及MATLAB实现——第5章代码实现

一、概述 继上一章代码后&#xff0c;这篇主要是针对于第5章代码的实现。部分代码有更改&#xff0c;会在下面说明&#xff0c;程序运行结果跟书中不完全一样&#xff0c;因为部分参数&#xff0c;书中并没有给出其在运行时设置的值&#xff0c;所以我根据我自己的调试进行了设…

SwiftUI 6.0(Xcode 16)新 PreviewModifier 协议让预览调试如虎添翼

概览 用 SwiftUI 框架开发过应用的小伙伴们都知道&#xff0c;SwiftUI 中的视图由各种属性和绑定“扑朔迷离”的缠绕在一起&#xff0c;自成体系。 想要在 Xcode 预览中泰然处之的调试 SwiftUI 视图有时并不是件容易的事。其中&#xff0c;最让人秃头码农们头疼的恐怕就要数如…

httpx,一个网络请求的 Python 新宠儿

大家好&#xff01;我是爱摸鱼的小鸿&#xff0c;关注我&#xff0c;收看每期的编程干货。 一个简单的库&#xff0c;也许能够开启我们的智慧之门&#xff0c; 一个普通的方法&#xff0c;也许能在危急时刻挽救我们于水深火热&#xff0c; 一个新颖的思维方式&#xff0c;也许能…

SpringBoot框架学习笔记(三):Lombok 和 Spring Initailizr

1 Lombok 1.1 Lombok 介绍 &#xff08;1&#xff09;Lombok 作用 简化JavaBean开发&#xff0c;可以使用Lombok的注解让代码更加简洁Java项目中&#xff0c;很多没有技术含量又必须存在的代码&#xff1a;POJO的getter/setter/toString&#xff1b;异常处理&#xff1b;I/O…

【Python实战因果推断】41_合成控制1

目录 Online Marketing Dataset 在之前了解了面板数据在因果识别方面的优势。也就是说&#xff0c;你不仅可以比较单位之间的关系&#xff0c;还可以比较单位的前世今生&#xff0c;这样你就可以用更可信的假设来估计反事实 。您还了解了差分法&#xff08;DID&#xff09;及其…

python调用MATLAB出错matlab.engine.MatlabExecutionError无法调用MATLAB函数报错

python调用MATLAB出错matlab.engine.MatlabExecutionError无法调用MATLAB函数报错 说明(废话)解决方案MATLAB异常乱码python矩阵转MATLAB矩阵matlab.engine.MatlabExecutionError 说明(废话) python调用MATLAB&#xff0c;调用m文件中的函数&#xff0c;刚开始都没有问题&…

玄机-第一章 应急响应- Linux入侵排查

文章目录 前言简介应急开始准备工作步骤 1步骤 2步骤 3步骤 4步骤5 总结 前言 作者这一次也是差一点一次过&#xff0c;因为没有经验的原因&#xff0c;或者说题目对问题描述不太对&#xff0c;如果说是求黑客反连的ip的话我或许就知道要执行一下留下来的那个 .elf 可疑文件。 …

SpringCloud之Nacos集群,让Nacos不再是谜

Nacos集群搭建 集群结构 Nacos的集群环境我们采用这种结构&#xff1a;3个Nacos注册中心1个MySql Nacos集群 我们在windows上安装3个Nacos节点。分配配置相关信息 application.properties: 持久化数据到mysql中 修改 cluster.conf.example为cluster.conf然后在里面写上相关…

ARM体系结构和接口技术(六)KEY按键实验① 按键轮询检测

文章目录 一、按键轮询&#xff08;一&#xff09;分析按键的电路连接1. 按键原理图2. 按键消抖 二、分析芯片手册&#xff08;一&#xff09; GPIO章节&#xff08;二&#xff09;RCC章节 三、代码&#xff08;一&#xff09;key.c&#xff08;二&#xff09;key.h 一、按键轮…

lua 游戏架构 之 LoaderWallet 异步加载

定义了一个名为LoaderWallet class&#xff0c;用于管理资源加载器&#xff08;Loader&#xff09;。这个类封装了资源加载的功能&#xff0c;包括异步加载&#xff0c;以及资源的释放和状态查询。下面是对代码的详细解释&#xff1a; ### 类定义和初始化 这里定义了一个名为…

QT CNA上位机报错 解决方案

QT编译报错: -lControlCAN 解决方案 更换三个文件&#xff0c;即可解决(QT 自带的是32位库&#xff0c;应使用64位库文件)

【Vue】快速入门:构建你的第一个Vue 3应用

文章目录 一、Vue简介二、环境搭建1. 安装Node.js和npm2. 安装Vue CLI 三、创建Vue项目四、项目结构介绍五、组件基础创建一个组件使用组件 六、模板语法插值指令v-bindv-ifv-for 七、事件处理八、状态管理安装Vuex创建Store使用Store 九、路由基础安装Vue Router配置路由使用路…

PiT : 基于池化层Pooling layer的Vision Transformer

CNN的降维原理;随着深度的增加,传统CNN的通道维数增加,空间维数减少。经验表明,这样的空间降维对变压器结构也是有益的,并在原有的ViT模型的基础上提出了一种新的基于池的视觉变压器(PiT)。 1. 引言 ViT与卷积神经网络(CNN)有很大的不同。将输入图像分成1616小块馈送到变压…