Python的基础学习(六):函数


1. 函数的定义

  • 使用def定义函数,如下:
def Hello():
    print('Hello World!')


Hello()
  1. def是用来定义函数的
  2. 'Hello’是函数名
  3. '( )'中是用来放参数(形参和实参)的
  4. ':'之后的所有缩进行构成了函数体,指出了这个函数需要完成怎样的工作
  5. 调用函数的时候,只需要传递相应参数和指出函数名即可

2. 实参和形参

def Hello(string):
    print(string)


s = 'Hello World'
Hello(s)
  • 在上边这个函数中,其中括号中的变量’string’就是形参,而下边的变量’s’就是实参,实参给形参传递了信息。

3. 传递实参的方法

3.1 位置实参

  • 在调用函数的时候,每一个实参需要关联一个形参,因此,最简单的关联方法就是通过实参的顺序,这种关联方法叫做位置实参
def Hello(string1, string2):
    print(string1 + string2)


Hello('Hello', 'World!')
> 输出:
HelloWorld!

3.2 关键字实参

  • 关键字实参方法就是通过指定形参关联实参。
def Hello(string1, string2):
    print(string1 + string2)


Hello(string2='Hello', string1='World!')
> 输出:
World!Hello

3.3 默认值

  • 在编写函数时,可以给形参指定默认值。
  • 在调用函数时,若给该具有默认值的形参提供实参时,则使用实参值;否则将使用默认值。
def Hello(string1, string2='World!'):
    print(string1 + string2)


Hello('Hello')
> 输出:
HelloWorld!

3.4 等效的函数调用

  • 通过3.3的例子就可以发现,实参传递的方法时可以混合是可以混合使用的。
def Hello(string1, string2='World!'):
    print(string1 + string2)


#  你好世界!
Hello('Hello')
Hello(string1='Hello')
#  我的手
Hello(string1='My', string2='hand')
Hello(string2='hand', string1='My')
Hello('My', 'hand')
  • 这些调用函数的方式都是有效且等效的

4. 传递实参的应用

4.1 禁止函数修改列表

  • 为防止传递的列表被改变,可以这样做:
def function_name(list_name[:])
  • 切片表示法[:]相当于创建了一个列表的临时副本,这样在函数中使用的列表则不是真正的实参列表。

4.2 传递任意数量的实参

  • 有时候,你预先不知道函数需要接受多少个实参,好在Python允许函数函数从调用语句中收集任意数量的实参。
  • 例如,来看一个制作披萨的函数,它需要接受很多配料,但你无法预先确定顾客要多少种配料。
def make_pizza(*toppings):
    print(toppings)


make_pizza('peperono')
make_pizza('mushrooms', 'green pepers', 'extra cheese')
> 输出:
('peperono',)
('mushrooms', 'green pepers', 'extra cheese')
  • 形参让python创建了一个名为toppings的空元组,并会将收到的所有值都封装到这个元组里。

  • python的形参不仅仅可以创建一个空元组,还可以创建一个空字典,看下面的例子:

def concat_name(**name):
    print(name)


concat_name(student_0='marry')
concat_name(student_1='john', student_2='mike')
> 输出:
{'student_0': 'marry'}
{'student_1': 'john', 'student_2': 'mike'}
  • 这里需要注意的一点是在调用函数的时候,键-值对的键不需要加引号

5. 将函数存储到模块中

1. 模块的创建

  • 模块是扩展名为.py的文件,包含要导入到程序中的代码。下面来创建一个包含函数make_pizza()的模块。为此我们要将该文件中除函数外的其他代码都删除:
#  pizza.py
def make_pizza():
    print("this is a pizza.py!")

2. 模块的导入

导入使用描述
import pizzapizza.make_pizza()导入整个模块
from pizza import make_pizzamake_pizza()导入特定的函数
from pizza import make_pizza as mpmp()给导入的函数指定别名
import pizza as pp.make_pizza()给导入的模块指定别名
from pizza import *make_pizza()导入模块中所有函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值