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

【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. 数值数据类型,常见的有整数类型和浮点型(也就是整数和小数)
  2. 布尔值数据类型,就是我们常见的真与假,一般用于判断
  3. 字符串数据类型

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&#xff0c;二进制存储方式&#xff08;补码&#xff0c;反码&#xff0c;源码&#xff09; 2&#xff0c;指针类型 3&#xff0c;大端&#xff0c;小段判断 1&#xff0c;二进制存储方式&#xff08;补码&#xff0c;反码&#xff0c;源码&#xff09; 我…...

GRASP设计原则

GRASP设计原则介绍9种基本原则创建者 Creator问题解决方法何时不使用?好处信息专家 Information Expert问题解决方法信息怎么做优点低耦合 Low Coupling耦合问题解决方法原则何时不使用?控制器 Controller问题解决方法外观控制器会话控制器优点臃肿控制器的解决方法高内聚 Hi…...

再遇周杰伦隐私协议

本隐私信息保护政策版本&#xff1a;2021 V1 一、重要提示 请您&#xff08;以下亦称“用户”&#xff09;在使用本平台App时仔细阅读本协议之全部条款&#xff0c;并确认您已完全理解本协议之规定&#xff0c;尤其是涉及您的重大权益及义务的加粗或划线条款。如您对协议有任…...

关于项目上的一些小操作记录

一 如何在项目的readme.md文件中插入图片说明 1 准备一张图片命名为test.png 2 在maven项目的resources目录下新建文件夹picture,将图片放入该目录下 3 在readme.md文件中期望插入图片的地方编辑如下&#xff1a; ![Alt](src/main/resources/picture/test.png) 此时&#…...

sql查询不以某些指定字符开头(正则表达式)

我们用到的最多的是&#xff1a;查询以特定字符或字符串开头的记录 字符^用来匹配以特定字符或字符串开头的记录。 例 1 在 tb_students_info 表中&#xff0c;查询 name 字段以“J”开头的记录&#xff0c;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之后&#xff08;里面&#xff09;这种场景&#xff0c;假设私网地址与公网地址有一个确定的映射关系。这里只涉及mod_sofia&#xff08;SIP信令及媒体&#xff09;相关配置&#xff0c;其他模块不在本文讨论之列。配置mod_sofia默认提供两个prof…...

【精选论文 | Capon算法与MUSIC算法性能的比较与分析】

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

卫星、无人机平台的多光谱数据在地质、土壤调查和农业等需要用什么?

近年来&#xff0c;Python编程语言受到越来越多科研人员的喜爱&#xff0c;在多个编程语言排行榜中持续夺冠。同时&#xff0c;伴随着深度学习的快速发展&#xff0c;人工智能技术在各个领域中的应用越来越广泛。机器学习是人工智能的基础&#xff0c;因此&#xff0c;掌握常用…...

30个题型+代码(冲刺2023蓝桥杯)

愿意的可以跟我一起刷&#xff0c;每个类型做1~5题 &#xff0c;4月前还可以回来系统复习 2月13日 ~ 3月28日&#xff0c;一共32天 一个月时间&#xff0c;0基础省三 --> 省二&#xff1b;基础好点的&#xff0c;省二 --> 省一 目录 &#x1f33c;前言 &#x1f33c…...

快速且有效减小代码包的方法

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

基于matlab评估星载合成孔径雷达性能

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

Linux_基本指令

新的专栏Linux入门来啦&#xff01;欢迎各位大佬补充指正&#xff01;&#xff01; 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年了&#xff0c;聊一聊我和ChatGPT对架构的一些感受和看法 职位不分高低&#xff0c;但求每天都能有新的进步&#xff0c;永远向着更高的目标前进。 文章目录踏上新的征程架构是什么&#xff1f;架构师到底是干什么的&#xff1f;你的终极目标又是什么&#…...

零基础机器学习做游戏辅助第十二课--原神自动钓鱼(二)

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

MapReduce paper(2004)-阅读笔记

文章目录前言摘要&#xff08;Abstract)一、引言( Introduction)二、编程模型&#xff08;Programming Model&#xff09;三、实现&#xff08;Implementation&#xff09;3.1、执行概述&#xff08;Execution Overview&#xff09;3.2、主节点数据结构&#xff08;Master Data…...

【蒸滴C】C语言指针入门很难?看这一篇就够了

目录 一、前言 二、指针是什么 小结&#xff1a; 三、指针变量是什么 小结&#xff1a; 四、指针在32位机器和64位机器中的差别 32位机器&#xff1a; 64位机器: 小结&#xff1a; 五、指针和指针类型 &#xff08;1&#xff09;指针的意义 &#xff08;2&#xff…...

C++11新的类功能

文章首发公众号&#xff1a;iDoitnow 1. 特殊的成员函数 C11在原有的4个特殊成员函数&#xff08;默认构造函数、复制构造函数、复制赋值运算符和析构函数&#xff09;的基础上新增了移动构造函数和移动赋值运算符。这些特殊成员函数在各种情况下是会通过编译器自动提供的。 …...

Laravel创建定时任务

创建一个任务&#xff0c;创建成功后会在App/Console/Commands中生成一个以Test命名的文件&#xff0c;我们可以在这里面写我们的任务指令。 php artisan make:command Test 运行这个定时任务 run 是运行一次&#xff0c;我们可以用来测试是否成功&#xff0c;work是一直运行&a…...

SaveInstanceState

1. 保存与读取当前状态&#xff0c;MainActivity.java public class MainActivity extends AppCompatActivity {private String TAG "MyLog";TextView textView;Button button;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedI…...

Fluent Python 笔记 第 16 章 协程

从句法上看&#xff0c;协程与生成器类似&#xff0c;都是定义体中包含 yield 关键字的函数。可是&#xff0c;在协程中&#xff0c;yield通常出现在表达式的右边(例如&#xff0c;datum yield)&#xff0c;可以产出值&#xff0c;也可以不产出——如果 yield 关键字后面没有表…...

山东科技大学校历 代码分析 获得以前学期学年的老版校历

校历-山东科技大学网络安全与信息化办公室http://tech.sdust.edu.cn/wlfw/xl.htm JavaScript var studyStart new Date(2021, 8-1, 30);//8-1 -1没有意义&#xff0c;30代表30号&#xff0c;2021年8月30号开始这个学期 var commonWeeks 19;//这个学期有多少周 var s…...

第五章.与学习相关技巧—权重初始值(随机初始值,Xavier初始值,He初始值)

第五章.与学习相关技巧 5.2 权重初始值 本节将介绍权重初始值的推荐值&#xff0c;并通过实验确认神经网络的学习是否会快速进行。 1.权值衰减 权值衰减就是一种以减少权重参数的值为目的进行学习的方法&#xff0c;通过减少权重参数值来抑制过拟合的情况发生。 2.权重初始值不…...

Linux进程间通信(管道)

进程间通信的目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享同样的资源。 通知事件&#xff1a;一个进程需要向另一个或一组进程发送消息&#xff0c;通知它&#xff08;它们&#xff09;发生了某种事件&#xff08;如…...

写一个基于node.js的api后台管理系统(三)

创建登录页面 在项目目录下创建一个名为public的文件夹&#xff0c;并在其中创建一个HTML文件login.html。添加以下代码&#xff1a; <!DOCTYPE html> <html> <head><title>Login - Task Management</title> </head> <body><h1…...

【23种设计模式】行为型模式详细介绍(上)

前言 本文为 【23种设计模式】行为型模式 相关内容介绍&#xff0c;下边将对访问者模式&#xff0c;模板模式&#xff0c;策略模式&#xff0c;状态模式&#xff0c;观察者模式&#xff0c;备忘录模式&#xff0c;中介者模式&#xff0c;迭代器模式&#xff0c;解释器模式&…...

PID控制算法进阶

关于PID控制算法基础概念在本文不再重复了&#xff0c;详情可参考&#xff1a;PID控制算法基础介绍 本文主要从PID算法代码实现&#xff0c;代码解析&#xff0c;理论进阶&#xff0c;PID调参等方向进行阐述。 目录位置式PID和增量式PID1.1 位置式PID1.2 增量式PID1.3 位置式和…...

嵌入式工程师有什么值得一看的网站和书籍吗?

原文直达&#xff1a; 嵌入式工程师有什么值得一看的网站和书籍吗&#xff1f; - CodeAllen的回答 - 知乎 https://www.zhihu.com/question/68423119/answer/2885623392 我是资深网站保存爱好者&#xff0c;浏览器分门别类存了应该有几百个网址&#xff0c;关于嵌入式的也有很…...