Python 的函数解析

1.函数的定义:

#定义函数的目的,增加代码的重用性

def multiple_table():

    # 定义遍历row 记录行号

    row = 1

    while row <= 9:

        # 执行第 row 行的打印

        start_count = 1

        while start_count <= row:

            # 内层循环处理具体这一行要打印多少个星星

            # \n :换行符  \t:制表符,就是按一下tab键的效果,表示空4个字符

            print('%d  *  %d = %2d ' % (start_count, row, start_count * row), end='\t')

            start_count += 1

        # 换行

        print()

        row += 1

# 调用函数,如果不调用不会执行

multiple_table()

#函数调用必须在函数定义之后

#在 定义函数 的下方,使用 连续的三对引号,给函数加注释

在 函数调用 print 的位置,按快捷键 CTRL + Q 可以查看函数的说明信息

2.返回值使用return 函数

def func_sum():

    """求和 1+2"""

    sum_num = 1 + 2

    print(sum_num)

    return  #这里空着就显示None,写其他值就返回其他值

    # 这行代码不会执行了

    print('不会执行这行代码')

res=func_sum() 

print(res)

多个return

def is_even_num(num):    """判断奇偶数"""    if num % 2 == 0:

        return True    else:

        return Fals

3.模块的使用

新建 info.py,代码如下

name = "datafrog"def func():   

    print('info_func')

再新建 get_info.py 文件,并且编写以下代码:

import info

print(info.name)

info.func()

4.列表推导

a=[x for x in range(1,7) if x%2==0] 

#设置1-7的偶数表

print(a)

5.匿名函数 lambda

自己定义函数

# 定义一个函数

def fun(a, b, opt):   

print("a = %s" % a)

    print("b = %s" % b)

    print("result =%s" % opt(a, b))

# 调用函数fun(1, 2, lambda x,y:x+y)

输出结果:

a = 1 b = 2 result = 3

全局变量 global

a = 10def test():   

global a

    a = 5  # 修改全局变量    print("函数内a:%d" %a)

test()

print("函数外a:%d" %a)

7.可变参数

args

函数可以定义 可变参数,用于接收任意数量的参数

可变参数的前边需要添加*,用于提示python解释器该参数为可变参数

使用可变参数直接用args即可(不需要加*)

可变参数的本质是 将传递的参数包装成了元组

def sum_num(a, b, *args): 

    result = a + b

    for temp in args:

        result += temp

    return result

sum_num(1, 2, 3, .., n)

kwargs

可变参数还有一种形式 可以接收不存在的关键字参数

定义参数时需要在变量名前添加两个*

这种可变参数会将 不存在的关键字参数包装成字典

def sum_num(a, b, *args, **kwargs): 

    print(a)

    print(b)

    print(args)

    print(kwargs)

sum_num(1, 2, 3, .., n, mm=5, nn=6)

8.文件的读写


f = open('test.txt', 'w')

#若有文件直接在里面写,没有的话创建新文件

f.write('hello world, i am here!')

f.close()

9.制作文件备份

# 提示输入文件

oldFileName = input("请输入要拷贝的文件名字:")

# 以读的方式打开文件

oldFile = open(oldFileName,'rb')

# 提取文件的后缀

fileFlagNum = oldFileName.rfind('.')if fileFlagNum > 0:

    fileFlag = oldFileName[fileFlagNum:]

# 组织新的文件名字

newFileName = oldFileName[:fileFlagNum] + '[复件]' + fileFlag

# 创建新文件

newFile = open(newFileName, 'wb')

# 把旧文件中的数据,一行一行的进行复制到新文件中

for lineContent in oldFile.readlines():

    newFile.write(lineContent)

# 关闭文件

oldFile.close()

newFile.close()

10.文件和文件夹的操作

10.1. 文件重命名

os模块中的rename()可以完成对文件的重命名操作

rename(需要修改的文件名, 新的文件名)

    import os

    os.rename("毕业论文.txt", "毕业论文-最终版.txt")

10.2. 删除文件

os模块中的remove()可以完成对文件的删除操作

remove(待删除的文件名)

    import os

    os.remove("毕业论文.txt")

10.3. 创建文件夹

    import os

    os.mkdir("张三")

10.4. 获取当前目录

    import os

    os.getcwd()

10.5. 改变默认目录

    import os

    os.chdir("test")  # 跳转到当前路径的test子目录中

10.6. 获取目录列表

    import os

    os.listdir()

10.7. 删除文件夹

    import os

    os.rmdir("张三")

目录非空不能使用,可以使用递归的方式进行删除

11.批量修改文件名

import os

path = input("请输入需要批量修改文件名的文件夹名称:")

# 跳转路径os.chdir(path)

# # 获取当前的绝对路径

# full_path = os.getcwd()

# print(full_path)

# 遍历目标文件夹

for subpath_name in os.listdir():

    new_file_name = "【复件】" + subpath_name

    # 每个文件改名   

os.rename(subpath_name, new_file_name)

你可能感兴趣的:(Python 的函数解析)