函数

定义函数

1、意义:函数是实现某个功能的一些代码,提高代码的复用性。

2、定义:用def关键字定义函数,

3、函数组成:函数由函数名、形参、函数体、调用函数(里面会有函数体)组成

4、要使用函数,必须要调用它

5、示例函数:

定义一个简单的函数,里面只有函数名、函数体、调用函数组成

python modin调用方法 python调用模块中的函数_时间戳

形参与实参

形参:在函数名字后面括号里的值,实参是调用函数时传递给函数的信息

实参:实参是在调用函数是,函数名字后面括号里的值

示例:定义一个写文件的函数

python modin调用方法 python调用模块中的函数_调用函数_02

定义一个读文件的函数

python modin调用方法 python调用模块中的函数_python modin调用方法_03

返回值:在函数中,可使用return语句将值返回到调用函数的代码行,如果不写return将返回none

python modin调用方法 python调用模块中的函数_调用函数_04

return的作用:把函数处理的结果返回。结束函数,函数里面遇到return,就立刻结束函数

python modin调用方法 python调用模块中的函数_json_05

传递参数 

1、默认值参数:在函数定义时,可给形参指定一个默认值,在函数调用中给形参提供了实参时,Python将使用指定的实参值,否则将使用指定的默认值

python modin调用方法 python调用模块中的函数_时间戳_06

python modin调用方法 python调用模块中的函数_python modin调用方法_07

2、位置实参:在函数调用时,必须将每个实参都关联到函数定义中的每一个形参,必须按照形参位置来传递实参,实参为必传。

python modin调用方法 python调用模块中的函数_时间戳_08

3、关键字实参:在函数调用时,传的实参要以 名称-值得形式来传递参数。关键字实参的顺序无关紧要,不用和形参对应上

python modin调用方法 python调用模块中的函数_python modin调用方法_09

 4、可变参数(传递任意数量的实参):定义形参时,用 *name ,调用函数时,实参非必填,不限制参数个数

python modin调用方法 python调用模块中的函数_python modin调用方法_10

python modin调用方法 python调用模块中的函数_json_11

参数是放在元组里面的。

5、向函数传递列表、元组、集合:元素个数要与形参个数对应上,调用函数时语法:函数名字(*listname)

python modin调用方法 python调用模块中的函数_时间戳_12

6、传递任意数量的关键字实参:非必传,不限制个数,会把传过来的关键字参数放到一个字典里面,传参的时候必须用key=value形式来传

python modin调用方法 python调用模块中的函数_python modin调用方法_13

python modin调用方法 python调用模块中的函数_调用函数_14

7、向函数传递字典,字典里的key要与函数中的形参个数对应上,语法:函数名(**dictname)

python modin调用方法 python调用模块中的函数_json_15

局部变量与全局变量

1、局部变量:函数里面定义的变量,只要一出了函数就不能用了

python modin调用方法 python调用模块中的函数_json_16

2、全局变量:在函数外面定义的变量,就会全局变量,在函数里面与外面都可以用

global关键字:全局变量如果要在函数中修改的话,需要加global关键字声明;

                        定义的全局变量是list或者字典或者集合,不需要声明global;只有字符串、元组,int、float 需要声明global

python modin调用方法 python调用模块中的函数_时间戳_17

python modin调用方法 python调用模块中的函数_时间戳_18

 浅拷贝与深拷贝

浅拷贝:两个变量指向同一块内存地址,查看内存地址用print(id(name))

python modin调用方法 python调用模块中的函数_json_19

python modin调用方法 python调用模块中的函数_python modin调用方法_20

深拷贝:需要导入copy模块,深拷贝两个变量的内存地址不一样

python modin调用方法 python调用模块中的函数_json_21

python modin调用方法 python调用模块中的函数_时间戳_22

注意:不要循环删list,会导致结果错乱

python modin调用方法 python调用模块中的函数_调用函数_23

python modin调用方法 python调用模块中的函数_调用函数_24

1不是偶数,也打印出来了,这就导致了结果的错乱

正确代码如下:

python modin调用方法 python调用模块中的函数_时间戳_25

python modin调用方法 python调用模块中的函数_时间戳_26

模块

定义:一个Python文件就是一个模块

模块分类:

1、标准模块:Python自带的 time,random

2、第三方模块:别人写好的,需要安装 比如 连接mysql的,汉字转成拼音的
3、自己写的Python文件

json模块:解析Json的,json就是一个字符串

导入json模块:

python modin调用方法 python调用模块中的函数_json_27

1、json.loads方法:直接操作的是字符串,把json转成字典

python modin调用方法 python调用模块中的函数_python modin调用方法_28

python modin调用方法 python调用模块中的函数_时间戳_29

2、json.load方法:可以直接操作文件对象,自己读取文件里的内容,把文件对象里的json转成字典。

python modin调用方法 python调用模块中的函数_json_30

python modin调用方法 python调用模块中的函数_调用函数_31

3、json.dumps:把字典转成字符串。

python modin调用方法 python调用模块中的函数_时间戳_32

python modin调用方法 python调用模块中的函数_python modin调用方法_33

4、json.dump:操作文件对象,把字典写入到文件里面,文件里以json形式显示

python modin调用方法 python调用模块中的函数_调用函数_34

python modin调用方法 python调用模块中的函数_python modin调用方法_35

os模块

操作系统相关的东西都在os模块里面:import os

python modin调用方法 python调用模块中的函数_调用函数_36

os.walk方法:可以遍历返回文件目录、文件夹、文件

python modin调用方法 python调用模块中的函数_时间戳_37

python modin调用方法 python调用模块中的函数_时间戳_38

定义一个查找文件内容的函数

import os
def find_movie(KeyWord,path="e:\\",):
    for cur_path, cur_dirs, cur_files in os.walk(path):
        # if KeyWord in str(cur_files):
        #     print(cur_path)
        for file in cur_files:
            # if KeyWord in file:
            if file.endswith('KeyWord'):
                print(cur_path)

time模块 import time

python modin调用方法 python调用模块中的函数_python modin调用方法_39

python modin调用方法 python调用模块中的函数_时间戳_40

 1、时间戳转换成格式化好的时间

 

python modin调用方法 python调用模块中的函数_json_41

2、格式化好的时间转成时间戳

python modin调用方法 python调用模块中的函数_调用函数_42

3、定义两个函数,实现  时间戳转换成格式化好的时间、格式化好的时间转成时间戳

def timestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
    #时间戳转格式化好的时间
    if timestamp:
        time1=time.localtime(timestamp)#时间元祖
        res=time.strftime(format,time1)
        #print(res)
    else:
        res=time.strftime(format)#如果没有传时间元祖,那么就默认传当前时间格式化好的时间元祖
        #print(res)
    return res
#test=timestampToStr(1540280339)
#test=timestampToStr()
#print(test)


def strTotimestamp(str=None,format='%Y%m%d%H%M%S'):
    #格式化好的时间转时间戳
    if str:
        timep=time.strptime(str,format)#转成时间元祖
        res=time.mktime(timep)#时间元祖转成时间戳
    else:
        res=time.time()
    return int(res)
res=strTotimestamp('20180505101010')
print(res)


注意:如果提示需要导入模块,那么用快捷键Alt+Enter即自动导入了。
如下 提示需要导入json模块,即用快捷键就可以自动导入了。

 

python modin调用方法 python调用模块中的函数_json_43

python modin调用方法 python调用模块中的函数_python modin调用方法_44