
python有六种常见的数据结构:
根据数据结构特性划分:

Python3支持int、float、bool、complex(复数)几种类型的数值
| int | float | bool | conplex | 
|---|---|---|---|
| 1 | 1.0 | True/False | 1+j | 
数值类型的基本操作
A=3,B=2
a = 3
b = 2
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a//b)
print(a%b)
# 声明字符串
var1 = 'hello'
var2 = "hello"
var3 = '''你好'''
var4 = """你好"""
print (var1)
print (var2)
print (var3)
print (var4)
python可以使用[]截取字符串
语法 字符串变量[startIndex:endIndex]
startIndex默认为0,为0时从字符串左侧开始截取,为-1时从右侧开始截取
endIndex默认为字符串长度-1
str = "012345"
print(str[:]) 
print(str[:6])
print(str[0:])
print(str[0:6])
print(str[-4:])
输出结果为

使用\声明一个转义字符
| 转义字符 | 作用描述 | 
|---|---|
| \ | 续行符 | 
| \ | 反斜杠符号() | 
| ' | 单引号 | 
| " | 双引号 | 
| \n | 换行 | 
| \t | 横向制表符 | 
| \r | 回车 | 
| \a | 响铃 | 
| \b | 退格 | 
| \000或\0 | 空 | 
| \v | 纵向制表符 | 
| \f | 换页 | 
| \0yy | yy是两个八进制数,\012表示换行 | 
| \xyy | yy是两个十六进制数,\x0a表示换行 | 
| \other | other是除以上列举的其它字符,其它字符则以普通格式输出 | 
| 操作 | 解释 | 
|---|---|
| 分割 | str1.split(str2),以str2为分隔符,分割str1 | 
| 替换 | str1.replace(str2,str3)将str1中的字串str2替换为str3 | 
| 大写 | str.upper()将字符串转为大写 | 
| 小写 | str.lower()将字符串转为小写 | 
| 拼接 | str1.join(str2)将str2中的每个字符以指定的字符串str1拼接组成一个新的字符串 | 
| 格式化输出 | 格式化操作 | 
格式化操作符如下:
| 符 号 | 描述 | 
|---|---|
| %c | 格式化字符及其ASCII码 | 
| %s | 格式化字符串 | 
| %d | 格式化整数 | 
| %u | 格式化无符号整型 | 
| %o | 格式化无符号八进制数 | 
| %x | 格式化无符号十六进制数 | 
| %X | 格式化无符号十六进制数(大写) | 
| %f | 格式化浮点数字,可指定小数点后的精度 | 
| %e | 用科学计数法格式化浮点数 | 
| %E | 作用同%e,用科学计数法格式化浮点数 | 
| %g | %f和%e的简写 | 
| %G | %f 和 %E 的简写 | 
| %p | 用十六进制数格式化变量的地址 | 
str1 = "helloworld"
str2 = "hello"
print(str1.split("o"))
print(str1.replace("world","long"))
print(str1.upper())
print(str1.lower())
print("-".join(str1))
name = "龙"
age = 199
print("我的名字是%s,年龄是%d" % (name,age))
a = Hello,b=Python
| 操作符 | 描述 | 实例 | 
|---|---|---|
| + | 字符串连接 | a + b 输出结果: HelloPython | 
| * | 重复输出字符串 | a*2 输出结果:HelloHello | 
| [] | 通过索引获取字符串中字符 | a[1] 输出结果e | 
| [ : ] | 截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。 | a[1:4] 输出结果ell | 
| in | 成员运算符 - 如果字符串中包含给定的字符返回 True | 'H' in a 输出结果 True | 
| not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | 'M' not in a 输出结果 True | 
| r/R | 可以避免输出转义字符 | print(r'\n') print(R'\n') 输出结果为\n | 
列表是一个有序的数据结构,其中的元素可以为任意类型,可以随时修改数据
列表声明使用[]操作符,其中的元素使用,分割
list1 = [1,2,3,"4"]
print(list1)
| 函数 | 作用 | 
|---|---|
| append() | list.append(item),将元素item添加至列表list尾部 | 
| insert() | list.insert(item,index),将元素添加至列表list指定位置 | 
| extend() | list.extend(obj),将可迭代对象obj的每个元素逐个插入列表尾部 | 
list1 = [1,2,3,4]
list1.append(5)
print(list1)
list1.insert(0,0)
print(list1)
list2 = [6,7]
list1.extend(list2)
print(list1)
| 函数 | 作用 | 
|---|---|
| pop() | list.pop(index)删除指定位置元素,index默认是最后一位元素 | 
| remove() | list.remove(obj)删除给定的第一个出现的obj元素 | 
list1 = [1,2,3,4]
list1.pop()
print(list1)
list1.pop(0)
print(list1)
list1.remove(3)
print(list1)
| 函数 | 作用 | 
|---|---|
| index() | list.index(obj)返回给定元素obj第一次出现位置的下表 | 
list1 = [1,2,3,4]
print(list1.index(1))
| 函数 | 作用 | 
|---|---|
| sort() | list.sort( key=None, reverse=False) 对列表排序默认升序排列 | 
list1 = [6,2,3,4]
list1.sort()
print(list1)
list1.sort(reverse = True)
print(list1)
| 函数 | 作用 | 
|---|---|
| reverse() | list.reverse()将列表中的元素进行逆置 | 
list1 = [1,2,3,4]
list1.reverse()
print(list1)
| Python 表达式 | 结果 | 描述 | 
|---|---|---|
| len([1, 2, 3]) | 3 | 长度 | 
| [1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 | 
| ['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 | 
| 3 in [1, 2, 3] | True | 元素是否存在于列表中 | 
| for x in [1, 2, 3]: print(x, end=" ") | 1 2 3 | 迭代 | 
元组也是一个有序的序列,一但被创建,无法更改。
元组数据使用小括号包裹,各个元素之间用,分割,若元组只有一个元素,则元组末尾要加,标识符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
与list一致,使用[startIndex:endIndex]操作
| Python 表达式 | 结果 | 描述 | 
|---|---|---|
| len((1, 2, 3)) | 3 | 计算元素个数 | 
| (1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 连接 | 
| ('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | 复制 | 
| 3 in (1, 2, 3) | True | 元素是否存在 | 
| for x in (1, 2, 3): print x, | 1 2 3 | 迭代 | 
字典有以下特性:
dict = {'a':1,'b':2}
print(dict)
| 操作 | 作用 | 
|---|---|
| dict['key']=value | 向字典添加元素,若键已存在,则更新值 | 
dict = {'a':1,'b':2}
print(dict)
dict['a'] = 3
print(dict)
dict['c'] = 4
print(dict)
| 操作 | 作用 | 
|---|---|
| dict.get('key',default=None) | 获取键对应的值,若键不存在返回设置的默认值 | 
| dict.items() | 返回一个包含所有键值元组的列表 | 
| dict.keys() | 返回一个所有键组成的列表 | 
| dict.values() | 返回一个所有值组成的列表 | 
dict = {'a':1,'b':2}
print(dict.get('a'))
print(dict.get('c',"不存在"))
print(dict.items())
print(dict.keys())
print(dict.values())
| 操作 | 作用 | 
|---|---|
| update() | dict.update(dict1)根据dict1更新dict | 
dict = {'a':1,'b':2}
dict1 = {'a':3,'c':4}
dict.update(dict1)
print(dict)
| 操作 | 作用 | 
|---|---|
| dict.pop(key) | 删除并返回key的对应值 | 
| dict.popitem() | 随机删除并返回一个键值对 | 
| dict.clear() | 清空字典 | 
dict = {'a': 3, 'b': 2, 'c': 4}
print(dict.pop('a'))
print(dict)
print(dict.popitem())
print(dict)
dict.clear()
print(dict)
集合的特点:
空集合使用set()标明,不能直接使用{},因为{}表示一个空字典
# 声明一个集合
set1 = {1,2,3}
print(set1)
#声明一个空集合
set2 = set()
print(set2)
#使用set()声明集合
set3 = set([1,2,3,4])
print(set3)
| 操作 | 作用 | 
|---|---|
| set.add(obj) | 添加元素,若元素已经存在则不做任何操作 | 
| set.update(obj) | 添加对象可以是列表、字典等,且可以是多个,用逗号隔开 | 
set1 = set([1])
# 添加元素
set1.add(2)
print(set1)
# 添加列表
set1.update([3,4],[5,6])
print(set1)
# 添加元组
set1.update((3,4),(7,8))
print(set1)
# 添加字典
set1.update({'a':1},{'b',9})
print(set1)
| 操作 | 作用 | 
|---|---|
| set.remove(obj) | 删除指定元素obj,obj不存在会抛出异常 | 
| set.discard(obj) | 删除指定元素obj,obj不存在不抛出异常 | 
| set.clear() | 清空集合 | 
| set.pop() | 随机删除一个元素 | 
set1 = {1,2,3,4,5,6}
# 删除元素
set1.remove(1)
print(set1)
set1.discard(1)
print(set1)
# 随机删除元素
set1.pop()
print(set1)
#清空集合
set1.clear()
print(set1)
| 操作 | 作用 | 
|---|---|
| set1 & set2 | 求交集,得到集合中两个相同的元素 | 
| set1 ^ set2 | 求对称差集,得到两个集合中不同的元素 | 
| set1 I set2 | 求并集,得到两个集合所有的元素 | 
| set1 - set2 | 求差集,set1中包含而set2不包含 | 
set1 = set([1,2,3,4])
set2 = set([3,4,5,6])
# 交集
print(set1 & set2)
#并集
print(set1 | set2)
#差集
print(set1 - set2)
#对称差集
print(set1 ^ set2)