第八章 函数

目录

8.1 定义函数

8.1.1 向函数传递信息

8.2 返回值

8.3 使用其他模块中的函数


8.1 定义函数

def func():
    a = 1
    b = 2
    print(a + b)

func()    # 输出:3

8.1.1 向函数传递信息

def func(c, d):
    print(c + d)

a = 1
b = 2
func(a, b)    # 输出:3
func(3, 4)    # 输出:7
func1(c=2, d=3)     # 关键字实参,把此处的c和d换成a,b则会报错

    a, b为实参,c, d为形参,当a,b为数和字符串时,按上述方法传递参数,a,b不会改变。而列表,字典等会发生改变。要禁止函数修改列表,实参要传递列表切片。


def list_dict(list0, dict0):
    print(list0)    # 输出:[1, 2, 3]
    list0.append(2)
    dict0["color"] = "red"

def list_nochange(list0):
    list0.append(2)
    print("函数里的list:", list0)    # 输出:函数里的list: [1, 2, 3, 2]

list1 = [1, 2, 3]
dict1 = {"color": "green"}
list_dict(list1, dict1)
print(list1)    # 输出:[1, 2, 3, 2]
print(dict1)    # 输出:{'color': 'red'}
list_nochange(list1[:])
print(list1)    # 输出:[1, 2, 3]

    注:传递参数时,位置要对应!传递关键字实参时,传递的字母名称要与函数相同,否则报错。

8.2 返回值

    在函数里return 要返回的数据

def return_func():
    a = 1
    b = 2
    return a+b
    # return [a, b]    # 则下方会输出:[1, 2]

c = return_func()
print(c) # 输出:3
print(return_func())    # 输出:3

8.3 使用其他模块中的函数

    所谓的模块就是指其他的,py文件

例如:在Sum.py中有函数return_func(),而在suming.py中我要使用这个函数该如何导入?

# 第一种 导入Sum.py文件
import Sum    
# 在suming.py中使用return_func()函数
# c = Sum.return_func(a, b)

# 第二种 从文件导入函数
from Sum import return_func
# 使用: c = return_func(a, b)

# 第三种 从文件导入所有函数
from Sum import *
# 使用方法如第二种

# 从此处看出return_func()函数名过长,那如何简化?
# 使用as即可:from Sum import return_func as rf
# 使用函数时:c = rf(a, b)
# 同理导入文件时也可以如此

本人新手,若有错误,欢迎指正;若有疑问,欢迎讨论。

你可能感兴趣的:(Python编程从入门到实践,python)