3.4.元组(Tuple)
- 元组类似于一个只读列表,写入元素后,元组中的元素是不可变的,操作速度比列表要快,安全性更强,使用
()
来创建元组
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = () # 空元组 tup2 = (20,) # 一个元素,需要在元素后添加逗号
3.4.1元组的创建和删除
>>> a = (1,2,3) >>> print(a) (1, 2, 3) >>> a[0] = 4 #元组的元素不能修改,会报错 Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> del a #在删除元组时,只能全部删除,不能指定删除某个元素 >>> print(a) Traceback (most recent call last): File "<input>", line 1, in <module> NameError: name 'a' is not defined
3.4.2.元组和列表的互相转换
>>> a = [1,2,3] >>> b = (1,2,3) >>> c = list(b) #转换时,需要重新定义变量 >>> print(c) [1, 2, 3] >>> print(type(c)) #查看c变量的类型,发现是列表 <class 'list'> >>> d = tuple(a) #把a列表变成元组,并且重新定义变量成d >>> print(d) (1, 2, 3) >>> print(type(d)) <class 'tuple'>
3.5.集合(Set)
- 集合是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员
基本功能是进行成员关系测试和删除重复元素
可以使用大括号{ }
或者是set( )
函数创建集合,要注意的是,创建一个空集合必须使用set( )
,因为{ }
使用来创建一个空字典的
创建格式:
a = {value1,value2,...} set(value)
3.5.1.集合的创建
a = {'aaa','bbb','ccc','ddd'} print(a) print(type(a)) 输出结果: {'aaa', 'ddd', 'bbb', 'ccc'} <class 'set'>
b=set("aaaa5cccddd") print(b) print(type(b)) 输出结果: {'a', 'd', 'c', '5'} <class 'set'>
3.5.2.成员测试
a = {'aaa','bbb','ccc','ddd'} if 'aaa' in a: print("aaa在a集合中") else: print("aaa不在a集合中") 输出结果: aaa在a集合中
3.5.3.集合运算
a = set('abracadabra') b = set('alacazam') print(a) print(b) print(a - b) #a和b的差集 print(a | b) #a和b的并集 print(a & b) #a和b的交集 print(a ^ b) #a和b中不同时存在的元素 输出结果: {'b', 'r', 'd', 'c', 'a'} {'l', 'z', 'm', 'c', 'a'} {'r', 'd', 'b'} {'l', 'z', 'b', 'r', 'd', 'm', 'c', 'a'} {'a', 'c'} {'l', 'r', 'z', 'b', 'd', 'm'}
3.6.字典(Dictionary)
- 字典中的值,是通过键值对来存储的,
key-value
的方式,使用{ }
来创建字典,字典的索引由键和它对应的值组成
列表是有序的对象集合,字典是无序的对象集合两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合
键(key)必须使用不可变类型
在同一个字典中,键(key)必须是唯一的
3.6.1.字典的创建
#字典中的键具有唯一性,但是值可以相同,键名区分大小写,当有多个相同的键名和值时,只有最后一个键值会生效 >>> a = {"id":1,"name":"zhangsan"} >>> print(a) {'id': 1, 'name': 'zhangsan'} >>> print(type(a)) <class 'dict'> >>> print(a["id"]) #索引a字典中,id键的值 1 >>> print(a["name"]) zhangsan >>> a = {"id":1,"id":2,"id":3} >>> print(a) #字典中有多个相同的键时,只有最后一个键值会生效 {'id': 3} >>> del a #删除a字典
3.6.2.字典中键的添加、修改、删除操作
#添加: a={"aaa":1,"bbb":2} a["ccc"] = 3 #添加不存在的键值即可 print(a) 输出结果: {'aaa': 1, 'bbb': 2, 'ccc': 3} —————————————————————————————— #修改: a={"aaa":1,"bbb":2} a["aaa"] = 3 #修改指定键的值 print(a) 输出结果: {'aaa': 3, 'bbb': 2} —————————————————————————————— #删除: a={"aaa":1,"bbb":2} del a["aaa"] #删除指定的键值 print(a) 输出结果: {'bbb': 2}
3.7.Python数据类型转换
- 有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可
- 以下几个内置的函数可以执行数据类型之间的转换这些函数返回一个新的对象,表示转换的值
函数 | 描述\作用 |
int(x [,base]) | 将x转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典d 必须是一个 (key, value)元组序列 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
4.Python3基础语法
4.1.编码
- 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串 当然你也可以为源码文件指定不同的编码:
# -*- coding: cp-1252 -*-
- 上述定义允许在源文件中使用 Windows-1252 字符集中的字符编码,对应适合语言为保加利亚语、白罗斯语、马其顿语、俄语、塞尔维亚语
- 一般来说都是直接指定utf-8
# -*- coding: utf-8 -*-
4.2.标识符
- 第一个字符必须是字母表中字母或下划线 _
- 标识符的其他的部分由字母、数字和下划线组成
- 标识符对大小写敏感
注意:在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了
4.3.Python保留字
保留字即关键字,我们不能把它们用作任何标识符名称Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
>>> import keyword >>> keyword.kwlist ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
4.3.注释
Python中单行注释以#
开头,实例如下:
#!/usr/bin/python3 # 第一个注释 print ("Hello, Python!") # 第二个注释
执行以上代码,输出结果为:
Hello, Python!
多行注释可以用多个 #
号,还有 '''
和 """
:
#!/usr/bin/python3 # 第一个注释 # 第二个注释 ''' 第三注释 第四注释 ''' """ 第五注释 第六注释 """ print ("Hello, Python!")
执行以上代码,输出结果为:
Hello, Python!
4.4.行与缩进
python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {}
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数实例如下:
if True: print ("True") else: print ("False")
以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:
if True:
if True: print ("Answer") print ("True") else: print ("Answer") print ("False") # 缩进不一致,会导致运行错误
以上程序由于缩进不一致,执行后会出现类似以下错误:
File "test.py", line 6 print ("False") # 缩进不一致,会导致运行错误 ^ IndentationError: unindent does not match any outer indentation level