# print是内置的打印函数
    print("I'm Python. Nice to meet you!")

# 在给变量赋值前不用提前声明
# 传统的变量命名是小写,用下划线分隔单词
    some_var = 5     some_var # => 5 # 访问未赋值的变量会抛出异常     some_unknown_var # 抛出NameError # 用列表(list)储存序列(list是一个有序的集合,可以随时添加删除其中的元素)     li = [] # 创建列表时也可以同时赋给元素     other_li = [4, 5, 6]
# list列表里面的数据类型可以不同
    li = [1,23,"add",True] # 用append在列表尾部追加元素     li.append(1) # li现在是[1]     li.append(2) # li现在是[1, 2]     li.append(4) # li现在是[1, 2, 4]     li.append(3) # li现在是[1, 2, 4, 3] # 用pop从列表尾部删除     li.pop() # => 3 且li现在是[1, 2, 4]
# 要删除指定位置用pop(i),其中i是索引位置
    li.pop(0) # => 1 且li现在是[2,4] # 把3再放回去     li.append(3) # li变回[1, 2, 4, 3] # 列表存取跟数组一样     li[0] # => 1 # 取出最后一个元素-1。(倒数第二-2,以此类推)     li[-1] # => 3 # 越界存取会造成IndexError     li[4] # 抛出IndexError # 列表有切割语法     li[1:3] # => [2, 4] # 取尾     li[2:] # => [4, 3] # 取头     li[:3] # => [1, 2, 4] # 隔一个取一个     li[::2] # =>[1, 4] # 倒排列表     li[::-1] # => [3, 4, 2, 1] # 可以用三个参数的任何组合来构建切割     li[始:终:步伐](从0开始,包含始,不含终,且构建出新列表,原始列表不变) # 用del删除任何一个元素 del+空格+列表[位置]     del li[2] # li is now [1, 2, 3] # 列表可以相加。注意:相加后成为新列表,li和other_li的值都不变     li + other_li # => [1, 2, 3, 4, 5, 6] # 用extend拼接列表     li.extend(other_li) # li现在是[1, 2, 3, 4, 5, 6] # 用in测试列表是否包含值     1 in li # => True # 用len取列表长度(即列表内元素的个数)     len(li) # => 6 # 元组tuple是不可改变的序列     tup = (1, 2, 3)     tup[0] # => 1     tup[0] = 3 # 抛出TypeError
# 只有一个元素的tuple要用,来消除歧义
    t = (1,) # 列表允许的操作元组大都可以     len(tup) # => 3     tup + (4, 5, 6) # => (1, 2, 3, 4, 5, 6)     tup[:2] # => (1, 2)     2 in tup # => True # 可以把元组和列表解包,赋值给变量     a, b, c = (1, 2, 3) # 现在a是1,b是2,c是3 # 元组周围的括号是可以省略的     d, e, f = 4, 5, 6 # 交换两个变量的值就这么简单     e, d = d, e # 现在d是5,e是4 # 用字典表达映射关系     empty_dict = {} # 初始化的字典     filled_dict = {"one": 1, "two": 2, "three": 3} # 用[]取值     filled_dict["one"] # => 1 # 用keys获得所有的键。因为keys返回一个可迭代对象,所以在这里把结果包在list里。 # 注意:字典键的顺序是不定的。     list(filled_dict.keys()) # => ["three", "two", "one"] # 用values获得所有的值。跟keys一样,要用list包起来,顺序也可能不同。     list(filled_dict.values()) # => [3, 2, 1] # 用in测试一个字典是否包含一个键     "one" in filled_dict # => True     1 in filled_dict # => False # 访问不存在的键会导致KeyError     filled_dict["four"] # KeyError # 用get来避免KeyError     filled_dict.get("one") # => 1     filled_dict.get("four") # => None # 当键不存在的时候get方法可以返回默认值     filled_dict.get("one", 4) # => 1     filled_dict.get("four", 4) # => 4 # setdefault方法只有当键不存在的时候插入新值     filled_dict.setdefault("five", 5) # filled_dict["five"]设为5     filled_dict.setdefault("five", 6) # filled_dict["five"]还是5 # 字典赋值(将数据放入字典的方法)     filled_dict.update({"four":4}) #=> {"one": 1, "two": 2, "three": 3, "four": 4}     filled_dict["four"] = 4 # 另一种赋值方法  # 用del删除     del filled_dict["one"] # 从filled_dict中把one删除 # 用set表达集合(set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。)     empty_set = set() # 初始化一个集合,语法跟字典相似。     some_set = {1, 1, 2, 2, 3, 4} # some_set现在是{1, 2, 3, 4} # 可以把集合赋值于变量     filled_set = some_set # 为set集合添加元素 .add(key)     filled_set.add(5) # filled_set现在是{1, 2, 3, 4, 5}
# 为set集合删除元素 .remove(key)     filled_set.remove(4) # filled_set现在是{1,2,3,5} # & 取交集     other_set = {3, 4, 5, 6}     filled_set & other_set # => {3, 4, 5} # | 取并集     filled_set | other_set # => {1, 2, 3, 4, 5, 6} # - 取补集     {1, 2, 3, 4} - {2, 3, 5} # => {1, 4} # in 测试集合是否包含元素     2 in filled_set # => True     10 in filled_set # => False