Python大纲

Python大纲

1. 基础

环境搭建与基本语法

2.数据结构

字符串、列表、元组、集合、字典
定义、操作、方法、生成式

2.1 Python内置数据结构

分为三种类型:
序列(Sequence):字符串、列表(可变)、元组
集合(Set):可变/不可变集合
映射(Mapping):字典

2.1.1 列表 List

有序、可变

# 创建
lst = [1, 2, 'list', 1.414]
lstfruit = ['apple', 'banana']
# 添加
lst.append('hello')
lst.extend(lstfruit)
lst.insert(1, 0)
lst.insert(-1, 999)
# 删除
lst.remove(0)
lst.remove(lst[0])
lst.pop(2)
del lst[0:2]
lst.clear()
# 修改
lst[0] = ('orange')
lst2 = lst.copy()
# 访问
print(lst[3])
print(lst.index('list'))
# 切片
print(lst[1:4])

# 反转
lst.reverse()
lst[::-1]
# 排序
lst.sort()
2.1.2 元组 Tuple

有序、不可变

# 创建
tup = (1, 2, 3, 'Hello')
# 访问
print(tup[3])
# 切片
print(tup[:2])

# 反转
tup[::-1]
# 解包
A, B, C, D = tup	# 将元组中个元素分别赋值给对应变量
2.1.3 集合 Set

无序、可变、唯一(集合中的元素唯一不可重复)

# 创建
set1 = {1, 2, 4, 'Hello'}
set_f = frozenset([3,2,3,‘one’,frozenset([1,2]),True]) 
# 添加
set1.add(6)
# 删除
set1.remove(2)
set1.discard(2)

# 集合操作
set2 = {4, 6, 9}
set1.union(set2)	# 并集
set1.intersection(set2)	# 交集
set1.difference(set2) # 差集
set1.symmetric_difference(set2)  # 异或
set1.issuperset(set2)  # 判断set1是否是set2的超集
2.1.4 字典 Dictionary

无序、可变、键值对

# 创建
dic = {'name': 'Alice', 'age': 25, 'language': 'Python'# 添加
dic['country'] = 'Wonderland'
dic.update({'weight': 50, 'sexual': 'female'})
# 删除
del dic['language']
dic.pop('sexual')
dic.clear()
# 修改
dic['age'] = 26
# 访问
print(dic['name'])

# 返回所有键/值
dic.keys()
dic.values() 
# 返回一个包含所有(键、值)元组的列表
dic.items()
# 判断键是否存在
dic.has_key('name')
# 遍历
for key, value in dic.items():
	print(f"{key}: {value}")

3.函数与模块

3.1 函数

3.1.1 函数参数
###############参数缺省###############
def addnum(a = 0, b = 1):
	c = a + b
	print c

if __name__ == '__main__':
	addnum(2, 4)	# 参数缺省,可以设置参数默认值,带有默认值的参数需放在参数列表后面
###############不定长参数###############
# *args会存放所有未命名的变量参数,为元组
# **kwargs会存放命名键值对参数,为字典
def func(a, b, *args, **kwargs):
    print("a=%d" % a)
    print("b=%d" % b)
    print("args:")
    print(args)
    print("kwargs:")
    for key, value in kwargs.items():
        print("key=%s" % value)

if __name__ == '__main__':
	q = 99
    func(1, 2, 3, 4, 5, q, m=6, n=7, p=8)

tips
缺省参数放在*args后面;**kwargs放在最后面

def func(a, *args, b = 11, c = 22, **kwargs):
	print(a)
	print(b)
	print(c)
	print(args)
	print(kwargs)
if __name__ == '__main__':
    func(1, 2, 3, 4, 5, b = 999, c = 666, m=6, n=7, p=8)
3.1.2 返回值与全局/局部变量
def func(a, b):
	div = a / b
	plus = a + b
	return div, plus	# 默认返回元组;return后面可以是列表、字典等数据类型
# 函数内部默认不能修改全局变量
a = 1
def func1():
	a = 2
	print(a)
def func2():
	print(a)

if __name__ == '__main__':
	func1()
	func2()
####输出结果:2  1
# 使用函数修改全局变量
a = 1
def func1():
	global a
	print("a0= %d" % a)
	a = 2
	print("a1= %d" % a)
def func2():
	print("a2= %d" % a)

if __name__ == '__main__':
	func1()
	func2()
####输出结果a0= 1;a1= 2;a2= 2
3.1.3 拆包、交换变量
# 对返回的数据直接拆包
def get_my_info():
	height = 170
	weight = 110
	age = 23
	return height, weight, age

if __name__ == '__main__':
	my_height, my_weight, my_age = get_my_info()	# 左右个数须一致
	print(my_height)
	print(my_weight)
	print(my_age)
# 交换变量
a = 1
b = 2
a = a + b
b = a - b
a = a - b

c, d = 4, 5
c, d = d, c
3.1.4 引用
def test1(b):  # 变量b一定是一个局部变量,就看它指向的是谁?可变还是不可变
    # b += b  # += 是直接对b指向的空间进行修改,而不是让b指向一个新的
    b = b+b  # xx = xx+yyy 先把=号右边的结果计算出来,然后让b指向这个新的地方,不管原来b指向谁
    print(b)            # 现在b一定指向这个新的地方
    print(id(b))
# a = [11, 22]
a = 100
test1(a)
#测试一下
print(a)
print(id(a))

3.2 模块

一个.py文件就可以称之为一个模块(Module)
分类:
内置标准模块(标准库) [ help(‘modules’)查看所有自带模块列表 ]
第三方开源模块 可通过 pip install 联网安装
自定义模块

3.2.1 模块的导入与调用
# 模块1
# mod1.py
num = 20
import mod1
print(mod1.num)
from mod1 import num
print(num)
from mod1 import num as a
print(a)

*和__all__
Python中使用from module_name import *表示导入模块中的所有内容;
使用from module_name import __all__限制导入的内容。

# 模块1
# mod2.py
__all__ = ['func1', 'func2']
def func1():
	print("func1")
def func2():
	print("func2")
def func3():
	print("func3")

if __name__ == '__main__;:
	func3()
from mod2 import *
func1()
func2()
func3()	# 会提示报错Unresolved reference 'func3'
3.2.2 标准库
os:与操作系统交互的功能;如文件和目录操作、环境变量访问等。
sys:对Python解释器和运行时环境的访问与控制。
datetime:包含处理日期和时间的类与函数,包括日期计算、格式化、解析等。
math:提供数学函数和常量;如三角函数、指数函数、对数函数等。
random:用于生成伪随机数的功能,包括随机数生成器、随机样本选择等。
json:用于处理JSON(JavaScript Object Notation)数据的编码、解码和操作。
re:正则表达式的匹配和操作。
csv:用于读写CSV(Comma-Separated Values)格式的文件。
urllib:用于进行URL请求和操作,包括HTTP、FTP等。
sqlite3:提供与SQLite数据库进行交互的功能,包括连接、查询、执行事务等。
collections:提供额外的数据类型,如defaultdict、Counter等,用于数据集合的高效操作。
itertools:提供用于迭代操作的函数,如排列组合、循环迭代等。
logging:用于记录日志信息和调试信息的功能,支持多种日志级别和输出方式。
time:提供与时间相关的功能,如获取当前时间、暂停程序执行等。
socket:用于进行网络通信,包括建立TCP、IP连接、发送和接收数据等。
import os
# 获取当前工作目录
current_dir = os.getcwd()
# 创建新目录
new_dir = "my_directory"
os.mkdir(new_dir)
# 遍历目录中的文件夹和子目录
for root, dirs, files in os.walk(current_dir):
	print("当前目录:", root)
	print("子目录:", dirs)
	print("文件:", files)
from datetime import datetime, timedelta
# 获取当前时间
current_time = datetime.now()
print("当前时间:", current_time)
# 格式化日期时间字符串
formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
print("格式化时间:", formatted_time)
# 计算日期差值
future_date = current_time + timedelta(days=7)
days_diff = (future_date - current_time).days
print("未来日期:", future_date)
print("日期差值(天数):", days_diff)
import random
# 生成随机整数
rand_num = random.randint(1, 10)
print("1-10的随机整数:", rand_num)
# 从列表中随机选择一个元素
lst = ["apple", "banana", "cherry"]
rand_item = random.choice(lst)
print("随机选择元素:", rand_item)
# 打乱列表顺序
random.shuffle(lst)
print("打乱顺序后的列表:", lst)
import math
# 数学常量
print(math.pi)
# 数学函数
print(math.sqrt(16))
print(math.ceil(3.7))   # 向上取整
print(math.floor(3.7))  # 向下取整

print(math.sin(math.pi/2))
print(math.cos(math.pi))
print(math.tan(0))

print(math.log(10)) # 自然对数函数,默认底数为 e
print(math.log10(100))

print(math.degrees(math.pi/2))  # 弧度转角度
print(math.radians(180))    # 角度转弧度

print(math.factorial(5))    # 阶乘
import sys
# 获取命令行参数列表
print(sys.argv)  # 输出当前脚本的命令行参数列表
# 获取命令行参数个数
print(len(sys.argv))
# 强制退出程序
# sys.exit()  # 程序立即退出
# 获取Python解释器版本信息
print(sys.version)  # 输出Python解释器的版本信息字符串
print(sys.version_info)  # 输出Python解释器的版本信息元组
# 获取操作系统平台信息
print(sys.platform)  # 输出当前操作系统的平台标识符
# 获取模块搜索路径
print(sys.path)  # 输出Python解释器搜索模块的路径列表
# 获取模块的引用计数
import math
print(sys.getrefcount(math))  # 输出math模块的引用计数
# 标准输入输出
sys.stdout.write('Hello, World!\n')  # 使用后标准输出打印文本
sys.stdin.readline()  # 从标准输入读取一行文本
# 执行程序时的警告设置
sys.warnoptions.append('ignore')   # 忽略所有警告信息
# 运行时异常处理
try:
    1/0
except:
    exc_type, exc_value, exc_traceback = sys.exc_info()  # 获取当前一场信息
    print(exc_type, exc_value)

4.面向对象编程

类与对象;继承与多态;特殊方法

5.文件操作

6.异常处理

7.Python标准库

8.高级主题

迭代器与生成器、装饰器、上下文管理器、多线程与多进程

9.数据库操作

10.Web开发基础

Flask框架、Django框架

11.项目实践

Git版本控制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值