python初识数据类型(字典、集合、元组、布尔)与运算符
阅读原文时间:2023年07月09日阅读:1

目录

python数据类型(dict、tuple、set、bool)

昨天我们学习了python基本数据类型中的整型(int)、字符串(str)、浮点型(float)、列表(list),接下来我们学习剩下的基本数据类型。

在python中列表可以存储多个数据,但是列表存储数据时无法明确的标明这些数据是什么,这个时候就需要用到字典了。

字典是能够精确存储数据的,它用大括号括起来,每一个元素用Key:Value的形式存储,元素之间用逗号隔开。

student = {
    'name':'张三',
    'age':18,
    'sex':'男'
}

强调:字典是不支持用索引来取值的,字典的取值是依靠Key来取值的。

>>> print(student['age'])
18

集合与字典一样都是用大括号来表示,内部存放多个元素,元素之前用逗号隔开,与字典不同的是。集合不是以Key:Value的形式存储的。

s = {54, 4.5, 'ss'}

在python中,如果一个变量被赋予了大括号定义空的数据,那么默认数据类型为字典。

>>> a = {}
>>> print(type(a))
<class 'dict'>

元组与列表几乎一致,只不过列表用的是中括号,元组使用的是小括号,而且元组一般用于存储不能修改的数据,所以人送小外号不可变的列表。

t = (1, 2, 2.5, 'asd')

布尔值是用来描述事物的对错,主要用于逻辑判断。

布尔值只有两个值:True和False。

当一个变量被赋予了0、None、空值时,这些变量的布尔值默认为False,其余为True。

用户交互与输出

我们在一些网站进行登录注册时,网站会要求我们输入账号和密码,并返回正确或者是错误信息。在python也有着一些方法可以用于获取用户输入,并输出消息。

获取用户输入用的是input()方法,括号内填写可以用于提示用户的信息。

input获取到的数据都会转成字符串类型。

>>> username = input('请输入用户名:')
请输入用户名:张三

输出信息用的是print()方法,括号内写入需要打印的东西即可。

>>> print(username)
张三

知道了如何输出信息之后,我们来了解一下格式化输出。

之前在我们输出信息时,不好在一段文字中间插入一些其他的文字,这个时候就要用到了格式化输出了。

我们在输出时,可以用占位符来替代需要填写的信息。

>>> name = '张三'
>>> age = 18
>>> print('my name is %s my age is %d' % (name, age))
my name is 张三 my age is 18

%s,%d都是占位符,%s可以给任意数据占位,%d只能给数字占位。%d还有着其他的用法。

>>> print('%05d' % 54)
00054
>>> print('%04d' % 54)
0054

在'%05d'中,'5'代表着是5位数,'0'代表着不足5位用0填补。

基本运算符

运算符的运用是最常用的,任何数据的计算都需要用到运算符。

运算符

含义

举例

+

加号

print(5 + 6),输出11

-

减号

print(55 - 11),输出44

*

乘号

print(5 * 6),输出30

/

除号

print(9 / 3),输出3

**

乘方

print(5 ** 3),输出125

//

整除

print(10 // 3), 输出3

%

取余

print(10 % 3),输出1

运算符

含义

举例

!=

不等于

print(6 != 5),输出True

==

等于

print(5 == 5),输出True

>

大于

print(5 > 6),输出False

<

小于

print(5 < 6),输出True

>=

大于等于

print(5 >= 6 ),输出False

<=

小于等于

print(5 <= 6),输出True

运算符

含义

举例

and

条件与需要同时满足,否则返回False

print(5 > 6 and 5 < 6),输出False

or

条件只需要满足其中一个

print(5 > 6 and 5 < 6),输出True

not

条件颠倒,True返回Flase,Flase返回True

print(not (5 > 6)),输出True

在python中,赋值方法各式各样。

增量赋值

初识python的人如果要给一个变量增加100一般都会这么写:x = x + 100,这个写法并没有问题,但是那些大佬们觉得这样太麻烦了,于是他们就这样写:x += 100,这样他们就少写了一个变量名。

原来

简化后

x = x + 100

x += 100

x = x - 100

x -= 100

x = x * 100

x *= 100

x = x / 100

x /= 100

链式赋值

链式赋值顾名思义就是像链条一样给变量赋值。

x = 100
y = x
z = x
# 简化后
x = y = z = 100

交叉赋值

在平常中,如果我们想把两个变量值交换,我们一般都会这样做:

a = 10
b = 15
m = a
a = b
b = m

我们一般都会在定义一个变量作为存储用,这个方法也过于繁琐,所以我们这样用:

a = 10
b = 15
a, b = b, a

这个显然更加的简单而且快速。

解压赋值

正常情况下,如果我们想要取出列表中的每一个数据,我们都会是去用列表的索引给变量一个个赋值,但是解压赋值就不需要索引就可以把列表中的每一个值存到不用的变量中。

name_list = ['张三', '李四', '王五', '赵六']
# 正常情况赋值
name1 = name_list[0]
name2 = name_list[1]
name3 = name_list[2]
name4 = name_list[3]
# 解压赋值
name1, name2, name3, name4 = name_list

注意事项:左边的变量个数需要和右边中的值个数一致

拓展:如何在两边个数不匹配的情况下赋值?

>>> list = [1, 2, 3, 4, 5, 6]
>>> a, b, *_ = list
>>> print(a, b, _)
1 2 [3, 4, 5, 6]
>>> list = [1, 2, 3, 4, 5, 6]
>>> a, *_, b = list
>>> print(a, b, _)
1 6 [2, 3, 4, 5]

在上述例子中"_"可以是任意变量名。

另外,我们规定,如果指向的值用不到,我们可以使用"_"来作为变量名。

成员运算

我们用"in", "not in"来判断个体是否存在某个群体内。

>>> list = [1, 2, 5, 6, 88]
>>> print(1 in list)
True
>>> print(1 not in list)
False

身份运算

身份运算有两种:is 和 ==。

  • is: 判断两个数据的内存地址是否一致

  • ==: 判断两个数据的值是否一致

    a = 55555
    b = 55555
    print(a is b)
    False
    print(a == b)
    True