Python语法基础(九):函数

一.函数的声明:

其中,name是形参.

def hello(name):
    print('Hello,'+name)

二.函数的调用

hello('张三')

三.关键字实参的使用

优点:在实参传递值的时候,可以用键值对的方式传参,不用考虑传参顺序

def showInfo(name,age):
    print('姓名:'+name+',年龄:'+age)

showInfo( age='18',name='赵信')

输出:

姓名:赵信,年龄:18

四.给函数形参设置默认值

1.隐式传参

在不传递这个参数的情况下,自动赋上默认值(隐式)

注意:没有有默认值的参数要放在前面,否则报错

Python编写规范:给形参设置默认值的时候,参数(sex='男')等号两边不要有空格,即便不会报错

def showInfoDefault(name,age,sex='男'):
    print('姓名:'+name+',性别:'+sex+',年龄:'+age)
showInfoDefault(name='赵信', age='18')

输出:

姓名:赵信,性别:男,年龄:18

2.显式传参

showInfoDefault(age='18',name='春哥', sex='女')

输出:

姓名:春哥,性别:女,年龄:18

五.有返回值的函数

1.声明

def getResult(a,b):
    return a+b

2.调用

c = getResult(1, 2)
print('求和结果:'+str(c))

输出:

求和结果:3

六.禁止函数修改原列表

有时函数需要用到某列表中的数据,但是又不能修改这个列表数据,此时可用切片,作为实参传入。

bosses = ['马小云', '李小红', '马小腾', '雷小军']
def addBoss(list):
    list.append('贾小亭')
    print(list)
# 在此传入切片即可    
addBoss(bosses[:])
print(bosses)

输出:

['马小云', '李小红', '马小腾', '雷小军', '贾小亭']
['马小云', '李小红', '马小腾', '雷小军']

七.函数接收任意数量实参

注意:形参是个元组类型,而非列表类型,传入列表的话,只能作为元组的一个元素

def addAnimal(*box):
    print(box)
#传入多个参数    
addAnimal('河马','大象','犀牛')

输出:

('河马', '大象', '犀牛')

注意:如果多种参数种类,应该把接收任意数量实参的形参(元组),放在最后的位置定义。

本例中,name对应北京,*box对应动物元组,需放在最后定义,否则报错

def shownimal(name,*box):
    print(name+'动物园有这些动物:'+str(box))

shownimal('北京','大熊猫','大象','犀牛')

输出:

北京动物园有这些动物:('大熊猫', '大象', '犀牛')

八.函数接收任意数量的键值对实参

前两个形参city,address是字符串类型,**zoo是字典类型的,所以赋值要用大熊猫='panda'的格式

def shownimal(city,address,**zoo):
    print(city+address+'动物园有这些动物:\n')
    for ch,en in zoo.items():
        print('中文名:'+ch+',英文名:'+en)

shownimal('北京','西直门',大熊猫='panda',大象='elephant',犀牛='rhino')

输出:

北京西直门动物园有这些动物:

中文名:大熊猫,英文名:panda
中文名:大象,英文名:elephant
中文名:犀牛,英文名:rhino

九.函数的封装调用

引用别的类中的函数,需要通过下列方式:

1.引入整个模块

新建library.py文件

def hello(name):
    print('Hello,'+name)

def goodbye(name):
     print('Goodbye,'+name)

在另一个类中引用:

import library
library.hello('张三')

输出:

Hello,张三

在Eclipse中使用import导入可能会报错,这是因为该项目的路径没有配置为环境变量,所以找不到引用的文件,解决方法:

在project右击打开菜单 ->选择properties->选择”PyDev-Interpreter/Grammar”->点击链接”Click here to configure an interpreter not listed.” -> 在”Libraries”tab内,点击”new folder”,把工作空间中引入项目包路径粘贴进来->点击”ok”,重启Eclipse。

2.只引入要用的函数:

from library import goodbye
goodbye('李四');

输出:

Goodbye,李四

3.给引入的函数指定别名

注意:一旦指定了别名,就必须要用别名调用,而不能继续使用原来函数名了

from library import goodbye as gb
gb('李四');

4.引入所有函数

引入所有函数,所有函数都可以直接调用了

from library import *

hello('张三')
goodbye('李四');

5.给模块起别名

模块名一旦设置,原来的模块名也就不能用了,只能通过别名调用

import library as lib
lib.hello('张三')

猜你喜欢

转载自blog.csdn.net/x541211190/article/details/79020764