【python百炼成魔】手把手带你学会python数据类型

news2025/2/25 9:59:14

文章目录

  • 前言
  • 一. 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=10

print(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}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

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

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

相关文章

2023年华为HCIA-Datacom认证视频课

一、下载地址&#xff1a;https://edu.csdn.net/learn/38282/607342?spm1003.2001.3001.4157 一、课程大纲 2023年华为考试大纲 考试分数章目录小节80第1章&#xff1a;网络参考模型1.1OSI网络参考模型介绍1.2OSI网络参考模型各层的作用1.3 OSI与TCP/IP模型的比较1.4 TCP与U…

【转载】通过HAL库实现MODBUS从机程序编写与调试-----STM32CubeMX操作篇

通过HAL库实现MODBUS从机程序编写与调试-----STM32CubeMX操作篇[【STM32】RS485 Modbus协议 采集传感器数据](https://blog.csdn.net/qq_33033059/article/details/106935583)基于STM32的ModbusRtu通信--ModbusRtu协议(一)基于STM32的ModbusRtu通信--终极Demo设计(二)STM32RS48…

TensorRT的C++接口解析

TensorRT的C接口解析 文章目录TensorRT的C接口解析3.1. The Build Phase3.1.1. Creating a Network Definition3.1.2. Importing a Model using the ONNX Parser3.1.3. Building an Engine注意&#xff1a;序列化引擎不能跨平台或 TensorRT 版本移植。引擎特定于它们构建的确切…

“黑铁时代”,地产人如何以客户视角加速房企数字化转型

本文从行业洞察、业务设计、数据建设以及实践探索四个部分详细阐述地产行业数字化的实践、思考和理解。点击文末“阅读原文”&#xff0c;观看完整版直播回放并下载演讲文档。一、洞察&#xff1a;房企经营思路的变化企业的转型都是围绕着业务经营变化进行的&#xff0c;房企数…

P1307 [NOIP2011 普及组] 数字反转

[NOIP2011 普及组] 数字反转 题目描述 给定一个整数 NNN&#xff0c;请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式&#xff0c;即除非给定的原数为零&#xff0c;否则反转后得到的新数的最高位数字不应为零&#xff08;参见样例 2&#xff09;。 输入…

电源口防雷器电路设计方案

电源口防雷电路的设计需要注意的因素较多&#xff0c;有如下几方面&#xff1a;1、防雷电路的设计应满足规定的防护等级要求&#xff0c;且防雷电路的残压水平应能够保护后级电路免受损坏。2、在遇到雷电暂态过电压作用时&#xff0c;保护装置应具有足够快的动作响应速度&#…

Git:单台电脑同时配置多个git账号

问题说明 现在云端仓库很多&#xff0c;有开源中国的 gitee.com 、微软的 github.com 、还有 gitlab.com 和 bitbucket.org 等等&#xff0c;当我们想同一台电脑链接多个云端仓库时&#xff0c;就需要设置不同的用户、邮箱生成不同的密钥进行链接。 解决方案 下载安装Git 我的…

【Java】容器+数组+集合

一、数组 Java语言中的数组是一种引用数据类型&#xff1b;不属于基本数据类型数组当中既可以存储“基本数据类型”的数据&#xff0c;也可以存储“引用数据类型”的数据&#xff08;数组既可以存储基本数据类型&#xff0c;又可以存储引用数据类型&#xff0c;基本数据类型存…

gdb调试功能从零到会(Linux详解)

目录 &#x1f440; 1.安装gdb &#x1f440;2.判断是否安装成功 &#x1f440;3.改成debug方式发布。 &#x1f440; 4.gdb功能简介 前言 gdb是Linux 下功能全面的调试工具。gdb支持断点、单步执行、打印变量、观察变量、查看寄存器、查看堆栈等调试手段。在Linux环境软件…

18- Adaboost梯度提升树 (集成算法) (算法)

Adaboost 梯度提升树: from sklearn.ensemble import AdaBoostClassifier model AdaBoostClassifier(n_estimators500) model.fit(X_train,y_train) 1、Adaboost算法介绍 1.1、算法引出 AI 39年&#xff08;公元1995年&#xff09;&#xff0c;扁鹊成立了一家专治某疑难杂症…

ubuntu18.04 天选2 R95900hx 3060显卡驱动安装

天选2 R95900hx 3060显卡驱动安装需求问题解决内核集显显卡驱动需求 外接显示器&#xff0c;安装nvidia驱动 问题 由于一开始直接在软件和更新中附加读懂安装了nvidia-470&#xff0c;导致系统黑屏。 解决 grub页面系统选择进入ubuntu recovery模式&#xff0c;选择root&a…

ChatGPT模型采样算法详解

ChatGPT模型采样算法详解 GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型有几个参数&#xff0c;理解它们对文本生成任务至关重要。其中最重要的一组参数是temperature和top_p。二者控制两种不同的采样技术&#xff0c;用于因果语言模型&#xff08;Cau…

BCMA靶点药物销售市场-上市药品前景分析

在之前的二十多年里&#xff0c;治疗多发性骨髓瘤(MM)的药物选择发生了重大转变&#xff0c;无论是新诊断还是复发/难治期。新药类别的引入&#xff0c;如蛋白酶体抑制剂、免疫调节剂、抗CD38和抗SLAMF7单克隆抗体&#xff0c;加上自体干细胞移植&#xff0c;使该疾病的五年生存…

Android无菜单键,如何触发onCreateOptionsMenu(Menu menu)

文章目录小结问题及解决无法触发onCreateOptionsMenu(Menu menu)修改配置文件解决使用一个按钮来触发其它办法参考小结 现在的Android有三个键&#xff1a; 任务键&#xff0c;Home键&#xff0c;返回键&#xff0c;也就是没有菜单键了&#xff0c;那么如何如何触发onCreateOp…

TensorRT的功能

TensorRT的功能 文章目录TensorRT的功能2.1. C and Python APIs2.2. The Programming Model2.2.2. The Runtime Phase2.3. Plugins2.4. Types and Precision2.5. Quantization2.6. Tensors and Data Formats2.7. Dynamic Shapes2.8. DLA2.9. Updating Weights2.10. trtexec本章…

狂神 VUE笔记

文章目录0 VUE相关了解0.1 概述0.2 MVVM0.3 JavaScript框架0.4 [Vue](https://so.csdn.net/so/search?qVue&spm1001.2101.3001.7020)的七大属性1 VUE基础1.0 第一个vue代码&#xff1a;Hello&#xff0c;vue1.1 v-bind1.2 v-if &#xff0c; v-else &#xff0c; v-else-i…

Burp Suite Professional 2023.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描

Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接&#xff1a;https://sysin.org/blog/burp-suite-pro-2023/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org Burp Suite Professional&…

【Spring】一文带你吃透AOP面向切面编程技术(下篇)

个人主页&#xff1a; 几分醉意的CSDN博客_传送门 上节我们介绍了什么是AOP、Aspectj框架的前置通知Before传送门&#xff0c;这篇文章将继续详解Aspectj框架的其它注解。 文章目录&#x1f496;Aspectj框架介绍✨JoinPoint通知方法的参数✨后置通知AfterReturning✨环绕通知Ar…

mysql数据库完全备份和增量备份与恢复

mysql数据备份&#xff1a; 数据备份方式 物理备份&#xff1a; 冷备&#xff1a;.冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库热备&#xff1a;一般用于保证服务正常不间断运行&#xff0c;用两台机器作为服务机器&#xff0c;一台用于实际数据库操作应用,另外…

基于stm32mp157的嵌入式linux+qt项目实战物联网毕业设计选题之智慧医疗项目

stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器&#xff0c;集成2个Cortex-A7核和1个Cortex-M4 核&#xff0c;A7核上可以跑Linux操作系统&#xff0c;M4核上可以跑FreeRT…