集合
如果想要初始化一个只包含一个元素的元组,那么必须使用在括号中带上一个逗号
列表名 = []
列表名 = list()
集合名 = {元素, 元素, 元素, …, 元素}
集合名 = set()
nums_set = {1, 2, 3, 4, 5}
print(6 in nums_set) # 输出False
print(1 in nums_set) # 输出True
使用集合的add()方法进行元素添加,其中括号内的参数传入待添加的元素。比如
``` shell
nums_set = {1, 2, 3, 4, 5}
nums_set.add(6)
print(nums_set)
```
使用集合的remove()方法进行元素删除
集合的特点是:无序性、无重复性、可哈希性。
打印集合时,输出时元素的顺序和初始化时元素的顺序是不一样的。
集合中的元素的值必须是唯一的,不可重复的。
在实际应用,我们经常使用集合的这一个特性,结合列表和集合之间的相互转化,实现列表的去重操作。比如
``` shell
nums = [2, 2, 4, 4, 3, 3, 1, 1]
nums_no_repeat = list(set(nums))
print(nums_no_repeat)#[1, 2, 3, 4]
```
字典
在Python中,字典通常用花括号({})表示,用英文逗号(,)将其中的键值对进行分隔,每一个键值对的键和值之间冒号(:)分隔开。基本语法形如
``` shell
grade_dic = {“xiaoming”: 90, “xiaohong”: 70, “xiaohei”: 60, “xiaogang”: 70}
print(grade_dic)
```
8.2.1.2 空字典的初始化
``` shell
字典名 = {}
字典名 = dict()
```
注意到,虽然集合和字典都使用花括号{}来表示,但是空集合的初始化只能使用set()来进行。
如果使用{}来初始化一个变量,会被认为是一个空字典的初始化,而不是一个空集合的初始化。
使用例:
``` shell
grade_dic = {“xiaoming”: 90, “xiaohong”: 70, “xiaohei”: 60, “xiaogang”: 70}
print(grade_dic[“xiaoming”])
print(grade_dic[“xiaogang”])
```
``` shell
grade_dic = {“xiaoming”: 90, “xiaohong”: 70, “xiaohei”: 60, “xiaogang”: 70}
print(list(grade_dic.keys())) # 获得所有key构成的列表
print(list(grade_dic.values())) # 获得所有value构成的列表
print(list(grade_dic.items())) # 获得所有key-value对构成的列表
```
```shell
异常处理语句在处理输入时的应用
try-except异常处理语句可以用来解决输入次数未知的问题。
当try中的语句块没有出现错误可以正常运行时,执行try中的语句块,否则执行except下的语句块。
``` shell
while(True):
try:
n = int(input())
# do something
except:
break
```
可以在一个while True死循环中进行持续的输入,当最后一个行输入空行的时候,会进入到except中的语句,使用break退出while循环,完成输入。
面向对象编程
类的组成部分
- 属性(attributes):属性是类中定义的变量,用于存储对象的状态。也被称为成员变量(member variable)。
方法(methods):方法是类中定义的函数,用于实现对象的行为。也被称为成员函数(member function)。
```shell
class Dog:
def init(self, name, age, color):self.name = name # 属性 self.age = age # 属性 self.color = color # 属性def bark(self): # 方法
print(f"{self.name} is barking.")def roll_over(self): # 方法
print(f"{self.name} is rolling over.")def grow_up(self, year): # 方法
self.age += year print(f"{self.name} is {self.age} years old.")```
