百度飞桨领航团零基础Python速成营学习回顾

百度飞桨领航团零基础Python速成营之函数基础

  • 前言
  • 一、函数
  • 二、使用
    • 1. 定义函数与调用
    • 2.参数传递
      • 位置参数
      • 缺省参数
      • 可变参数
      • 关键字参数
      • 命名关键字参数
      • 参数的组合
  • 总结


前言

本文为百度飞桨领航团零基础Python速成营课节二 python函数基础的学习回顾
课程链接:https://aistudio.baidu.com/aistudio/course/introduce/7073


提示:以下是本篇文章正文内容,下面案例可供参考

一、函数

1.函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。

2.任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

3.函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

4.函数内容以冒号起始,并且缩进。

5.return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

二、使用

1. 定义函数与调用

定义一个函数(示例):

def print_name(name):	#定义一个名为print_name的函数
    "打印学生的名字"	#函数的说明
    print('姓名:', name)	#将传入的参数name打印
    return {
     '姓名':name}	#返回{'姓名':name}给调用方

函数的调用(示例):

rst = print_name('Alice') 	
#调用print_name函数,并将'Alice'作为参数传入给name;
#执行print('姓名:', name)    此处name值为'Alice'
#后将{'姓名':'Alice'}返回,赋值给rst
rst	#此处rst的值为{'姓名':'Alice'}

也可返回多个值:

# 返回多个值
def student_name_and_age():
    "记录学生的名字和年龄"
    name = input('请输入姓名\n')
    age = int(input('请输入年龄\n'))
    print(f'姓名:{name};年龄:{age}')
    return name,age
rst = student_name_and_age()
type(rst)	#我们会发现此时的rst类型为元组,说明当函数返回多个值时,是以元组类型返回的
name, age = student_name_and_age()	#可以用这种方式分别接受返回的第一、第二个值

2.参数传递

1.位置参数
2.缺省参数
3.可变参数
4.关键字参数
5.命名关键字参数

位置参数

位置参数是最简单的一种函数调用的方式。位置参数须以正确的顺序传入函数、数量必须和声明时的一样。

def student_name_and_age(name, age):
    print('姓名:%s 年龄 %s' %(name, age))
student_name_and_age('张三', 18)

缺省参数

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

def student_name_and_age(name, age='不愿透露'):
    "设置默认参数"
    print('姓名:%s 年龄 %s' %(name, age))

student_name_and_age('张三')
# 也可以为默认参数赋值
student_name_and_age('张三', 18)

可变参数

可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。

def all_student_names(*names):
    for name in names:
        print('姓名:', name)

all_student_names('张三','李四','王五')

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。等价于如下示例:

def all_student_names(names):
    for name in names:
        print('姓名:', name)
        
names = ('张三','李四','王五')
all_student_names(names)

关键字参数

关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

def student_info(name, age, **kw):
    print(f'我的名字叫:{name},年龄:{age},其它信息:{kw}')

student_info('张三', 18, height=180) #此处的height=180会转换成{'height':180}传入**kw

def score_info(name, **kw):
    if '语文成绩' in kw:
        print(name, '的语文成绩', kw['语文成绩'])
    if '数学成绩' in kw:
        print(name, '的数学成绩', kw['数学成绩'])
        

def person_info(name, age, **kw):
    print('姓名:', name, '年龄',age)
    score_info(name, **kw)    

score_cfg = {
     '语文成绩':65, '数学成绩':60}
person_info('张三', 18, **score_cfg)	#如果score_cfg本身就是字典类型,则调用时需写成**变量名的形式

命名关键字参数

如果要限制关键字参数的名字,就可以用命名关键字参数

def print_person_info(name, age, *, height, weight):
    print('我的名字叫:', name, '年龄:', age,'身高', height, '体重', weight)

print_person_info('张三', 18, height=180, weight=75)

参数的组合

在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。
但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

def student_info(name, age=18, *books, city, **kw):
    # 如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:
    print('我的名字叫:', name, '年龄:', age,'其它信息:',kw)
    print('来自:', city)
    for book in books:
        print('我有',book,'书')

student_info('张三', 18, '语文','数学','计算机', city='北京', height=180, weight=75)

总结

以上就是今天回顾的内容了,本文仅仅简单介绍了函数的定义与调用,而函数还有着很多更高阶的用法与技巧,快来一起加入到百度飞桨领航团零基础Python速成营一起学习吧,这里有大佬带领大家学习进步。

你可能感兴趣的:(笔记,python)