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

前言

本文是专栏【python百炼成魔】的第二篇文章,主要一起探讨下数据类型和输入输出函数。

【python百炼成魔】 专栏是沐风晓月对python的总结汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。

如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

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

一. 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的数据类型,重点在于字符串类型和数据类型的强制转换。

每日鸡汤:滴水穿石,不是水的力量,而是坚持的力量! 想要成为最重要的人,就把学习当成最重要的事!

学习是解决任何问题的唯一方法!

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

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

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

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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年3月5日
下一篇 2023年3月5日

相关推荐