文章目录
前言
本文是专栏【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=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的数据类型,重点在于字符串类型和数据类型的强制转换。
每日鸡汤:滴水穿石,不是水的力量,而是坚持的力量! 想要成为最重要的人,就把学习当成最重要的事!
学习是解决任何问题的唯一方法!
✨
👍
⭐️
✏️
文章出处登录后可见!