目录
一、基本概念
语法突出:编辑器以各种方式突出程序的不同部分
(一)变量
变量的命名和使用
1、 变量名只能包含字母、数字、下划线。可以以字母或下划线开头,不能以数字开头
2、 不能包含空格,分隔单词可以使用下划线
3、 变量名不能是关键字或函数名
建议性规则
1、变量名应简短又具有描述性;
2、 慎用小写字母i和大写字母o,容易与数字1和0混淆。
3、 避免使用大写字母
(二)字符串
用引号括起的都是字符串,单引号、双引号都可以
1. 修改字符串的大小写
title() ——以首字母大写的方式显示单词
upper() ——将字符串改为全部大写
lower() ——将字符串改为全部小写
2.合并(拼接)字符串
使用加号(+)来拼接字符串
3.添加空白
\t 添加制表符
\n 换行
\n\t 换到下一行,并在下一行开头添加一个制表符
4.删除空白
rstrip() —— 删除字符串末尾的空白
lstrip() —— 删除字符串开头的空白
strip() —— 删除字符串两端的空白
(三)数字
1.整数
使用两个乘号(**)表示乘方运算
2.浮点数
带小数点的数字都称为浮点数
3.函数str()
将非字符串值表示为字符串
(四)注释
注释用井号(#)标识,#后面的内容会被编辑器忽略
二、数据类型
(一)元组
-
列表是可以修改的,不可变的列表称为元组;
-
元组使用圆括号来标识,可以用索引来访问其元素;
-
元组变量不能直接修改,只能给存储元组的变量重新赋值。
(二)字典
-
字典是一种映射类型,它的元素是键值对;
-
字典的关键字必须为不可变类型,且不能重复;
-
创建空字典使用 { };
-
字典是无序的。
1.字典的常见方法
方法或操作 | 功能描述 |
---|---|
dicts.keys() | 返回字典的键 |
dicts.values() | 返回字典的值 |
dicts.items() | 返回字典的键值对 |
dicts.get(key,defualt) | 键存在则返回相应值,否则返回默认值 |
dicts.pop(key,defualt) | 键存在则返回相应值,同时删除键值对,否则返回默认值 |
dicts.popitem() | 随机从字典中取出一个键值对,以元组(key,value)的形式返回 |
dicts.clear() | 删除所有的键值对 |
key in dicts | 如果键在字典中返回True,否则返回False |
dicts.copy() | 复制字典 |
dicts.update(dict2) | 更新字典,参数dict2为更新的字典 |
get()、 pop ()、popitem () 方法
-
通过 get()方法可以返回键对应的值。如果 key 不存在,返回空值。 default 参数可以指定键不存在时的返回值。
-
通过 pop()方法可以从字典中删除键,并返回对应的值。如果 key 不存在,返回 default 值,如果未指定 default 参数,则代码运行时会产生异常。
-
通过 popitem ()方法可以从字典中删除并返回键值对。字典为空时,会产生 keyerror 异常。
copy()和 update ()方法
-
通过 copy()方法可以返回一个字典的复本,但新生的字典与原字典的 id 是不同的,用户修改一个字典对象时,不会对另一个字典对象产生影响。
-
通过 update()方法可以使用一个字典更新另一个字典,如果两个字典有相同的键存在,则键值对会进行覆盖。
(三)集合
1.概念
集合(set)是一个无序的不重复元素序列。它是可迭代的,没有重复元素(每个元素都是唯一的)。
-
集合中的元素不能重复;
-
集合中的元素是不可变的(不能修改),但整个集合是可变的;
-
没有索引附加到python集中的任何元素。因此,它们不支持任何索引或切片操作。
2.操作
2.1 创建集合
set 的创建可以使用{ },也可以使用 set 函数,定义空集合只能用set()方法
l1 = set()
print(l1,type(l1)) # set() <class 'set'>
l1 = set('123456789')
print(l1,type(l1)) # {'3', '4', '1', '5', '2', '6', '9', '7', '8'} <class 'set'>
l2 = {1,2,3,4,5,6,7,8,9}
print(l2,type(l2)) # {1, 2, 3, 4, 5, 6, 7, 8, 9} <class 'set'>
l3 = set('112234456')
print(l3,type(l3)) # {'2', '3', '1', '5', '4', '6'} <class 'set'>
# 重复元素被删除掉
2.2 遍历集合
print(l3) # {'6', '1', '4', '3', '2', '5'}
for i in l3:
print(i,end=" ") # 6 1 4 3 2 5
2.3 添加元素 add()
"""添加元素"""
l3 = {'6', '1', '4', '3', '2', '5'}
l3.add(7)
l3.add(9)
l3.add(8)
print(l3) # {'6', 7, 8, 9, '2', '1', '3', '4', '5'}
2.4 删除元素 remove()
"""删除元素"""
l3 = {'6', '7', '8', '9', '2', '1', '3', '4', '5'}
# remove 方法 ,要删除的元素不存在时,就会报错
l3.remove('2')
l3.remove('5')
l3.remove('10') # KeyError: '10'
print(l3) # {'6', '4', '3', '1', '8', '9', '7'}
# discard 方法
l3.discard('2') # 删除不存在的元素时不会报错
l3.discard('3')
print(l3) # {'6', '4', '1', '8', '9', '7'}
2.5 交集、并集、差集
"""交集、并集、差集"""
l1 = {2,3,5,7,9}
l2 = {1,4,5,6,8,9}
print(l1|l2) # 并集 {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(l2-l1) # 差集 {8, 1, 4, 6}
print(l1-l2) # {2, 3, 7}
print(l1&l2) # 交集 {9, 5}
2.6 issubset()方法
"""判断是否为子集"""
l1 = {2,3,5,7,9}
l2 = {1,4,5,6,8,9}
l3 = {1,5,8}
print(l1.issubset(l2)) # False
print(l3.issubset(l2)) # True
(四)列表、元组、字典的区别
- 列表储存值,是有序的、可遍历的,可以修改;
- 元组有序、可遍历,不可修改;
- 字典用键值对的方式表示,无序、可遍历,可以修改;
- 集合,是一个无序的不重复序列。
list和dict的区别
dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。dict是直接在内部计算出key对应的value存放的内存地址,直接取出来,所以查找速度非常快。list是通过遍历整个列表,返回该值的下标。
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
dict是用空间来换取时间的一种方法。
注意:
- dict的key必须是不可变对象。这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
- 要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key。
(五)列表
列表由一系列按照特定顺序排列的元素组成,用方括号[ ]来表示列表,并用逗号(,)来分隔元素
1.访问列表元素
格式:
列表名[索引]
2.列表索引
第一个列表元素的索引为0,索引-1返回列表的最后一个元素,索引-2返回列表倒数第二个元素,以此类推。
3.使用列表中的值
list = ['张三','29','男','未婚']
print(f'{list[0]},性别{list[2]},今年{list[1]}岁,婚姻状态是{list[3]}')
#张三,性别男,今年29岁,婚姻状态是未婚
4.修改、添加和删除元素
4.1 修改列表元素
4.2 添加列表元素
append() 在列表末尾添加元素
insert() 在列表中插入元素,需要指定新元素的索引和值
a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。
4.3 从列表中删除元素
del语句
- 需要知道要删除的元素在列表中的位置,例如:del a[2],表示删除列表a中的第3个元素;
- list.clear(): 移除列表中的所有项,等于del a[:]。
pop()
- 删除列表末尾的元素,并能继续使用该元素。列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素,pop()方法有返回值,返回值即为栈顶元素。
- 可以使用pop()弹出任意位置的元素,只需要在括号里加上元素的索引,例如:a.pop(2)表示弹出列表a中的第三个元素。
remove()
- 不知道元素的位置,只知道元素的值,可以使用remove()方法。
5.组织列表
5.1 sort()
- sort() 按首字母顺序排列,永久性修改。
- 向sort() 传递参数reverse=True,则列表按与字母相反的顺序排列
5.2 sorted()
- 对列表临时排序(字符里大小写都有时情况比较复杂)
5.3 reverse()
- 倒着打印列表,永久性修改
5.4 len()
- 确定列表的长度,有返回值
5.5 list.copy()
- 返回列表的浅复制,等于a[:]
6.操作列表
6.1 遍历
- for 循环:对于for循环,每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次。
list = [1,2,3,4,5,6,7,8]
for i in list:
print(i,end=" ")
#1 2 3 4 5 6 7 8
6.2 range()
- range()方法的作用是生成随机整数,从指定的第一个数值开始数,到指定的第二个数值后停止,左闭右开。
for i in range(0,9):
print(i,end=",") # 0,1,2,3,4,5,6,7,8,
- 使用range() 创建数字列表:可以使用list() 函数直接将range() 的结果转换为列表,将range() 作为list() 的参数即可。
num = list(range(1,9))
num1 = list(range(1,9,2)) #指定步长
print(num,num1) #[1, 2, 3, 4, 5, 6, 7, 8] [1, 3, 5, 7]
6.3 列表解析
#使用列表公式
numbers = [i**2 for i in range(1,9)]
print(numbers) #[1, 4, 9, 16, 25, 36, 49, 64]
6.4 列表切片
# 列表切片
l1 = num[2:] #[3, 4, 5, 6, 7, 8]
l2 = num[:4] #[1, 2, 3, 4] 左闭右开
l3 = num[:] #[1, 2, 3, 4, 5, 6, 7, 8]
print(l1,l2,l3)