python 官方教程 学习3

2018-10-31 16:09:38

模块

在解释器中,退出后在进入,原来的函数与变量会丢失。模块就是将程序语句编辑在一个文本中,这个就是所谓的脚本,程序大了之后,需要多个文件共同完成,这个就是模块。
模块,以.py为拓展名的文件;中间有定义方法(一个或者多个)

模块的名称,在全局变量中叫做:name
对于模块的导入:import module。这种方式下的导入,对于使用其中的方法需要这样做:mode = module.function1()
初始化模块是发生在import的时候。所以,一旦模块发生了变化,就需要重新执行文件。要是模块中只有一个方法需要更改,那就对这个方法进行重载:module.reload(function1)
模块中的变量会不会与全局变量冲突,一般不会,在模块中的变量为本地参数,模块的导入与方法的调用,需要使用传递参数,这个与全局参数也不一定相同,所以,一般不会出现变量命名冲突的情况。

在很多交互式会话的时候,有老师使用 from module import *
这个如果是在模块中使用的时候,最好还是不要使用这样的书写方式。
考虑到python对文件的预清除,推荐使用 from module import function as fun1

if name == “main

if __name__ == "__main__":
    import sys
    fib(int(sys.argv[1]))

执行当前的.py文件,模块的名字就是现在“主”,满足if的要求,会执行if下的语句;但是这个模块是被别人调用的话,这个模块名字不是“主”,“主”是调用这个模块的模块,当前这个模块只是被其他模块引用,因此,if下的语句是不会执行的。举一个例子说明下。
我有一套房子,朋友借去住,我就把钥匙给他了,他可以用家里的东西,不过有一间房间,是要人脸识别才能开的,也就是只有我能开,所以朋友是进不去的。就把它理解为
隐私
,或者仅仅是对自己开放的特权

模块搜索路径 6.12-6.1.3

没有研究明白,不知道怎么用。

标准模块

dir

这个函数是可以查找模块下的方法、变量、模块,比如模块名字叫a,下面有b,c,d,e
那么dir(a)=[‘b’,‘c’,‘d’,‘e’]
这个方法可以查询

builtins:这个没明白怎么回事。

import 包.子包.模块
使用这个模块中的方法时,需要写全。import sound.effects.echo 等同于 from sound.effects import echo
包.子包.模块.function1();
直接导入模块中的函数或者变量:导入函数echofilter()
from sound.effects.echo import echofilter

从包中导入*

all
init.py

import sound.effects.echo
import sound.effects.surround
from sound.effects import *

包内引用

from . import echo
from .. import formats
from ..filters import equalizer

多目录中的包(不常用)

path:保存__init__.py的目录名称。

输入输出

输出方式:
1、print():交互会话、执行脚本的打印
2、表达式语句:
3、write():输出到文件对象

输出的格式要求有多种方式:
1、格式化的字符串:在字符串的界定符,单双引号或者三重引号之前用 f 或者 F 开头。在这个字符串中的{}内部写上变量或者运算表达式,来达到输出的目的。下面是示例。

>>> year = 2016
>>> event = 'Referendum'
>>> f'Results of the {year} {event}'
>'Results of the 2016 Referendum'

2、str.format():这个是一种需要更多认为操作的格式方法,在{}中就是要替代的位置,不过需要提供相应的格式指令,比如输出类型,精度,位数等等。

>>> yes_votes = 42_572_654
>>> no_votes = 43_132_495
>>> percentage = yes_votes / (yes_votes + no_votes)
>>> '{:-9} YES votes  {:2.2%}'.format(yes_votes, percentage)
' 42572654 YES votes  49.67%'

3、repr()、str():可以将任何值都可以转换为字符串。
这两个还是有一定的区别:str()人类可读;repr()解释器可读取;

字符串对齐填充:
1、str.rjust():右对齐,左填充
2、str.ljust():左对齐,右填充
3、str.center():中间对齐
4、str.zfill():左侧填充0

读写文件

open(filename,mode)
filename是文件名的字符串;
mode是对文件的操作方式:
‘r’:读 ;‘r+’:读写
‘w’:写
‘a’:追加内容到文件最后。
‘b’:二进制模式

对文件的操作不直接使用,采用with处理:

>>> with open('workfile') as f:
...     read_data = f.read()
>>> f.closed
True

f.read(size):读取文件内容,返回字符串。读取完成返空字符串。
f.readline():读取文件行内容,直到出现换行符结束。
f.write(str):写入字符串,返回该字符串。
f.tell():这个没有明白。返回文件的当前位置。
f.seek():移动文件读取指针到指定位置。

用JSON()保存结构数据

读取内容中,直接返回的是字符串;read()
要读取数字,需要从返回的字符串中再提取有效数字;int()

json.dump():
json.dumps():将字典转换为字符串
json.loads():将字符串转换为字典

错误和异常

在学习1中已经学习过了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值