Pyth
o
n
核心语法笔记
——
Day
3
一、
pyth
o
n
中的标准库函数(自带的)
内置函数
——
无需导入,直接调用
p
r
i
n
t
、
i
npu
t
、
ty
pe
、
l
en
、
r
ound
、
i
n
t
、
fl
oa
t
、
s
t
r
、
r
ange
、
po
w
……
非内置函数
——
需要先导入,再调用
大量的函数被分门别类的定义在各种的文件(模块)中,使用这些函数时,需要先从各自所
在的模块中导入后,才可以调用。
导入的语法
导入到当前文件中的成员(函数、模块、变量、类)都可以用
as
起别名,但一般不推荐给标
准库函数且别名
起了别名后,只能使用别名
random
模块
——
随机数相关的函数
randint(a, b)
——
产生
[
a
,
b
]
之间的随机整除
random()
——
产生
[
0
,
1
)
之间的随机高精度浮点数
choice(
列表
)
——
从列表中随机返回一个元素
……
math
模块
——
数学相关的函数
ceil(a)
——
向上取整
floor(a)
——
向下取整
sqrt(a)
——
开平方根
pi
变量
——
圆周率
……
time
模块
——
日期时间相关的函数
time()
——
获取时间戳(从计算机元年到当前经历的时长,单位是秒,可以精确到小
数点后
6
、
7
)
计算机元年
——
1970
年
1
月
1
日
0
点
0
分
0
秒
sleep(a)
——
让程序休眠
a
秒(让程序暂停下来,经过
a
秒以后,再继续执行后续代
码)
strftime(
日期时间格式
)
——
按照指定的格式,将当前时间格式化,返回一个字符串
%Y
年、
%m
月、
%d
日、
%H
时、
%M
分、
%S
秒
……
……
from
模块名
import
函数名
,
函数名
2,
变量
,
类
#
导入函数、变量、类
函数名
(
可选的参数
) #
调用函数
import
模块名
#
导入模块
模块名
.
函数名
(
可选的参数
) #
调用函数
二、自定义函数
函数
——
实现一个特定功能
自定义函数,就是将一段实现特定功能的代码先存储起来,用一个名字(函数名)代表,可以在后
续使用的时候,通过这个名字来进行调用。
定义函数的语法
定义函数的意义
一次定义,多次调用,减少重复的代码 将复杂的、困难的逻辑处理的代码,用一个函数封
装起来,让调用方的代码更简洁、易懂 便于分工合作:定义和调用分离
注意点
区分角色
定义者
——
只关心函数实现的过程
调用者
——
不关心函数是怎么实现的,只关心这个函数该怎么使用(函数名、参数、
返回值)
函数的返回值
函数在调用结束时,可以返回一个结果给调用者,这个结果就是函数的返回值。
在
p
yt
hon
中,函数可以没有返回值,没有返回值的时候,用
None
表示。
定义函数时,如果要返回值,使用
return
关键字,
r
e
t
u
r
n
后跟上要返回的值(一个能得到
值的式子)
r
e
t
u
r
n
有结束函数调用的作用,在调用函数,执行函数的主体语句的过程中,遇到
r
e
t
u
r
n
关键字,函数的执行就结束了,并返回一个
r
e
t
u
r
n
关键字后的结果。
函数的参数
在定义函数的时候,参数称为形式参数(形参);在调用函数的时候,传入的参数称为实际
参数(实参)
定义函数的形参时,可以为形参指定默认值,如果形参有默认值,在调用时,则不必必须传
入。
如果一个函数的形参中,既有带默认值的形参,也有不带默认值的形参,那么,不带默
认值的形参必须定义在带默认值的形参之前。
调用函数时,传参数的时候,可以指定参数的形参名。但一般情况下不推荐指定形参名。
定义函数的形参时,可以定义【可变参数】,单星号,语法:
*形参名
可以将调用时传入的任意多个参数,装包,构成一个元组,给形参赋值。 调用函数时,
传入的【
*
实参】,拆包(
unpack
)
——
将列表中的元素,拆出来,单个 单个作为参数
,传入函数。
定义函数的形参时,可以定义【关键字参数】,双星号,语法:
**形参名
可以将调用时传入的任意多个带名字的参数(关键字参数),装包,构成一个字典,给
形参赋值。
def
函数名
(
可选的形参
):
实
现函数具体功能的语句
1
实
现函数具体功能的语句
2
实
现函数具体功能的语句
N
return
表达式
调用函数时,传入的【
**
实参】,拆包(
unpack
)
——
将列表中的元素,拆出来,单
个单个作为参数,传入函数。
三、模块(
m
o
dul
e
)
理解:一个
p
yt
hon
文件(
.
p
y
)就是一个模块,文件名(除去
.
p
y
)就是模块名。
模块中,有一些特殊的变量,可以直接使用,这些变量名前后都有双下划线。
__file__
——
模块的文件路径
__doc__
——
模块的文档注释
__name__
——
模块的名称,如果一个模块是主模块,
__name__
的值固定为
"__main__"
当
P
yt
hon
解释器直接执行一个模块时,这个模块就是主模块
当
P
yt
hon
解释器直接执行一个模块
A
时,
A
模块中又导入了
B
模块。此时,
A
模块是主模
块,
A
模块中的
__name__
的值为
"__main__"
,
B
模块不是主模块,
B
模块的
__name__
的值为
B
模块的实际包名
+
模块名
我们利用
__name__
的特点,在一些专门定义函数、类的模块中,可以写如下的入口代
码块:
四、包(
packag
e
)
理解:包的本质就是文件夹,用于分门别类管理
p
yt
hon
模块的。
p
yt
hon
的包中可以嵌套包
p
yt
hon
的包中强烈推荐要有一个名字为
__init__.py
的文件,这个文件被称为包的初始化文件。
这个文件中的代码会在导入这个包的时候,自动被执行。
导入包中的成员时,导入的代码中,要含有包的路径
五、
Pyth
o
n
中用于查找包或模块的
Pyth
o
n
路径
可以在系统的环境变量中,配置一个
PYTHONPATH
的环境变量,这个变量的值就是告知
P
yt
hon
解
释器去哪些目录下查找包或模块的路径。 在
P
y
C
ha
r
m
环境下,
P
y
C
ha
r
m
会默认将项目工程的目录
认为可以查找包或模块的路径 但在无
P
y
C
ha
r
m
的环境下,需要手动指定
if __name__ == ’__main__’:
#
一些启动的、测试的代码
from
包名
.
子包名
.
模块名
import
函数名
from
包名
.
子包名
import
模块名