基本数据类型 2
Dict 字典
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。 并且,在同一个字典中,键(key)必须是唯一的
并且字典数据类型是不支持利用索引来取值的,因为它内部是一个无序的
实例
-
编写格式
-
取值方式
Set 集合
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { } ,因为 { } 是用来创建一个空字典
实例
- 编写格式
- 取值方式
Tuple 元组
元组(tuple)与列表类似,当中的元素也可以和列表一样,元素的类型可以不相同。不同之处在于元组当中的元素是无法进行修改的。
元组是用小括号( ) 括起来的,其中元素之间用逗号, 隔开
实例
- 编写方式
- 取值方式
- 更改就会报错
Bool 布尔值
布尔值(bool)只有两个状态,主要是用于对逻辑运算进行判断对错的一种数据类型
两个状态分别为 ————> True 和 False
在Python中任何数据类型在进行逻辑判断时都可以被转换成布尔值
其中默认的一些布尔值有:
0 None 空字符 空列表 空字典....
并且在编写代码时,针对布尔值的变量名一般都是采用is开头
is_rigtht = True
is_delete = False
实例
与用户交互
程序要实现人机交互的功能,需能够向现实设备输出有关信息及提示,同时也要能够接收从键盘输入的数据。
Python提供了用于实现输入/输出功能的函数 input() 和 print()
input()函数
input()函数用于接收一个标准输入数据,该函数会返回一个字符串类型数据。那么我们如何实现获取用户和输入的数据呢?
编写格式:
username = input('请输入您的用户名>>> :')
实例
print()函数
print()函数用于向控制台输出数据,它可以输出任何数据的类型。
编写格式:
print(username)
在print() 函数中还可以加入各种参数,各个具体的参数有其具体的含义表示。
- Object:表示输出的对象。输出多个对象时,需要使用逗号隔开
- sep:用于间隔多个对象。
- end:用于设置以什么什么结尾。默认的值时换行符\n。
- file: 用于表示数据输出的文件对象。
实例
格式化输出
格式化输出的具体含义就是用户提前定义好需要打印的模板,再在需要修改的特定地方进行修改即可。
实例
这中间的 %s 和 %d 就是一种占位符
- %s:可以给任意数据占位
- %d:只可以给数字占位
- %08d:占8个位,取的数据不够8位拿0自动补齐
print('%08d' % 88888) # 00088888
print('%08d' % 9) # 00000009
运算符
算术运算符
Python中的算术运算符包括(+ ,-,* ,/,//,% 和 ** )这些运算符都是双目运算符,一个运算符可以和两个操作数组成一个表达式。
以操作数a = 3 ,b= 5 为例,Python中各个运算符的功能如下
运算符 | 功能 | 示例 |
---|---|---|
+ | 加:使俩个操作数相加,获取操作数的和 | a+b,结果为8 |
- | 减:使俩个操作数相减,获取操作数的差 | a-b,结果为-2 |
* | 乘:使俩个操作数相乘,获取操作数的积 | a*b,结果为15 |
/ | 除:使两个操作数相除,获取操作数的商 | a/b,结果为0.6 |
// | 整除:使两个操作数相除,获取商的整数部分 | a//b,结果为0 |
% | 取余:使两个操作数相除,获取余数 | a%b,结果为3 |
逻辑运算符
Python 支持逻辑运算,但Python逻辑运算符的功能与其他语言有所不同。Python中的分别使用and、or、not这三个关键字作为逻辑运算“与”“或”“非”的运算符,其中or与and为双目运算符,not为单目运算符。
逻辑运算符的操作数可以为表达式或对象,下面将对它们的功能分别进行说明
and(与)
当使用运算符and连接多个条件时,条件之间要同时都满足,结果才会是True
or(或)
当使用运算符or,连接多个条件只要有一个满足 结果就是True。如果多个结果都不满足,结果返回False
not(非)
将条件翻转not True就会变为False ,not False会变为True。
赋值运算符
运算符
赋值运算符的功能是:将一个表达式或对象赋给左值,其中左值必须是一个可以修改的值,不能为一个常量。“ = ”是基本的赋值运算符,还可以与算数运算符组合成复合赋值运算符。Python中的复合赋值运算符有+=、-=、*=、/=、//=、%=、**=,它们的功能相似,例如
“a += b”等价于“a = a + b”
“a -= b”等价于“a = a - b”
赋值运算符也是双目运算符,以 a = 3 ,b = 5 为例
运算符 | 功能 | 示例 |
---|---|---|
= | 等:将右值赋给左值 | a=b, a为5 |
+= | 加等:使右值与左值相加,将和赋给左值 | a+=b, a为8 |
-= | 减等:使右值与左值相减,将差赋给左值 | a-=b,a为-2 |
*= | 乘等:使右值与左值相乘,将积赋给左值 | a*=b, a为15 |
/= | 除等:使右值与左值相除,将商赋给左值 | a/=b, a为0.6 |
//= | 整除等:使右值与左值相除,将商的整数部分赋给左值 | a//=b,a为0 |
%= | 取余等:使右值与左值相除,将余数赋给左值 | a%=b, a为3 |
赋值方式
为了方便程序员用于计算和编写代码于是就诞生了几种简便的的赋值方式
(其实说到底就是程序员自己偷懒嘛 )
1 链式赋值
x=100
y=x
z=x
# 这样写过于啰嗦于是就诞生了下面这种写法
x = y = 100
2 交叉赋值
a = 899
b = 998
# 我们向将两个数互换那么如何最简便的进行呢 就可以用下面这种
a, b = b, a
print(a, b)
# 这样即可简便的完成互换
3 解压赋值
name_list = ['Bob', 'kevin', 'tony', 'jerry']
# 有这样一个姓名列表,我们需要依此赋值到name1, name2, name3, name4中,这时我们就可以运用到解压赋值了。
name1, name2, name3, name4 = name_list
# 这里必须跟姓名列表里的元素个数一致 不然就会报错
print(name1, name2, name3, name4,)
# 输出 Bob, kevin, tony, jerry
# 如果想要打破个数的限制怎么办?那就用下面这种
list_num = [11, 22, 33, 44, 55, 66, 77]
N, M, *_ = list_num
print(N, M, _)
#输出 11 22 [33, 44, 55, 66, 77]
#如果想要第一个最后一个数据怎么办
N, *_, M = list_num
print(N, _, M)
#输出 11 77 [22, 33, 44, 55, 66]
成员、身份运算
成员运算
本质上就是判断一个元素是否存在某一个群体内部
name_list = ['Bob', 'kevin', 'tony', 'jerry']
print('Bob' in name_list)
# 判断Bob这个元素是否存在name_list里面
#输出 True
print('Bob' not in name_list)
# 判断Bob这个元素是否不存在name_list里面
#输出 False
身份运算
身份运算有两个主要的运算符
is:是用来判断数据的内存地址是否一致
==:是用来判断数据的值是否一致
a = 999
b = 999
# 定义两个变量 a b 分别都赋值999
print(a is b)
#True
print(a == b)
#True
这里两种都返回True,是因为现在的PyCharm编辑器被优化了,在pycharm中运行python程序时,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究。
但是你再命令行窗口运行的话就会返回False,如图