点击上方“毛利学python”,选择“置顶或者星标”
第一时间收到精彩推送!
我们通常说的视屏、语音、文本这是不同的格式,同样在Python中不同性质的数据集有不同的数据类型。
python中有七大标准数据类型。
数字(Number)
字符串(String)
布尔(bool)
列表(list)
集合(Set)
元组(Tuple)
字典(dictionary)
1、数字(Number)
数字又分为 整型(int),浮点(float),复数(complex)
a.整型
在python3.X中,整型(int)的长度理论上是无限的,比如1、99999、-8000 等等
可以使用加减乘除等运算,
在终端中简单的示范了加减乘除运算,
xxxdeAir:~ xxx$ python3
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 + 3
4
>>> 1 - 3
-2
# 表示3的平方
>>> 3 ** 2
9
>>> 3 ** 3
27
>>> 4 / 2
2.0
# 执行顺序与数学算法中相同
>>> 1 + 3 * 2
7
>>> (1 + 3) * 2
8
上面例子中
>>> 4 / 2
2.0
得到的结果为浮点数,如果想要转化成整数,则需要使用int(4/2) 进行转换
>>> int(4 / 2)
2
>>> int(1.0011)
1
# 也可以使用// 返回整数
>>> 4 // 2
2
另外python中有个type() 函数 可以查看对象的数据类型
>>> type( 4 / 2)
# 4/2 的结果为float类型,进一步验证了我们上面说的
>>> type (5)
b.浮点型
带有小数点的数字我们称为浮点数。也同样支持加减乘除等运算
>>> 0.1 + 0.1
0.2
>>> 0.2 + 0.1
0.30000000000000004
>>> 0.2 + 0.7
0.8999999999999999
>>> 0.2 + 0.8
1.0
what?为什么0. + 0.1 和 0.2 + 0.7 怎么和我们想要的结果不一样?
这是因为我们生活中使用的数字都是十进制,在计算机计算的时候会自动转换成二进制的形式(即0和1),0.1不会无限循环,而0.2则会变成无线循环的数。运算完成之后再转换成十进制时会对尾部的小数进行截取处理。所以导致了精度的差异,这个在其他语言也是存在的 并不是bug
如何解决呢 可以借助Python的Decimal来处理这一问题
from Decimal import *
>>> Decimal('0.2') + Decimal('0.1')
Decimal('0.3')
>>>
>>> float(Decimal('0.2') + Decimal('0.1'))
0.3
2、字符串
在Python中表示字符串的方式有三种
单引号
双引号
三引号
>>> msg1 = 'Hello World'
>>> msg2 = "Hello World"
>>> msg3 = '''Hello World'''
>>>
>>> print(type(msg1))
>>> print(type(msg2))
>>> print(type(msg3))
其中三引号用于多行字符串
>>> msg = '''
... my name is tom,
... i am 10 years old
... '''
>>> print(msg)
my name is tom,
i am 10 years old
拼接字符串的方式
print(a + ' ' + b) # 如果多个字符串+号拼接,会创建多个对象,
print(a, b)
print('%s %s' % (a, b)) # 推荐,效率高
print('Hello'' World')
print('{} {}'.format(a, b)) # 推荐,效率高
print(' '.join(['Hello', 'World']))
字符串常用的操作
msg = 'python,java,javascript'
# 通过','分隔字符串,返回数组
print('\n 分隔字符串,: \n', msg.split(' '))
# 每次单词的首字母大写
print('\n 将字符串的所有单词首字母大写:\n', msg.title())
# 是否已python开头(startswith) 结尾(endswith),如果是返回True,不是返回False
print('\n 是否已python开头: \n', msg.startswith('python'))
print('\n 是否已python结尾: \n', msg.endswith('python'))
print('\n 将字符串的第一个字符大写: \n', msg.capitalize())
print('\n 将所有字符大写: \n', msg.upper())
print('\n 将所有字符小写: \n', msg.lower())
运行结果
分隔字符串,:
['python,java,javascript']
将字符串的所有单词首字母大写:
Python,Java,Javascript
是否已python开头:
True
是否已python结尾:
False
将字符串的第一个字符大写:
Python,java,javascript
将所有字符大写:
PYTHON,JAVA,JAVASCRIPT
将所有字符小写:
python,java,javascript
字符串的截取、查找、替换
msg = 'abcdefgaaa'
print('\n 输出前3个字符: \n', msg[0: 3]) # 从0开始
print('\n 输出最后5个字符: \n', msg[-5:])
print('\n 替换字符a为v:\n', msg.replace('a', 'v'))
print('\n 查找元素c的位置: \n', msg.find('c'))# 从0开始,a-0,b-1,c-3
运行结果
输出前3个字符:
abc
输出最后5个字符:
fgaaa
替换字符a为v:
vbcdefgvvv
查找元素c的位置:
2
3、布尔
布尔型只有True(真)和False(假·)之分。
在Python中,只要变量的值不是0、None、非空,那么它的布尔值都为True
None表示一个空对象,即不是数字也不是字符串。有自己的数据类型:NoneType
>>> a = 0
>>> b = None
>>> c = ''
>>> print(bool(a))
False
>>> print(bool(b))
False
>>> print(bool(c))
False
>>> a = 1
>>> b = 'abc'
>>> c = 1.23
>>> print(bool(a))
True
>>> print(bool(b))
True
>>> print(bool(c))
True
另外可以通过
>(大于)、>=(大于等于)、
这些关系运算符进行布尔运算。
>>> print(1 > 2)
False
>>> print(2 >= 1)
True
>>> print(3
True
>>> print(3 <= 3)
True
>>> print(3 == 3)
True
>>> print(3 != 3)
False
以及not(逻辑非)、and(逻辑与)、or(逻辑或)等逻辑运算符,
与运算:只有两个布尔值都为 True 时,计算结果才为 True。
>>> print(True and True)
True
>>> print(True and False)
False
>>> print(False and False)
False
>>> print(False and True)
False
或运算:只要有一个布尔值为 True,计算结果就是 True。
>>> print(True or False)
True
>>> print(True or True)
True
>>> print(False or False)
False
非运算:把True变为False,或者把False变为True:
>>> print(not False)
True
>>> print(not True)
False
下一章讲一下列表(list),集合(set),元组(tuple),字典(dictionary)
最后,祝有所学习,有所成长
转发,好看支持一下,感谢