emmm不好意思又好几天没更了。虽然没更但是依旧没少掉头发。接上章我们继续🆗开始
Dictionary(字典)
- 列表是有序的对象集合,字典是无序的对象集合。两者区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
- 字典是一种映射类型,字典用 { } 标识,它是一个无序的 K : V 的集合。
- 键(key)必须使用不可变类型。
- 在同一个字典中,键(key)必须是唯一的。
# 字典声明方式1
dict_one = {} # 创建空字典
dict_one['one'] = "小徐"
dict_one['two'] = "掉头发"
print(dict_one)# {'one': '小徐', 'two': '掉头发'}
# 通过key获取value
print(dict_one['one']) # 小徐
print(dict_one['two']) # 掉头发
# 字典声明方式2
dict_two = {'one' : '小徐', 'two' : '掉头发'}
print(dict_two)# {'one': '小徐', 'two': '掉头发'}
# 通过key获取value
print(dict_one['one']) # 小徐
print(dict_one['two']) # 掉头发
print(dict_two.keys()) #输出所有键值
print(dict_two.values()) #输出所有值
bytes 类型
- bytes 类型表示的是不可变的二进制序列(byte sequence)。
- 与字符串类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。
- bytes 类型通常用于处理二进制数据,比如图像文件、音频文件、视频文件等等。在网络编程中,也经常使用 bytes 类型来传输二进制数据。
- 创建 bytes 对象的方式有多种,最常见的方式是使用 b 前缀:此外,也可以使用 bytes() 函数将其他类型的对象转换为 bytes 类型。bytes() 函数的第一个参数是要转换的对象,第二个参数是编码方式,如果省略第二个参数,则默认使用 UTF-8 编码:
x = b"hello world"
print(x) # b'hello world'
print(type(x)) # <class 'bytes'>
数据类型转换
隐式类型转换
隐式类型转换会自动将一种数据类型转换为另一种数据类型。转换的过程不需要我们去处理。
从下面代码可以看出小的数据类型(int)和大的数据类型(float)相加时会自动转为大的数据类型(float)避免数据丢失
# 隐式类型转换
num_int = 100
num_flo = 1.00
num_sum = num_int + num_flo
print(type(num_int))# <class 'int'>
print(type(num_flo))# <class 'float'>
print(num_sum)# 101.0
print(type(num_sum))# <class 'float'>
看下面这种情况这里我创建了一个int类型的整数和str 类型的字符串进行相加此时就会出问题了。这种情况下我们如果必须要进行运算怎么解决呢?就要用到数据类型转换的第二个知识点显示类型转换
num_int = 100
num_str = '100'
num_sum = num_int + num_str
print(num_sum)
# Traceback (most recent call last):
# File "D:\pywork\pythonProject\TypeConversion.py", line 14, in <module>
# num_sum = num_int + num_str
~~~~~~~~^~~~~~~~~
# TypeError: unsupported operand type(s) for +: 'int' and 'str'
显示类型转换
在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。 我们使用 int()、float()、str() 等预定义函数来执行显式类型转换。
这里是对上面代码的修改。我们先将num_str的类型转换为int再进行运算即可得到结果
# 显示类型转换
num_int = 100
num_str = '100'
num_str = int(num_str)
print(type(num_str))# <class 'int'>
num_sum = num_int + num_str
print(num_sum)# 200
算术运算符
+ | 加 -- 两个对象相加 | 10+10的结果20 |
- | 减 -- 得到负数或是一个数减去另一个数 | 10-10的结果0 |
* | 乘 -- 两个数相乘或返回若干次字符串 | 10*10的结果100 |
/ | 除 -- 一个数除以另一个数 | 10/10的结果1 |
% | 取模 -- 返回除法的余数 | 10%10的结果0 |
** | 幂 -- 返回x的y次幂 | 10**11为10的11次方 |
// | 取整除 -- 往小的方向取整数 | 9//2的结果4 |
比较运算符
== | 等于 -- 比较对象是否相等 | 10 == 11返回False |
!= | 不等于 -- 比较两个对象是否不相等 | 10 != 11返回True |
> | 大于 | 10 > 11返回False |
< | 小于 | 10 < 11返回True |
>= | 大于等于 | 10 >= 11返回False |
<= | 小于等于 | 10 <= 11返回True |
条件控制
条件控制语句是通过一条或多条语句的执行结果(True或False)来决定要执行的代码
if...elif...else
# 根据小明输入的数字给出对应的提示
num = int(input("请输入随意数字获取对应奖励:"))
if num <= 0:
print("大嘴巴子一个")
elif num > 0 & num <= 50:
print("大嘴巴子两个")
elif num > 50 & num <= 100:
print("大嘴巴子三个")
else:
print("大嘴巴子四个")
match...case
- match...case 的条件判断,不需要再使用一连串的 if-else 来判断了。
- match 后的对象会依次与 case 后的内容进行匹配,如果匹配成功,则执行匹配到的表达式,否则直接跳过,_ 可以匹配一切。
num = int(input("请输入随意数字获取对应奖励:"))
match num:
case 1:
print("1")
case 2:
print("2")
case _:
print("您输入的既不是1也不是2")
浅更一下。周六上班偷偷的学了一会儿。你们周六都上班嘛?