【python百炼成魔】手把手带你学会python数据类型
文章目录
- 前言
- 一. python的基本数据类型
- 1.1 如何查看数据类型
- 1.2 数值数据类型
- 1.2.1 整数类型
- 1.2.2 浮点数类型
- 1.2.3 bool 布尔数值类型
- 1.2.4 字符串类型
- 二. 数据类型强制转换
- 2.1 强制转换为字符串类型
- 2.2 强制转换为int类型
- 2.3 强制转换函数之float() 函数
- 三. 拓展几个运算函数
- 总结
前言
本文是专栏【python百炼成魔】的第二篇文章,主要一起探讨下数据类型和输入输出函数。
【python百炼成魔】 专栏是沐风晓月对python的总结汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
一. python的基本数据类型
对任何一门编程语言来说,数据类型是学习的必经之路,哪怕是shell脚本,也有自己的数据类型,只不过shell脚本是弱数据类型。相对来说python的数据类型要比其他语言简单很多,主要分为以下几类:
- 数值数据类型,常见的有整数类型和浮点型(也就是整数和小数)
- 布尔值数据类型,就是我们常见的真与假,一般用于判断
- 字符串数据类型
1.1 如何查看数据类型
如何查看数据类型至关重要,在python中我们要查看一个变量属于何种数据类型,可以使用type。
比如我们要测试 name=“mufeng” 中name的数据类型,就可以做如下的操作:
'''
测试python的数据类型
'''name="mufeng"
print(type(name))
结果是:
该输出结果name变量的数据类型就是字符串。
如果我们用age=10来查看:
'''
测试python的数据类型
'''age=10print(type(age))
查看结果:
可以看到这里显示int类型,也就是age变量的数据类型是int。
除此之外还有 float,这个表示浮点数。
1.2 数值数据类型
数值数据类型,一个是整数类型,一个是浮点数类型,还有一个是复数类型。
- 整数类型:对应的数学中的整数,其返回类型为int型,如10、25等;
long为长整型,也可以代表八进制和十六进制。 - 浮点数类型:带有小数点的数字,返回类型为float型,如3.14、2.1e2等。
- 复数类型:Python复数分为两部分,形如a + bj,其中a为实部,b为虚部,返回类型为complex,例如-12.3 + 8j。
复数可以通过.real获取实部数据,.imag获取虚部数据。
关于复数的代码测试如下:
a=12.3
b=8j
c=a+b
print(type(c))
可以看到他的数据类型为 complex
获取这个复数类型的是实部和虚部:
a=12.3
b=8j
c=a+b
print(type(c))
print(c.real)
print(c.imag)
执行结果如下:
1.2.1 整数类型
整数类型用int来表示,可以表示为正数,负数,和零;
整数可以显示为各种不同的形式,比如十进制,八进制,二进制,我们都知道计算机用的是二进制,但我们一个十进制的数字如何转化为二进制呢?
这时候我们会用到python的内置函数,将整数转化为二进制格式显示用到的内置函数为bin, 代码如下:
a=8
print(bin(a))
结果如下:
0b1000
二进制都是以0b开头的,后面都是0和1的排列,那其他进制的形式都是以什么开头,以及用到什么内置函数来转换呢?
当然这里的内置函数指的是把一个整数转换为当前进制所用的行数,比如我们要把整数转化为八进制,就用oct
进制 | 以XX开头 | 内置函数 |
---|---|---|
十进制 | 默认进制 | 默认进制 |
二进制 | 以0b开头 | bin |
八进制 | 以0o开头 | oct |
十六进制 | 以0x开头 | hex |
我们如果要打印一个二进制,其结果也会显示十进制:
print('十进制',110)
## 二进制必须以0b开头
print('二进制错误写法',110110110)
print('二进制', 0b110110110)
输出结果:
十进制 110
二进制错误写法 110110110
#此处二进制显示为十进制
二进制 438
1.2.2 浮点数类型
浮点数就可以理解为小数,但当我们对小数进行运算的时候容易出问题:
n1=1.1
n2=2.2
print(n1+n2)
1.1+2.2=3.3000000000003
这就是浮点型,可能跟我们想的不一样, 怎么样可以输出我们想要的呢?
这是二进制的底层问题,有的会准确,有的会不准确,如果要修改怎么修改呢?
我们可以这么来修改:
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))
这样出来的结果,就是3.3了。
1.2.3 bool 布尔数值类型
布尔来自英文boolean的音译,在python中布尔值有两种类型,一种是(True) ,另一种是假(False) ,使用type函数可以测试数据类型布尔值得到的bool.
真和假我们也可以用整数来表示:
- True表示的是整数1
- False表示正式0
f1=True
f2=False
print(f1,type(f1))
print(f2,type(f2))
print(int(f1))
print(int(f2))
执行结果:
可以看到bool值的整数类型强制转换后是 0 和1.
1.2.4 字符串类型
字符串在python当中使用的最广泛了,也是知识点最多的一个数据类型,一般情况下字符串类型在Python中需要用单引号或双引号括起来。
可以是一个字母,也可以是多个字母的组合。
如果非要下个定义,那字符串类型就是不可变的字符序列;
它有以下几个特性:
- 可以使用单引号,双引号,三引号
- 单引号和双引号定义的字符串必须在一行显示
- 三引号定义的字符串可以分布在连续的多行;
单引号和双引号都是 可以的,都表示为字符串类型,我们看看下面的代码示例:
name='沐风晓月'
str1='人生苦短我用python '
print(str1,type(str1))
输出结果:
人生苦短我用python <class 'str'>
可以看到他的值是字符串类型。
如果我们使用双引号
name='沐风晓月'
str1='人生苦短我用python '
str2="人生苦短我用Python"
print(str1,type(str1))
print(str2,type(str2))
可以看到,单引号和双引号是一样的,都表示字符串类型
三个单引号或者三个双引号,可以换行输出:
name='mufeng晓月'
str3='''人生苦短
我用python '''
str4="""人生苦短
我用Python"""
print(str3,type(str3))
print(str4,type(str4))
字符串是可以连接的比如:
name='沐风晓月'str4="""人生苦短
我用Python"""c=name+str4
print(c)
执行结果:
二. 数据类型强制转换
2.1 强制转换为字符串类型
为什么会使用到数据类型转换,我们来看一个例子:
name='沐风晓月'
age=19
print(type(name),type(age))
print('我叫'+name+'今年'+age+"岁")
这样输出结果会报错:
原因就是数据类型不同,int不能和str相加。如果想要不报错,我们可以通过str()函数强制转换为字符串,例如:
name='沐风晓月'
age=19
print('我叫'+name+',今年'+ str(age)+"岁")
输出结果:
我叫沐风晓月,今年19岁
可以看到这样就没问题了。这里的str() 是将其他类型转成str类型
举例:
a=10
b=19.9
c=False
print(type(a),type(b),type(c))
print(str(a),str(b),str(c),type(str(a)),type(str(b)),type(str(c)))
上面的例子中,我们就强制转换了数字为字符串类型,这一点在进行判断的时候很有用。
2.2 强制转换为int类型
在强制转换的参数中,我们也经常用到int(),这个是把其他类型转成int类型
其实我们再shell脚本中也经常用到int类型的转换,比如:
shell命令代码如下:
[root@mufeng ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 5.0G 14G 28% /
tmpfs 1.9G 224K 1.9G 1% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
/dev/sr0 3.7G 3.7G 0 100% /mnt
[root@mufeng ~]# df -h |awk '{print $5}'
Use%
28%
1%
22%
100%
[root@mufeng ~]# df -h |awk '{print int($5)}'
0
28
1
22
100
同样的在python 当中的强制转换也是一样的道理,我们来看python中int()强制转换的案例
a='10'
print(type(a))
print(int(a),type(int(a)))
可以看到,一开始是字符串类型,强制转换成了数值类型。
这里需要注意:将str类型转成int类型时,字符串必须为数字串,且必须为整数,非数字串是不行的。
比如我们定义三个数值,其中a=字符串类型的非整数, b=小数,c=整数字符串,看看那种能执行成功
a='helloworld'
b='76.77'
c='76'
#print(int(a))
#print(int(b))
print(int(c))
可以看到只有c这种整数型可以强制转化成功
2.3 强制转换函数之float() 函数
将其他类型转成float类型,我们来测试下:
a='198.88'
b='76'
c=True
d='hello'
e=100
print(float(a),type(float(a)))
print(float(b))
print(float(c))
#print(float(d)) 字符串中的数据如果是非数字串,则不允许转换
print(float(e))
执行结果:
我们可以用下图来表示各种类型的强制转换的关系:
三. 拓展几个运算函数
在我们做数值运算的时候,也会用到一些函数,而且出现的频率比较高,这里简单介绍下,后面我们还会用到:
- abs() 计算绝对值
- pow()计算 次方运算
- round() 四舍五入
- max() 取最大值
- min() 取最小值
通过以下代码,我们来看看这几个值都是做啥的:
# abs() 计算绝对值
a= -1
print(abs(a))# pow() 计算次方
x=2
y=3
print(pow(x,y))
#round() 四舍五入d=99.9
print(round(d))# 取最大值
print(max(1,2,3,4))
执行结果:
1
8
100
4
关于数值的运算比较简单,本文就介绍这些,后面用到的时候,如果有其他用法我们再具体学习。
总结
以上介绍了python的数据类型,重点在于字符串类型和数据类型的强制转换。
每日鸡汤:滴水穿石,不是水的力量,而是坚持的力量! 想要成为最重要的人,就把学习当成最重要的事!
学习是解决任何问题的唯一方法!
✨原创不易,还希望各位大佬支持一下\textcolor{blue}{原创不易,还希望各位大佬支持一下}原创不易,还希望各位大佬支持一下
👍 点赞,你的认可是我创作的动力!\textcolor{green}{点赞,你的认可是我创作的动力!}点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!\textcolor{green}{收藏,你的青睐是我努力的方向!}收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!\textcolor{green}{评论,你的意见是我进步的财富!}评论,你的意见是我进步的财富!
相关文章:

【python百炼成魔】手把手带你学会python数据类型
文章目录前言一. python的基本数据类型1.1 如何查看数据类型1.2 数值数据类型1.2.1 整数类型1.2.2 浮点数类型1.2.3 bool 布尔数值类型1.2.4 字符串类型二. 数据类型强制转换2.1 强制转换为字符串类型2.2 强制转换为int类型2.3 强制转换函数之float() 函数三. 拓展几个运算函数…...

数据储存以及大小端判断
目录 数据存储 1,二进制存储方式(补码,反码,源码) 2,指针类型 3,大端,小段判断 1,二进制存储方式(补码,反码,源码) 我…...
GRASP设计原则
GRASP设计原则介绍9种基本原则创建者 Creator问题解决方法何时不使用?好处信息专家 Information Expert问题解决方法信息怎么做优点低耦合 Low Coupling耦合问题解决方法原则何时不使用?控制器 Controller问题解决方法外观控制器会话控制器优点臃肿控制器的解决方法高内聚 Hi…...
再遇周杰伦隐私协议
本隐私信息保护政策版本:2021 V1 一、重要提示 请您(以下亦称“用户”)在使用本平台App时仔细阅读本协议之全部条款,并确认您已完全理解本协议之规定,尤其是涉及您的重大权益及义务的加粗或划线条款。如您对协议有任…...

关于项目上的一些小操作记录
一 如何在项目的readme.md文件中插入图片说明 1 准备一张图片命名为test.png 2 在maven项目的resources目录下新建文件夹picture,将图片放入该目录下 3 在readme.md文件中期望插入图片的地方编辑如下:  此时&#…...
sql查询不以某些指定字符开头(正则表达式)
我们用到的最多的是:查询以特定字符或字符串开头的记录 字符^用来匹配以特定字符或字符串开头的记录。 例 1 在 tb_students_info 表中,查询 name 字段以“J”开头的记录,SQL 语句和执行过程如下。 mysql> SELECT * FROM tb_students_…...

35.网络结构与模型压缩、加速-2
35.1 Depthwise separable convolution Depthwise separable convolution是由depthwise conv和pointwise conv构成depthwise conv(DW)有效减少参数数量并提升运算速度 但是由于每个feature map只被一个卷积核卷积,因此经过DW输出的feature map不能只包含输入特征图的全部信息,…...

FreeSWITCH跨NAT部署配置详解
本文仅讨论FreeSWITCH部署在NAT之后(里面)这种场景,假设私网地址与公网地址有一个确定的映射关系。这里只涉及mod_sofia(SIP信令及媒体)相关配置,其他模块不在本文讨论之列。配置mod_sofia默认提供两个prof…...

【精选论文 | Capon算法与MUSIC算法性能的比较与分析】
本文编辑:调皮哥的小助理 【正文】 首先说结论: 当信噪比(SNR)足够大时,Capon算法和MUSIC算法的空间谱非常相似,因此在SNR比较大时它们的性能几乎一样,当不同信号源的入射角度比较接近时&…...

卫星、无人机平台的多光谱数据在地质、土壤调查和农业等需要用什么?
近年来,Python编程语言受到越来越多科研人员的喜爱,在多个编程语言排行榜中持续夺冠。同时,伴随着深度学习的快速发展,人工智能技术在各个领域中的应用越来越广泛。机器学习是人工智能的基础,因此,掌握常用…...

30个题型+代码(冲刺2023蓝桥杯)
愿意的可以跟我一起刷,每个类型做1~5题 ,4月前还可以回来系统复习 2月13日 ~ 3月28日,一共32天 一个月时间,0基础省三 --> 省二;基础好点的,省二 --> 省一 目录 🌼前言 🌼…...

快速且有效减小代码包的方法
前言当我们在发布一些APP或者小程序等比较小的程序时候,常常会对其主包大小进行一定的规定,若超过推荐的主包大小则性能会被大大影响,或者再严重一点就不给你过审。如微信小程序中也对主包有一定的大小要求。对此一些比较复杂的小程序就需要考…...

基于matlab评估星载合成孔径雷达性能
一、前言本示例展示了如何评估星载合成孔径雷达 (SAR) 的性能,并将理论极限与 SAR 系统的可实现要求进行比较。SAR利用雷达天线在目标区域上的运动来提供更精细的方位角分辨率。给定雷达的主要参数(例如工作频率、天线尺寸和带宽&…...

Linux_基本指令
新的专栏Linux入门来啦!欢迎各位大佬补充指正!! Linux_基本指令导入文件绝对路径与相对路径隐藏的文件指令ls查看stat查看文件属性cd进入路径mkdir创建目录touch创建文件rm删除man查询手册cp复制mv移动cat查看文件morelessheadtail时间相关的…...

Keras深度学习实战——使用深度Q学习进行SpaceInvaders游戏
Keras深度学习实战——使用深度Q学习进行SpaceInvaders游戏 0. 前言1. 问题与模型分析2. 使用深度 Q 学习进行 SpaceInvaders 游戏相关链接0. 前言 在《深度Q学习算法详解》一节中,我们使用了深度 Q 学习来进行 Cart-Pole 游戏。在本节中,我们将利用深度Q学习来玩“太空侵略…...

从事架构师岗位快2年了,聊一聊我对架构的一些感受和看法
从事架构师岗位快2年了,聊一聊我和ChatGPT对架构的一些感受和看法 职位不分高低,但求每天都能有新的进步,永远向着更高的目标前进。 文章目录踏上新的征程架构是什么?架构师到底是干什么的?你的终极目标又是什么&#…...

零基础机器学习做游戏辅助第十二课--原神自动钓鱼(二)
一、模拟训练环境 上节课我们已经能够判断人物的钓鱼状态,接下来我们就需要对鱼儿上钩后的那个受力框进行DQN训练。 方案有两个: 使用卷积神经网络直接输入图像对网络进行训练。使用普通网络,自己写代码模拟出图像中三个点的动态并把值给神经网络进行训练。这里我们选用第二…...

MapReduce paper(2004)-阅读笔记
文章目录前言摘要(Abstract)一、引言( Introduction)二、编程模型(Programming Model)三、实现(Implementation)3.1、执行概述(Execution Overview)3.2、主节点数据结构(Master Data…...

【蒸滴C】C语言指针入门很难?看这一篇就够了
目录 一、前言 二、指针是什么 小结: 三、指针变量是什么 小结: 四、指针在32位机器和64位机器中的差别 32位机器: 64位机器: 小结: 五、指针和指针类型 (1)指针的意义 (2ÿ…...
C++11新的类功能
文章首发公众号:iDoitnow 1. 特殊的成员函数 C11在原有的4个特殊成员函数(默认构造函数、复制构造函数、复制赋值运算符和析构函数)的基础上新增了移动构造函数和移动赋值运算符。这些特殊成员函数在各种情况下是会通过编译器自动提供的。 …...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...

从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
命令行关闭Windows防火墙
命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)方法二:CMD命令…...