目录
0、pycharm快捷键
1、输入
2、输出
3、标准数据类型
4、运算符
5、顺序、选择、循环结构
6、列表list
7、字典dict
7、集合set
8、元组 tuple()
9、赋值、浅拷贝和深拷贝
10、函数
11、filter和map方法
12、装饰器
13、模块
14、面向对象基础
15、文件操作
16、正则表达式
17、python操作word、Excel、ppt、pdf文件
0、pycharm快捷键
注释代码 Ctrl+/
复制行 Ctrl+ d
全局搜索:敲两下Shift
移动行 shift+alt+上/下
1、输入
int(input(“请输入数据:”))
2、输出
print("xxx")
def print(self, *args, sep=' ', end='n', file=None): # known special case of print
"""
print(value, ..., sep=' ', end='n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
"""
3、标准数据类型
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)' '
- List(列表)[]
- Tuple(元组)() 元组不可修改
- Set(集合){}无序,每一次输出都随机,无重复元素,无法通过下标访问修改
- Dictionary(字典){}
Python3 的六个标准数据类型中:
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
4、运算符
Python 语言支持以下类型的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
5、顺序、选择、循环结构
6、列表list
list1 = ['兰博基尼', '坦克300', True, False, 666]
for i in list1:
print(i)
# 列表添加元素
list1.append('秦始皇')
list1.extend(['康熙', '乾隆']) # 不会改变维度,追加一个元素,extend会进行拆分
list1.insert(1, '曹操')
print(list1)
# 删除元素
list2 = ['西游记', '三国演义', '红楼梦', '水浒传']
list2.pop()
list2.remove('红楼梦')
list2.clear() # 清空列表
# 列表元素的排序
list3 = [5, 1, 2, 8, 3, 19]
list3.sort() # 默认升序 reverse=True是降序
list4 = sorted(list3, reverse=True) # 新列表 key=len按长度排序
list4.reverse()
len(list4)
print(max(list4))
print(list4.index(5))
print(list4)
# 列表生成式
list5 = []
for i in range(1, 6):
list5.append(i**2)
print(list5)
list6 = [i**2 for i in range(1, 6)]
list7 = [i for i in range(1, 11) if i % 2 == 1]
print(list6)
print(list7)
7、字典dict
dict1 = {'name': '张三', 'age': 18, 'sex': 1, 'school': 'wit'}
print(dict1)
# 访问元素
print(dict1['name'])
print(dict1.get('name'))
# 删除元素
dict1.pop('age')
dict1.popitem() # 删除最后一个
# 清空
dict1.clear()
# 获取长度、keys、values
# 遍历
'''
普通遍历的是key
enumerate
items
values
'''
# 合并字典 update
7、集合set
list1 = ['兰博基尼', '坦克300', True, False, 666]
for i in list1:
print(i)
# 列表添加元素
list1.append('秦始皇')
list1.extend(['康熙', '乾隆']) # 不会改变维度,追加一个元素,extend会进行拆分
list1.insert(1, '曹操')
print(list1)
# 删除元素
list2 = ['西游记', '三国演义', '红楼梦', '水浒传']
list2.pop()
list2.remove('红楼梦')
list2.clear() # 清空列表
# 列表元素的排序
list3 = [5, 1, 2, 8, 3, 19]
list3.sort() # 默认升序 reverse=True是降序
list4 = sorted(list3, reverse=True) # 新列表 key=len按长度排序
list4.reverse()
len(list4)
print(max(list4))
print(list4.index(5))
print(list4)
# 列表生成式
list5 = []
for i in range(1, 6):
list5.append(i**2)
print(list5)
list6 = [i**2 for i in range(1, 6)]
list7 = [i for i in range(1, 11) if i % 2 == 1]
print(list6)
print(list7)
7、字典dict
dict1 = {'name': '张三', 'age': 18, 'sex': 1, 'school': 'wit'}
print(dict1)
# 访问元素
print(dict1['name'])
print(dict1.get('name'))
# 删除元素
dict1.pop('age')
dict1.popitem() # 删除最后一个
# 清空
dict1.clear()
# 获取长度、keys、values
# 遍历
'''
普通遍历的是key
enumerate
items
values
'''
# 合并字典 update
7、集合set
set1 = {2, 23, 45, 999, True}
print(set1)
# 长度
len(set1)
# 添加元素
set1.add(46)
set1.update([1, 2, 3])
# 删除元素
set1.pop() # 随机删除
set1.remove(2) # 会报错
set1.discard(99)
# 清空集合
set1.clear()
# 遍历集合
for i in set1:
print(i)
8、元组 tuple()
与列表相似,但是无法修改
tup = (1, 2, 3, 4, True, '宝宝') # 访问 # 切片 # 长度len(tup) # 获取max() min() # 其他数据类型转化为元组 list1 = [1,2,3] tuple(list1) print(type(list1))
9、赋值、浅拷贝和深拷贝
赋值:其实就是对象的引用(取别名)
import copy list1 = [1, 2, 3, '张三'] # 浅拷贝 list2 = list1.copy() print(list1, list2) list1[2] = '李四' print(list1, list2) # 深拷贝 用于多维列表 list3 = [1, 2, 3, ['老师', '学生'], 222] list2 = copy.deepcopy(list3)
10、函数
目的:重复的代码,便于程序维护
函数定义、for、while循环、if语句要加冒号:
def test():
for i in range(1, 11):
if i % 2 == 0:
print(i)
test()
# 函数可以赋值给其他变量
demo = test
demo()
# 不定长参数
# *args:用来接收多个位置参数,得到是元组,一般放在最后
def demo(name, *args):
print('my name is %s,my cars are %s' % (name, args))
demo('张三', '兰博基尼', '大奔')
# **kwargs:用来接收多个关键字参数(key word),得到是字典
def func(name, **kwargs):
print(name, kwargs)
func('李四', age = 12,money = '1w',say = 'hello')
# 函数的返回值
def func1():
return '我是返回值', '李四'
print(func1())
# 函数可以嵌套,也可以调用后面的函数
# 匿名函数
num1 = lambda num: num ** 2
print(num1(3))
# 回调函数
def add(x,y):
return x + y
def cha(a,b):
return a - b
def cheng(a,b):
return a * b
def chu(a,b):
return a / b
def function(a,b,fun):
return fun(a,b)
print('a,b之和为', function(2,3,cheng))
# 闭包函数:外部函数的返回值的内部函数
def outer():
def inner():
print('我是闭包函数')
return inner # 这里返回的是函数体,不是函数的调用
fn = outer() # fn等价于inner
fn() # fn()等价于inner()
11、filter和map方法
# filter 筛选,返回值是filter对象
age = [12, 18, 20, 31, 35, 56, 78]
list1 = filter(lambda ele: ele>30, age)
print(list1)
print(list(list1))
# map 适合把每个数据进行操作
list2 = map(lambda ele: ele + 3, age)
print(list(list2))
12、装饰器
# def test():
# print('你好吗?')
"""
test = outer(test)
test()
"""
# 装饰器简洁写法
# 定义装饰器函数
def outer(fn): # fn是原函数
def inner():
fn() # 原函数
print('我很好!') # 新增功能
return inner
@outer # 等价于test = outer(test)
def test(): # 原函数必须在装饰器的下面
print('你好吗?')
test()
# 装饰器的其他用法
# 多个装饰器修饰一个函数:遵循就近原则
13、模块
# def test():
# print('你好吗?')
"""
test = outer(test)
test()
"""
# 装饰器简洁写法
# 定义装饰器函数
def outer(fn): # fn是原函数
def inner():
fn() # 原函数
print('我很好!') # 新增功能
return inner
@outer # 等价于test = outer(test)
def test(): # 原函数必须在装饰器的下面
print('你好吗?')
test()
# 装饰器的其他用法
# 多个装饰器修饰一个函数:遵循就近原则



