活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…
…
前面我们了解了python的一些入门知识,今天,我们正式进入构成python基础的数据类型的学习中。我们知道C语言常见的数据类型——int、long、unsigned int、float、double、enum、struct、数组。。。而python的数据类型则要丰富得多。
在python中有六大数据类型,分别是:数字(number)、元组(tuple)、字典(dictionary)、列表(list)、字符串(string)、集合(set)。其中,有三个不可变数据类型:元组、字符串、数字和三个可变数据类型:字典、列表、集合。下面我们就这六大数据类型分别进行详解:
即常见的与数字、算术运算有关的数据类型,包含了三种不同的数值类型:
1.int(整型):不带小数点的正或负整数。bool是其子类型。
2.float(浮点型):由整数部分和小数部分组成,也可写成科学计数法(112.3=1.123e2)。
3.complex(复数型):由实部与虚部构成,可用a+bj或complex(a,b)表示,并且实部与虚部都是浮点型。
我们常见的很多python中的数学函数大多数都是与数字(Number)打交道的,这里列举了一部分的数学函数:
1).abs(x):老朋友,求绝对值:
print(abs(-120))
运行结果:120
2).fabs(x):依旧是求绝对值,但是会转换成浮点数输出:
import math
a = math.fabs(-120)
print(a)
运行结果:120.0
3).ceil(x):向上取整:
import math
a = math.ceil(120.9)
print(a)
运行结果:除120.0输出120以外,其他值输入时,输出均为121
4).floor(x):向下取整:
import math
a = math.floor(0.9)
print(a)
运算结果:除输入0输出0以外,其他值输入时,输出均为0
5).max(x1,x2…):输出某个序列或几个值中的最大值:
import math
a = [1,453,3333]
print(max(a))
运算结果:3333
6).min(x1,x2…):与上述方法相似,只是这是求最小值的。
7).pow(x,y):幂运算,不完全等效于xy(xy的输出值是整型数据):
import math
a = 2
b = 10
print(math.pow(a,b))
运算结果:1024.0
8).round(x,[,n]):四舍五入运算,n表示可以舍入多少位:
import math
a = 2.3333333
print(round(a,2))
运算结果:2.33
下面我们来看以后可能经常打交道的随机数的生成方法:
import random
print(random.choice(range(5)))
运行结果:4(实际上每运行一次程序时,都会随机从0到4的序列中选出一个整数输出)
2) randrange(start,stop,step):设置起始值、结束值、步长后,从其中随机输出一个数。程序示例如下:
import random
print(random.randrange(1,10,2))
运行结果:3,5,7,9中的一个
3) random():随机生成一个实数,范围在[0,1)内。程序示例如下:
import random
print(random.random())
运行结果:0.9725717607932547
4) shuffle(seq):将序列中的所有元素随机进行排序。程序示例如下:
对不起没写出来,这里就没有了
5) uniform(x,y):随机从范围为(x,y)中输出一个数。程序示例如下:
import random
print(random.uniform(2,4))
运行结果:3.8142950494499486
我们知道,python中的字符串一般采用 '单引号或 “双引号括起来,或者采用 \表示转义字符,下面我们可以来看以下关于字符串的常用操作符:
1.连接字符串的符号”+":此加号非彼加号,它可以用来连接两个或多个字符串,使其成为一个长的字符串。
a = 'hello'
b = 'world'
print(a +' '+ b)
运行结果:hello world
2.重复输出字符串的符号"*":这里的符号表示的是输出几次字符串。
a = 'hello'
b = 'world'
print(a*2+' '+ b*2)
运行结果:hellohello worldworld
3.类似于字符数组的操作"[]":通过索引获取字符串其中的某个具体的字符。
a = 'hello'
b = 'world'
print(a[4])
运行结果:o(注意索引是从0开始的)
4.截取部分字符串的操作"[:]":截取部分字符串,遵循左闭右开的原则,右边的数无法取到。
a = 'hello'
b = 'world'
print(a[0:4])
print(b[1:3])
运行结果:hell
or
5.成员运算"in":如果元素在序列或字符串中,则输出True。
a = 'hello'
b = 'world'
print('H'in a)
运行结果:False
6.成员运算"not in":如果元素不在序列或字符串中,则输出True。
元组是python中的一种数据类型,与其他语言中常见的数据结构使用[]和{}相比,它使用()来添加元素,使用,号隔开元素,并且其中的元素无法改变。这是元组不同于其他数据类型的特点。同时我们发现,元组的遍历同样可以使用for循环实现:
a = ('shi','wo','cao',1,22,23,4)
print(a)
print(type(a))
for i in a:
print(i,end = ' ')
运行结果:(‘shi’, ‘wo’, ‘cao’, 1, 22, 23, 4)
shi wo cao 1 22 23 4
同时,元组可以使用一些运算符来实现一些功能:
1.len():计算元组的长度
a = ('shi','wo','cao',1,22,23,4)
print(a)
print(len(a))
print(type(a))
运行结果:
(‘shi’, ‘wo’, ‘cao’, 1, 22, 23, 4)
7
2.+:将其他元组连接起来
同字符串的+运算符用法。
3.*:重复输出元组
4.in:判断元素是否在元组内,如果在则输出True。
5.[]:读取具体位置的元素,类似于数组的操作。但是是从0开始的。
6.[:]:截取某一范围的元素,并输出,注意左闭右开原则。
python中的列表与C语言的数组有相似之处,使用[]创建元素,它可以通过下标索引来添加元素;同时,它可以修改元素。同时它可以将两个或多个列表进行嵌套,成为n维”数组“。
a = [1,2,33,4,55,678,9]
b = [1,23,44,55,9]
a[-1] = 10
a.append(120)
x = [a,b]
print(a)
print(x[0][0])
a.remove(a[0])
print(a)
运行结果:
[1, 2, 33, 4, 55, 678, 10, 120]
1
[2, 33, 4, 55, 678, 10, 120]
它的运算符与元组的相同,但是它有一些方法可以实现一些方便的功能:
1.list.append(obj):在列表的末尾添加新的元素。
2.list.count(obj):统计某个元素在列表中出现的次数。
3.list.index(obj):在列表中寻找元素匹配的第一个索引值。
4.list.insert(inedx,obj):在列表的索引位置,插入元素。
5.list.pop():弹出列表末尾的元素。
6.list.reverse():反转列表。
7.list.sort():列表排序。
8.list.clear():清除列表。
9.list.copy():复制列表。
python的字典有点类似于哈希表,相同的是两者同样采用的键值对结构,不同的是哈希表较字典来说比较复杂。字典的结构如下:
{key1:value1,key2:value2,key3:value…},键必须是唯一且不可变,但是值不是必须的且可变。
a = {'name':'li','age':120,'sell':'old'}
print(a)
print(a['name'])
a['name'] = 'loi'
print(a)
for key in a.keys():
print(key)
print(' ')
for value in a.values():
print(value)
运行结果:
{‘name’: ‘li’, ‘age’: 120, ‘sell’: ‘old’}
li
{‘name’: ‘loi’, ‘age’: 120, ‘sell’: ‘old’}
name
age
sell
loi
120
old
集合是比较有意思的一个数据结构,它里面重复的元素只显示一次,创建空集合时,只能由set(obj)创建,而{}只能用来创建一个空字典。并且输出无序。
创建集合
a = {'sho','sho',120,2344}
print(a)
b = set('abcnnnnnn123')
print(b)
运行结果:
{2344, ‘sho’, 120}
{‘2’, ‘c’, ‘1’, ‘n’, ‘b’, ‘a’, ‘3’}
添加元素或更新元素
a = {'sho','sho',120,2344}
b = set('abcnnnnnn123')
a.add('bck')
b.update([120,'cdm'])
print(a)
print(b)
for i in a:
print(i)
运行结果:
{‘sho’, 2344, 120, ‘bck’}
{‘n’, ‘c’, ‘2’, ‘1’, ‘3’, ‘b’, 120, ‘cdm’, ‘a’}
sho
2344
120
bck
由于这几天有点事耽搁了,才将第三天的内容学完,有点跟不上节奏,望谅解。