return
1.函数的返回值
a.return后面的值,如果没有return就是None
b.函数调用表达式的值
2.return关键字
a.返回值
b.结束函数
3.函数调用过程
a.先回到函数声明的地方
b.用实参给形参赋值(传参)
c.执行函数体
d.执行完函数体,就将返回值返回给函数调用者(函数调用表达式)
e.回到函数调用的位置,继续往下执行
模块
1.一个.py文件就是一个模块
2.import 可以通过import关键字导入其他的模块
import 模块名(.py文件名)
直接导入模块的时候,相当于将被导入模块内的内容粘贴到了import的位置
3.怎样使用模块中的内容?什么内容是可以用的。
import 模块名
模块名.的方式去使用模块中的内容
在模块中声明全局变量可以使用(普通变量,函数,类)
4.form 模块1 import 内容1,内容2 ···
使用内容的时候,不用再被导入的变量或者函数或者类前加模块名
from test10 import func1
func1()
结果:10
ok
5.阻止被导入的模块中的不必要的代码被粘贴到当前模块,一般情况下,除了函数的声明和类的声明以外,其他的代码都放在这个if里面
--name-- 是每个模块自带的一个属性,是用来保存当前这个模块的名字的
但是当正在执行的时候,这个属性的值是固定的'--main--'
#在这儿写当前模块中不需要被其他模块导入和粘贴的代码
if __name__=='--main--':
#这个里面的代码不会被其他模块使用
pass
6.使用as模块重命名
import 模块名 as 新的名字
from 模块名 import 函数名 as 新的函数名
form random import randint as my_rand
print(my_rand(1,2))
基本文件操作
所有文件操作流程:
打开文件-->操作文件-->(读/写)-->关闭文件
打开文件:open(文件路径,打开的方式,编码方式)
文件路径(必填)-->决定打开那个文件
打开方式(默认值是'r')-->决定打开文件后进行什么样的操作
'r'-读操作(读出来的是字符串)
'rb'/'br'-读操作(读出来的数据是二进制)
'w'-写操作(可以将文本数据写入文本中)
'wb'/'bw'-写操作(将二进制数据写入文本中)
'a'-写操作(追加)
编码方式-->主要针对文本文件的读写(不同的操作系统默认的文本编码方式不同,windows-->gbk,mac-utf-8)
1.文本文件读写
a.放到工程外面的文件,写绝对路径(文件在磁盘里的位置)
b.将文件放到工程目录下的某个位置,写相对路径(相对于工程项目) ./相对路径 或者 ../相对路径
当py文件直接放在工程目录下,想要使用open打开工程中的其他文件使用'./'
当py文件直接放在工程目录的子目录下,想要使用open打开工程中的其他文件使用'../'
例如:
open('./test1.txt')
open('./files/test2.txt')
1.打开文件
#打开文件,返回文件句柄(文件代言人)
f=open('./test1.txt','r',encoding='utf-8')
2.读文件(获取文件的内容)
#文件.read():获取文件内容,并返回
#read(n)-->n 设置读的长度
f.read()
content=f.read()
print(content)
3.#关闭文件
f.close()
3.文本文件的写操作
1.打开文件
注意:以读的方式打开文件,如果文件不存在,会报错FileNotFindError
以写的方式打开文件,如果这个文件不存在,就会创建这个文件
#打开文件
#'w'在写的时候会清空文件中原来的内容,然后再往里面写数据
#'a'在原文件的内容最后添加新的数据
f=open('./test1.txt','w',encoding='utf-8')
#写操作
f.write('疑是地上霜')
#关闭文件
f.close()
4.二进制文件的读写操作
音频,视频,图片文件,都是二进制文件
f=open('./day06/Teenager.jpg','rb')
#读文件
image_data=f.read
#bytes:python中二进制数据对应的数据类型
print(image_data)
#关闭文件
f.close()
二进制文件的写操作
f=open('./Teenager.jpg','rb')
#读文件
image_data=f.read
#bytes:python中二进制数据对应的数据类型
print(image_data)
#关闭文件
f.close()
f=open('./new.jpg','wb')
f.write(image_data)
f.close()
4.通过关键字去打开文件
with open() as 文件变量名:
文件操作
文件操作结束后会自动去关闭文件
json文件
json文件,就是文件后缀是.json文件。内容必须是json格式的内容
json格式:
1.内容是字符串
2.最外层是字典,字典里面就必须是键值对
3.最外层是数组(列表 ),数组里面内容必须是数组
# json是python中内置的一个模块,专门用来处理json数据的
import json
if __name__ == '__main__':
"""1.json文件的读操作"""
# 打开json文件
with open('./files/test.json', 'r', encoding='utf-8') as f:
# 直接使用read()去读,获取到的是字符串数据,包含了json文件中的所有的内容(包括注释部分)
# conten = f.read()
# print(conten, type(conten))
"""
load(文件对象): 获取指定json文件中的内容,返回值的类型是json文件最外层的对应的数据类型
dict ---> dict
array ---> list
string ---> str
number ---> int/float
true/flase --> True/Flase
null ---> None
"""
content = json.load(f)
print(content, type(content), content['成绩'][1])
"""2.json文件的写操作"""
# 打开文件
with open('./files/new.json', 'w', encoding='utf-8') as f:
# 写数据
"""
dump(写的内容, 文件对象)
"""
# w_content = 'abc'
w_content = [
{'name': 'a1', 'age': 18},
{'name': 'a2', 'age': 20}
]
json.dump(w_content, f)
"""
3.json模块的其他操作
loads(字符串,编码方式) ---> 将指定的字符串(json字符串),转化成json数据
将字符串转换成字典\将字符串转换成列表
"""
# {"a": true, "b": 2}
#
content = json.loads('["a",100, false,{"a":1, "abc":"100"}]', encoding='utf-8')
print(content, type(content))
"""
dumps(对象)
将对象转换成json字符串
字典/列表转换成json字符串
"""
content = json.dumps(['aaa', 1, True])
# content = '["aaa", 1, true]'
content2 = str(['aaa',1, True])
# content2 = '['aaa', 1, True]'
print(content,content2, type(content))
异常捕获
出现异常(错误)不想让程序崩溃,才可以进行异常捕获
try:
需要捕获异常的代码
except:
出现异常会执行的代码
try:
需要捕获异常的代码
except 错误类型:
捕获到指定的错误类型,才执行的代码
if __name__ == '__main__':
try:
with open('./aaaa.txt') as ff:
print('打开成功')
except FileNotFoundError:
print('===')
open('./aaa.txt','w')