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('张三')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值