在Python中数字数据类型用于存储数值。数据类型是不允许改变的,这意味着如果改变数字数据类型的值,将重新分配内存空间。
Python支持三种数值类型:整型、浮点型、复数。
数据类型的转换只需将数据类型作为函数名即可:
如:
a=5.0
print(int(a))
#输出结果
5
Python解释器可以作为一个简单的计算器,可以在解释器输入表达式,它将输出表达式的值。如:
a=5
b=15
c=a+b
print(c)
c=a*b
print(c)
c=(b-a)/2
print(c)
#输出结果
20
75
5.0
注意:在整数除法中,除法/返回的是一个浮点数。而//返回整数结果。如果分子或分母是一个浮点数则返回的也是一个浮点数。
字符串是Python中最常用的数据类型。我们可以使用引号'或"来创建字符串。
Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。
前面我们提过字符串的索引是从左往右0开始,从右往左-1开始。下面我们通过一个例子来更加清晰的了解。
a="random"
print(a[0])
print(a[1])
print(a[2])
print(a[3])
print(a[4])
print(a[5])
print(a[:])
print(a[0:])
print(a[:4])
print(a[1:4])
#输出结果
r
a
n
d
o
m
random
random
rand
and
字符串更新就是可以截取字符串的一部分与其它字段拼接。
a="random"
print("hello "+a[:])
#输出结果
hello random
a="random"
b="hello"
print(b+a)#字符串连接
print(a*2)#重复输出字符串
print(a[2])#索引
print(a[1:4])#截取
if("e" in a):#成员运算,如果字符串中包含给定的字符则返回true
print("e在变量a中")
else:
print("e不在变量a中")
if("e" in b):
print("e在变量b中")
else:
print("e不在变量b中")
print(r'\n')#输出\n
#输出结果
hellorandom
randomrandom
n
and
e不在变量a中
e在变量b中
\n
格式化基本用法是将一个值插入到一个有字符串格式符%s的字符串中。
Python字符串格式化符号:%c(格式化字符及其ASCII码)、%s(格式化字符串)、%d(格式化整数)、%u(格式化无符号整型)、%o(格式化无符号八进制数)、%x(格式化无符号十六进制数)、%X(格式化无符号十六进制数(大写))、%f(格式化浮点数字,可指定小数点后的精度)、%e(用科学计数法格式化浮点数)、%E(作用跟%e相同)、%g(%f 和%e的简写)、%G(%f和%E的简写)、%p(用十六进制数格式化变量的地址)
print("我叫%s今年%d岁!"%('小花',15))
#输出结果
我叫小花今年15岁!
f-string是Python3.6之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。
f-string格式化字符串以f开头,后面跟着字符串,字符串只能够的表达式用{}包起来,它会将变量或表达式计算后的值替换进去。
a="random"
b={'name':'john','age':54}
print(f'hello {a}')
print(f'{5+5}')
print(f'{b["name"]}: {b["age"]}')
#输出结果
hello random
10
john: 54
用这中方式更简洁,不在判断使用%s还是%d。
序列是Python中最基本的数据结构。序列中的每个值都有对应的位置值,称之为索引,第一个索引是0,第二个索引是1,以此类推。列表可以进行索引、切片、加、乘、检查成员操作。
在之前的章节中我们已经介绍了创建一个列表只需把逗号分隔不同的数据然后用方括号包起来即可。
如:
list=[3,"random",5,"b"]
与字符串中的索引一样,列表索引从左往右0开始,从右往左-1开始。通过索引列表可以进行截取、组合等操作。
如:
list=[3,"random",5,"b"]
print(list[0])
print(list[1])
print(list[2])
print(list[3])
#输出结果
3
random
5
b
同样截取也同字符串一样。
如:
list=[3,"random",5,"b"]
print(list[0:3])#从第一位开始,不包含倒数第二位
print(list[0:-1])
print(list[1:-1])
#输出结果
[3, 'random', 5]
[3, 'random', 5]
['random', 5]
Python可以对列表的数据进行修改或更新,也可以使用append()方法来添加列表。如:
list=[3,"random",5,"b"]
print("第二个元素为:",list[1])
list[1]="hello"#更新元素
print("更新后第二个元素为:",list[1])
list1=["random","taobao"]
list1.append("baidu")#添加元素
print("添加后的元素为:",list1)
#输出结果
第二个元素为: random
更新后第二个元素为: hello
添加后的元素为: ['random', 'taobao', 'baidu']
使用del语句来删除列表中的元素。如:
list=[3,"random",5,"b"]
print("原始列表:",list)
del list[1]
print("删除第二个元素:",list)
#输出结果
原始列表: [3, 'random', 5, 'b']
删除第二个元素: [3, 5, 'b']
list=[3,"random",5,"b"]
list+=["taobao","goole","baidu"]
print("截取:",list[1:4])
print("拼接:",list)
#输出结果
截取: ['random', 5, 'b']
拼接: [3, 'random', 5, 'b', 'taobao', 'goole', 'baidu']
嵌套列表就是在列表里创建其它列表。如:
list=[3,"random",5,"b"]
list2=["taobao","goole","baidu"]
list3=[list,list2]
print(list3)
print(list3[0])
print(list3[0][1])
#输出结果
[[3, 'random', 5, 'b'], ['taobao', 'goole', 'baidu']]
[3, 'random', 5, 'b']
random
元祖与列表类似,不同之处在于元祖的元素不能改变。
元祖使用小括号(),列表使用方括号[]。如:
tuple=("random","hello","nice","green")
print(tuple)
#输出结果
('random', 'hello', 'nice', 'green')
元祖创建很简单,只需在括号中添加元素并使用逗号隔开。
在元祖中如果只包含一个元素,需要在后面添加逗号,否则括号会被当做运算符使用。如:
tuple=("random","hello","nice","green")
tuple2=("random")
tuple3=("random",)
print(type(tuple))
print(type(tuple2))
print(type(tuple3))
#输出结果
元祖的索引与截取与字符串类似,从左往右0开始,从右往左-1开始。
同理元祖的访问跟字符串类似,如:
tuple=("random","hello","nice","green")
print(tuple[1])
print(tuple[0:3])
#输出结果
hello
('random', 'hello', 'nice')
元祖中的元素值是不允许修改的,但我们可以对元祖进行连接组合。如:
tuple=("random","hello","nice","green")
tuple2=(50,)
tuple3=tuple+tuple2
print(tuple3)
#tuple[0]="a" 把random修改为a是不允许的。
#输出结果
('random', 'hello', 'nice', 'green', 50)
元祖中的元素值是不允许改变的,但是我们可以使用del语句来删除整个元祖。如;
tup = ('Google', 'Runoob', 1997, 2000)
print(tup)
del tup
print("删除后的元组 tup : ")
print(tup)
#输出结果
Traceback (most recent call last):
File "C:/Users/Lenovo/PycharmProjects/untitled/venv/Scripts/baoliuzi.py", line 6, in
print(tup)
NameError: name 'tup' is not defined
('Google', 'Runoob', 1997, 2000)
删除后的元组 tup :
以上实例,元祖被删除后输出变量会右异常。
与字符串一样,元祖之间可以使用运算符。
tup = ('Google', 'Runoob', 1997, 2000)
tup2=('random',321)
print(len(tup))#计算元素个数
print(tup+tup2)#连接
print(tup2*2)#复制
print(2000 in tup)#元素是否存在
for x in tup:#迭代
print(x,end="")
#输出结果
4
('Google', 'Runoob', 1997, 2000, 'random', 321)
('random', 321, 'random', 321)
True
GoogleRunoob19972000
tup = ('Google', 'Runoob', 1997, 2000)
tup2=(2457,321,651,35,648)
list=['Google', 'Runoob','nice']
#len(tup)计算元素个数:
print(len(tup))
#max(tup)返回元祖中元素最大值:
print(max(tup2))
#min(tup)返回元祖中元素最小值:
print(min(tup2))
#tuple(iterable)将可迭代系列转换为元祖:
print(tuple(list))
#输出结果
4
2457
35
('Google', 'Runoob', 'nice')
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值对(key:value)用冒号隔开,每个对之间用逗号分隔,整个字典用花括号{包起来}。
dictionary={key1:value1,key2:value2,key3:value3}
注意:
1、dict是Python的关键字和内置函数,变量名不建议命令为dict。
2、键必须是唯一的,但值则不必。
3、值可以取任何数据类型,但键必须是不可变的,如字符串,数字、
emptydict={}
print(emptydict)#输出字典
print(len(emptydict))#查看字典的数量
print(type(emptydict))#查看字典的类型
#输出结果
{}
0
dictionary={"name":"john","xm":"男","age":45}
print(dictionary['name'])
print(dictionary['age'])
#输出结果
john
45
向字典添加新内容的方法是增加新的键值对,修改或删除已有键值对。如:
dictionary={"name":"john","xm":"男","age":45}
dictionary['age']=25
dictionary['gongzuo']="teacher"
print(dictionary['gongzuo'])
print(dictionary['age'])
#输出结果
teacher
25
字典可以单独的删除元素也可以清空字典。
dictionary={"name":"john","xm":"男","age":45}
del dictionary['xm']#单独删除键‘xm’
dictionary.clear()#清空字典
del dictionary#删除字典
print(dictionary['age'])
#输出结果
Traceback (most recent call last):
File "C:/Users/Lenovo/PycharmProjects/untitled/venv/Scripts/baoliuzi.py", line 5, in
print(dictionary['age'])
NameError: name 'dictionary' is not defined
从例子中看到会引发一个异常,因为执行了del后字典不存在。
字典值可以是任何对象,但键不行。键不能同一个键出现二次。创建时如果同一个键被赋值二次,则后一个值会被记住。键必须不可变,所以可以用数字,字符串,元祖充当,但列表不行。
集合是一个无序的不重复元素序列。可以使用大括号{}或者set()函数创建集合。
注意:创建一个空集合必须使用set()而不是{},会被误创建一个空字典。集合会自动过滤掉重复元素。
random={value1,value2...}
或者
set(value1,value2...)
random={'apple','orange','apple','orange','pear'}
print(random)
a=set(('applle','pear','applle'))
print(a)
#输出结果
{'apple', 'orange', 'pear'}
{'applle', 'pear'}
添加元素的语法格式为:
s.add(x)将元素x添加到集合s中,如果元素已经存在则不进行操作
a=set(('applle','pear','applle'))
a.add('nice')
print(a)
#输出结果
{'nice', 'pear', 'applle'}
除了使用s.add(x)之外还可以使用s.update(x)参数可以是列表,元祖,字典
移除语法格式:
s.remove(x)如果元素不存在则会发生错误。
a=set(('applle','pear','applle'))
a.remove('pear')
print(a)
a.remove('nice')
print(a)
#输出结果
Traceback (most recent call last):
File "C:/Users/Lenovo/PycharmProjects/untitled/venv/Scripts/baoliuzi.py", line 4, in
a.remove('nice')
KeyError: 'nice'
{'applle'}
如果使用s.discard(x)方法移除集合中的元素,如果集合中元素不存在也不会发生错误。
a=set(('applle','pear','applle'))
print(len(a))
#输出结果
2
a=set(('applle','pear','applle'))
a.clear()
print(a)
#输出结果
set()