美文网首页
day11-总结

day11-总结

作者: RurouniKenshin | 来源:发表于2018-07-26 16:52 被阅读117次

模块管理函数和类

1.什么是模块

一个.py文件就是一个模块
other

name = 10
print(name)

def func1():
    print('====')

other2

name2 = 100
print(name2)

def func2():
    print('~~~~~~~~')

if __name__ == '__main__':
    pass

other3

def func3():
    print('++++++')


if __name__ == '__main__':
    name3 = 100
    print(name3)

2.import:可以通过import关键字导入其他的模块

import 模块名(.py文件名)

直接导入模块的时候,相当于把被导入模块里面的内容粘贴到import的位置

3.怎么使用模块内的内容?什么内容是可以直接使用的?

模块名. 的方式去使用模块中的内容
模块中声明的全局变量都可以使用(普通变量,函数,类)

import other

print(other.name, other.func1())

4. from 模块名 import 内容1,内容2,内容3...... --> 导入模块中指定的内容

通过这种方式在使用内容的时候,不用在被导入的变量或函数或类前加模块名

from other2 import func2

func2()

5.阻止被导入的模块中不必要的代码被粘贴到当前模块

一般情况下,除了函数的声明和类的声明以外,其他的代码都放到这个if里面
_name_:是每个模块自带的一个属性,用来保存当前这个模块的名字
但是当正在执行当前模块时,这个属性名字是固定的_main_

if __name__ == '__main__':
    pass

此中代码不会被其他模块使用

import other3

other3.func3()

import 模块名 as 新名字
from 模块名 import 函数名 as 新的函数名

# 练习,使用一个模块,用来管理所有和形状相关的功能
# 求两点间的距离,求圆周长,圆面积,矩形周长和面积
import gh_opration

dis = gh_opration.distance([1, 2], [4, 6])
print(dis)
c_zc = gh_opration.circle_girth(4)
c_mj = gh_opration.circle_area(4)
print(c_zc, c_mj)
r_zc = gh_opration.rectangle_girth(3, 4)
r_mj = gh_opration.rectangle_area(3, 4)
print(r_zc, r_mj)

gh_opration的函数

def distance(x, y):
    import math
    return math.sqrt((x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2)


def circle_girth(r):
    return 2 * 3.14 * r


def circle_area(r):
    return 3.14 * r ** 2


def rectangle_girth(length, width):
    return 2 * (length + width)


def rectangle_area(length, width):
    return length * width

文件操作

(所有)文件操作流程:打开文件 -> 操作文件(读/写) -> 关闭文件

1.打开文件

open(文件路径,打开的方式,编码方式)
文件路径(必填) --> 决定打开哪个文件
打开方法(默认值是'r') --> 决定打开文件后是进行什么样的操作
'r' - 读操作(读出来是字符串)
'rb'/'br' - 读操作(读出来的数据是二进制)
'w' - 写操作(可以将文本数据写入文件中)
'wb'/'bw' - 写操作(可以将二进制数据写入文件中)
'a' - 写操作(追加)

编码方式 --> 主要针对文本文件的读写
(不同的操作系统默认的文本编码方式不同,windows-->gbk,mac-->utf-8)

2.文本文件读操作

a.放在工程外的文件,写绝对路径

     open('E:/python-1805/test.txt')

(推荐)
b.将文件放到工程目录下的某个位置,写相对路径(相对于工程目录):./相对路径 或者../相对路径

  • 当含有打开文件操作的py文件直接在工程目录下,打开文件的路径使用./
  • 当含有打开文件操作的py文件没有直接在工程目录下,打开文件的路径使用../
    # open('./test1.txt')
    # open('./files/test2.txt')

    # - 打开文件,返回文件句柄(文件代言人)

    f = open('./test1.txt','r',encoding='utf-8')

    # - 读文件(获取文件的内容)
    '''
    文件.read():获取文件内容,并且返回
    read(n) --> n 设置读的长度
    '''
    content = f.read()
    print(content)
    # - 关闭文件
    f.close()

3.文本文件写操作

    # - 打开文件
    f2 = open('./files/test2.txt','w',encoding='utf-8')
  • 'w':在写的时候会清空文件中原来的内容,然后再往里面写数据
  • 'a':在原文件后追加内容
    # - 写文件
    f2.write('ajsgd氨基酸的38r5')
    # - 关闭文件
    f2.close()

注意:以读的方式打开文件,文件不存在,会报错FileNotFindError
以写的方式打开文件,文件不存在,会自动创建这个文件

4.二进制文件的读写操作(音频,视频,图片文件都是二进制文件)

    f3 = open('./files/timg.jpg','rb')
    # - 读文件
    image_data = f3.read()
    # bytes:python中二进制数据对应的数据类型
    print(type(image_data),image_data)
    # 关闭文件
    f3.close()

    f4 = open('./files/new.jpg','wb')
    # - 写操作
    f4.write(image_data)
    # 关闭文件
    f4.close()

5.通过with关键字打开文件

with open() as 文件变量名:
文件操作
在文件操作结束后会自动去关闭文件

python与json

json文件(文本),就是文件后缀是.json的文件。内容必须是json格式的内容
json格式:
1.内容是字符串
2.最外层是字典,字典里面必须是键值对
3最外层是数组(列表),里面必须是数组(列表)

  • json是python中内置的一个模块,专门用来处理json数据的
import json

1.json文件的读操作

    with open('./files/myinfo.json','r',encoding='utf-8') as o_j:
        context = json.load(o_j)
        print(context)
    print(context['age'])

load(文件对象):获取指定json文件中的内容,返回值的类型是json文件最外层的对应的数据类型

2.json文件的写操作

    with open('./files/myinfo2.json','w',encoding='utf-8') as o_j2:
        w_context = [{'name':'a1'},{'name':'b1'}]
        # dump(写的内容,文件对象)
        json.dump(w_context,o_j2)
  • 重要实例:输入学生的姓名和电话,保存到本地(要求下次启动程序,再添加学生的时候,之前添加的学生信息还在)
import json
name = input('name:')
tel = input('tel:')
stu = {"name":name,"tel":tel}
try:
    with open('./files/student.json','r',encoding='utf-8') as o_j3:
        students = json.load(o_j3)
except FileNotFoundError:
    students = []
with open('./files/student.json','w',encoding='utf-8') as o_j3:
    students.append(stu)
    json.dump(students,o_j3)

相关文章

  • day11-总结

    模块管理函数和类 1.什么是模块 一个.py文件就是一个模块other other2 other3 2.impor...

  • Day11-总结

    01-生成式 a.迭代器: 容器,可以同时存储多个数据,取得时候只能一个人一个的取,并且取过的数据在容器中就不存在...

  • Day11-总结

    一.函数作为变量 1.函数调用表达式 函数调用表达式 - 调用函数的语句普通值能做的事,函数调用表达式都可以做 2...

  • day11-课后总结

    文件操作 1.模块的使用 a.导入模块可以通过import或者from-import在一块模块中去使用另一个模块的...

  • day11-课堂总结

    迭代器:容器,可以同时存储多个数据,取的时候只能一个一个的取,并且取过的数据在容器中就不存在了 生成器:就是迭代器...

  • day11-文件操作总结

    a.迭代器: 容器,可以同时存储多个数据,取的时候只能一个一个的取,并且取过的数据在容器中就不存在了b.生成器: ...

  • day11-文件操作总结

    02-生成式 1.生成式 1.(表达式 for 变量 in 序列 ) -->展开:def func():for 变...

  • 前端学习day11-总结

    关键词: html,body{width:100%;height:100%} ,!mportant ,box-si...

  • day11-文件得操作-总结

    1.模块得使用 代码示例 运行如下 2.选择性导入(阻止导入) 3.迭代器 代码示例 运行结果 代码示例 运行结果...

  • 21天女神养成记 day11

    Day11-【21天女神养成记-出现了黑头该怎么办?】-邸红敏-2018.12.18 直接上干货~ 黑头主要是由皮...

网友评论

      本文标题:day11-总结

      本文链接:https://www.haomeiwen.com/subject/lksbmftx.html