# 字典循环: dic.keys() | dic.values() | dic.items()
for k, v in dic.items():
print(k, v)
# 字典嵌套
# [1, 2, 3]
# {k1:v1, k2:v2}
info = {
'学生们': [
{
'name': 'Bob',
'age': 18,
},
{
'name': 'Tom',
'age': 18,
}
],
'老师们': [
{
},
{
}
],
}
for k, v in info.items():
if k == '学生们':
for stu in v:
print(stu)
字符编码
# ascii => 各国自己独有的编码(GBK), 兼容ascii => unicode -- utf-8|utf-16
# 以后文本类型数据采用编码:utf-8
# python2默认采用ascii编码表
# python3默认采用utf-8
# 在文件最上方可以通过 # encoding: 编码名来规定文件解码的编码表 -- 文件头
# 在py3以后的开发环境,所有文件采用utf-8编码存储,py3默认也是采用utf-8读取文件,所有可以省略文件头
# u'' = encode('utf-8') > b''
# b'' = decode('utf-8') > u''
文件操作
# 打开文件
f = open(r'文件路径', '文件的操作模式', encoding='utf-8')
# 使用文件
f.read()
f.write()
# 关闭文件
f.close()
# 文件操作模式:r -- 文件必须提前存在,否则抛出异常
# 1.按字符进行操作
# 2.read():读所有内容 | read(10):对指定字符长度
# 3.readline(): 一次读一行
# 4.readlines(): 将文件一行一行读到list中
f = open(r'文件路径', 'r', encoding='utf-8')
基础写
# 文件操作模式:w -- 文件不存在就新建,存在就清空
# 1.按字符进行操作
# 2.write('写入第1行\n写入第2行\n')
# 3.flush(): 将之前写入到内存中的数据刷新到硬盘中
# 4.writelines(list):list中存放的是一条条文件内容,需要明确\n标识换行 writelines(['111\n', '222\n'])
with语法
# 操作系统对文件的支持权由with自动管理释放
with open('file.txt', 'r', encoding='utf-8') as f: # 不需要明文书写f.close()
data = f.read()
print(data)
操作模式
'''
主模式:
r: 文件必须存在的读
w: 文件无需存在的写,无创建,有清空再写
a: 文件无需存在的写,无创建,有在文件最后追加写
从模式:
t: 按文本字符操作数据(默认模式)
b: 按文本字节操作数据
+: 可读可写
了解:
x:新建文件写,如果文件已存在,抛异常
'''
'''
rt | wt | at == r | w | a
rb | wb | ab
rt+ | wt+ | at+ == r+ | w+ | a+
rb+ | wb+ | ab+
'''
游标操作
# 大前提:seek一定在b模式下进行操作,因为seek移动是按字节进行操作
# f.seek(偏移量,操作位置)
f.seek(5, 0) # 从开始往后偏移5个字节
f.seek(-1, 1) # 从当前位置向前偏移1个字节
f.seek(1, 1) # 从当前位置向后偏移1个字节
f.seek(-5, 2) # 从末尾向前偏移5个字节
文件的遍历
# 最常用读写
with open('source', 'r', encoding='utf-8') as f1, open('target', 'w', encoding='utf-8') as f2:
for line in f1:
f2.write(line)
函数入门
# 函数:用来完成特定功能的代码块,类似于工具,可以重复不但的去使用
# 为什么要有函数
# 1. 避免代码的冗余
# 2. 让程序代码结构更加清晰
# 3. 让代码具有复用性,便于维护
# 定义函数的语法
'''
def 函数名(参数列表):
函数体
return 返回值
'''
# 调用函数的语法
# 函数名(参数列表)
函数四部分
'''
1. 函数名:使用该函数的依据
2. 函数体:完成功能的代码块
3. 返回值:功能完成的反馈结果
4. 参数:完成功能需要的条件信息
'''
重点
'''
1. 什么是字符编码:将人识别的字符转换计算机能识别的01,转换的规则就是字符编码表
2. 常用的编码表:ascii、unicode、GBK、Shift_JIS、Euc-kr
3. 编码操作:编码encode()、解码decode()
'''
知识储备
# 电脑三大核心:cpu - 内存 - 硬盘(数据的存取过程)
# 软件及python解释器读取文件过程:启动 - 读取 - 展示|解释执行
# python2环境的文件头:# coding: 编码格式
简介与发展
'''
1. ascii - 各国编码 - 万国编码
2. 存取不一致的乱码现象
3. unicode与utf-8
'''
核心
# 编码操作:编码encode()、解码decode()
字符与字节
重点
'''
1. 字节的存储方式:8个二进制位
2. 字符所占字节数:根据编码的不同,所占字节数可能不同
3. 三种格式字符串:u''、b''、r''
'''
了解
'''
u、b格式字符串转换: str(b'', encode='utf-8')、bytes(u'', encode='utf-8')
'''
文件操作
重点
'''
1. 文件操作的三步骤:打开文件 - 使用文件 - 关闭文件
2. 文件操作三要素:文件源、操作模式、编码
3. with语法:with open(...) as 别名, ..., open(...) as 别名: pass
4. 重点方法:read() | write() | readline() | close() | f.flush() | f.seek()
'''
操作模式
'''
主模式:r | w | a
从模式:b | t | +
了解:x | U
'''
操作方法
'''
读:read() | readline() | readlines()
写:write() | writelines() | flush()
光标:seek() | tell()
特征:encoding | closed
了解:readable() | writable() | name
'''
案例
'''
1. 文件复制
2. 文件修改
了解:py文件脚本机制
'''
函数初级
简介
# 函数是一系列代码的集合,用来完成某项特定的功能
优点
'''
1. 避免代码的冗余
2. 让程序代码结构更加清晰
3. 让代码具有复用性,便于维护
'''
函数四部分
'''
1. 函数名:使用该函数的依据
2. 函数体:完成功能的代码块
3. 返回值:功能完成的反馈结果
4. 参数:完成功能需要的条件信息
'''
函数的定义与调用的完整语法
# 1、定义
# def 是声明函数的关键字,后面跟着函数名,括号内是函数的参数
def 函数名(参数1,参数2,参数3,...):
'''注释'''
函数体 # 函数体写具体的逻辑代码
return 返回的值 # retrun后面是函数的返回值,是函数体代码的运行成果
# 2、调用
函数名(参数1,参数2,参数3,...)
'''注:
-- 先定义再调用
-- 函数名存放的是函数地址
-- ()会触发函数体的执行
-- 函数执行完毕得到的是函数的返回结果,通常称之为函数的返回值,也称函数值
'''
函数详解
根据函数体划分
-
空函数:用来罗列功能
# 空函数指的是函数体用pass占位,pass代表什么也不做
def func():
pass
# func():调用后什么是都不干
-
非空函数:正常可以完成某项功能
def func():
print('非空函数')
# func():调用后执行函数体
根据参数列表划分
-
无参函数:不需外界资源
def start():
print('系统启动')
-
有参函数:需要外键资源
def login(usr, pwd):
if usr == 'owen' and pwd == '123':
print('登录通过')
else:
print('登录失败')
根据返回值划分:return是用来结束函数的
-
空返回:返回None
def demo(x, y):
print( x + y )
def demo(x, y):
print( x + y )
return
-
一值返回
def demo(x, y):
return x + y
-
多值返回
def demo(x, y):
return x + y, x - y, x * y, x / y