函数

  • 带名字的代码块,用于完成具体的工作
  • 关键字def定义一个函数,定义函数名,括号内是需要完成任务所需要的信息,最后定义冒号结尾
  • 缩进构成函数体
  • 函数调用,依次指定函数名以及冒号括起来的必要信息
def greet_user():
'''显示简单的问候语'''
print("Hello!") great_user()
# 向函数传递信息
def great_user(username):
print("Hello, " +username.title() + "!")
great_user('yegeli')
Hello, Yegeli!

实参和形参

  • 形参:函数完成其工作所需的一项信息。
  • 实参:调用函数时传递给函数的信息。

传递实参

  • 函数定义中可能包含多个形参,函数调用也可能包含多个实参,向函数传递实参的方式很多,可使用位置实参,要求实参的顺序与形参的顺序相同,关键字实参,每个实参都由变量名和值组成,还可以使用列表和字典。

位置实参

  • 调用函数时,将每个实参都关联到函数定义中的一个形参,最简单的关联方式是基于实参的顺序
  • 可根据需要使用任意数量的位置实参,按顺序将函数调用中的实参关联到函数定义中相应的形参
# 位置实参
def describe_pet(animal_type,pet_name):
"""显示宠物的信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".") describe_pet('hamster','harry')
I have a hamster.
My hamster's name is Harry.
# 调用函数多次
def describe_pet (animal_type,pet_name):
"""显示宠物的信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet('hamster','harry')
describe_pet('dog','willie')
I have a hamster.
My hamster's name is Harry. I have a dog.
My dog's name is Willie.

关键字实参

  • 关键字实参是传递给函数的名称—值对,直接在实参中将名称和值关联起来
  • 使用关键字实参时,准确地指定函数定义中的形参名
def describe_pet(animal_type,pet_name)
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet(animal_type = 'hamster',pet_name = 'harry')

默认值

  • 给每个形参指定默认值,可在函数调用中省略相应的实参,使用默认值可以简化函数调用
  • 如果提供了实参,将忽略形参的默认值
def describe_pet(pet_name,animal_type = 'dog'):
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet('willie') describe_pet(animal_type='hamster',pet_name='harry')
I have a dog.
My dog's name is Willie. I have a hamster.
My hamster's name is Harry.
# 等效的函数调用
def describe_pet(pet_name,animal_type = 'dog'):
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".") describe_pet('willie')
describe_pet(pet_name='willie') describe_pet('harry','hamster')
describe_pet(pet_name='harry',animal_type='hamster')
describe_pet(animal_type='hamster',pet_name='harry')
I have a dog.
My dog's name is Willie. I have a dog.
My dog's name is Willie. I have a hamster.
My hamster's name is Harry. I have a hamster.
My hamster's name is Harry. I have a hamster.
My hamster's name is Harry.

练习

# 1.T恤
# 编写一个名为 make_shirt() 的函数,它接受一个尺码以及要印到 T 恤上的字样。这个函数应打印一个句子,概要地说明 T 恤的尺码和字样。
# 使用位置实参调用这个函数来制作一件 T 恤;再使用关键字实参来调用这个函数。
def make_shirt(size,style):
print("衣服的尺码是: " + str(size) )
print("衣服的样式是: " + style.title())
make_shirt(20,'nike')
衣服的尺码是: 20
衣服的样式是: Nike
# 2.大号T恤
# 修改函数 make_shirt() ,使其在默认情况下制作一件印有字样
#“I love Python” 的大号 T 恤。调用这个函数来制作如下 T 恤:一件印有默认字样的大号
# T恤、一件印有默认字样的中号 T 恤和一件印有其他字样的 T 恤(尺码无关紧要)
def make_shirt(size,style='l love python'):
print("衣服的尺码是: " + size )
print("衣服的样式是: " + style.title())
make_shirt('大号')
make_shirt('小号')
make_shirt('中号')
衣服的尺码是: 大号
衣服的样式是: L Love Python
衣服的尺码是: 小号
衣服的样式是: L Love Python
衣服的尺码是: 中号
衣服的样式是: L Love Python
# 3.城市
# 编写一个名为 describe_city() 的函数,它接受一座城市的名字以及该城市
# 所属的国家。这个函数应打印一个简单的句子,如 Reykjavik is inIceland 。
# 给用于存储国家的形参指定默认值。为三座不同的城市调用这个函数,
# 且其中至少有一座城市不属于默认国家。
def describe_city(name,country='中国'):
print(name + " is in " + country)
describe_city(name = '上海')
describe_city('北京')
describe_city(name= '东京',country = '日本')
上海 is in 中国
北京 is in 中国
东京 is in 日本

Python 函数及参数的使用的更多相关文章

  1. Python函数可变参数*args及**kwargs详解

    初学Python的同学们看到代码中类似func(*args, **kwargs)这样的函数参数定义时,经常感到一头雾水. 下面通过一个简单的例子来详细解释下Python函数可变参数*args及**kw ...

  2. 【转】Python函数默认参数陷阱

    [转]Python函数默认参数陷阱 阅读目录 可变对象与不可变对象 函数默认参数陷阱 默认参数原理 避免 修饰器方法 扩展 参考 请看如下一段程序: def extend_list(v, li=[]) ...

  3. 详解python函数的参数

    详解python函数的参数 一.参数的定义 1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: ...

  4. 可变数据类型不能作为python函数的参数

    可变数据类型:列表.字典 不可变数据类型:整型.浮点型.字符串.元组 为什么可变数据类型不能作为python函数的参数?请看以下例子: def foo(a=[]): a.append(1) retur ...

  5. python 函数传递参数的多种方法

    python中函数根据是否有返回值可以分为四种:无参数无返回值,无参数有返回值,有参数无返回值,有参数有返回值. Python中函数传递参数的形式主要有以下五种,分别为位置传递,关键字传递,默认值传递 ...

  6. python函数动态参数详解

    Python的动态参数: 1,参数前一个"*":在函数中会把传的参数转成一个元组. def func (*args): print(args) func(123,1,2,'a') ...

  7. Python 函数的参数知识汇总

    函数搞不熟,后边就晕头转向了,在此重新归纳一下廖大神的函数教程,加深记忆 一.函数的参数分为: 位置参数 def power(x): # x 就是power(x)的一个位置参数,我们调用power(x ...

  8. Python学习笔记(四)Python函数的参数

    Python的函数除了正常使用的必选参数外,还可以使用默认参数.可变参数和关键字参数. 默认参数 基本使用 默认参数就是可以给特定的参数设置一个默认值,调用函数时,有默认值得参数可以不进行赋值,如: ...

  9. 使用可变对象作为python函数默认参数引发的问题

    写python的都知道,python函数或者方法可以使用默认参数,比如 1 def foo(arg=None): 2 print(arg) 3 4 foo() 5 6 foo("hello ...

  10. Python面试题目之Python函数默认参数陷阱

    请看如下一段程序: def extend_list(v, li=[]): li.append(v) return li list1 = extend_list(10) list2 = extend_l ...

随机推荐

  1. 6.Vue路由

    一.路由的基本概念与原理 路由是一个广义与抽象的概念,路由的本质就是对应关系 在开发中,路由分为: (1) 后端路由 (2) 前端路由 1.1 路由 1. 后端路由(根据不同的URL地址分发不同的资源 ...

  2. python 部署django项目到公网 无法连接

    https://blog.csdn.net/xiongzaiabc/article/details/108448390 服务器后台运行: https://www.jianshu.com/p/4041c ...

  3. Linux 系统下挂载linux 系统盘

    1应用背景:有时候系统崩溃无法修复,无法正常启动,而系统盘里面有需要的文件如log等需要拷贝出来,或者系统盘可以正常启动但是不方便用一台设备来启动这个系统盘.而直接将Linux系统盘接到windows ...

  4. java锁之初相见

    废话不多说,先上锁的分类图 1.乐观锁&悲观锁 悲观锁 悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,把别的线程阻塞住,最终确保数据不会被别的线程修改. ...

  5. MQ:Communications link failure

    ActiveMQ:Communications link failure问题以及解决办法   ActiveMQ版本:5.5.1 MQ 所使用的 MySQL 是 InnoDB存储引擎 记录人:@郑昀 现 ...

  6. Adams:一种使接触力(力矩等等)失效的方法

    1 第一步:点击"运行脚本". 2 第二步:右击选择"仿真脚本",点击"创建". 3 第三步:选择"脚本类型"为&quo ...

  7. baodoumi mybaitplus自增很大问题

    参考: https://blog.csdn.net/u012019209/article/details/124585933 @TableId(type = IdType.AUTO) private ...

  8. 使用shell 方式对 vcenter 进行补丁升级

    使用shell 方式对 vcenter 进行补丁升级 背景:最近VMware官网发布了最新的VMware vCenter Server 7.0 iso补丁文件,为了安全起故此对vCenter 进行安全 ...

  9. 换个脑袋,做个小练习------四则运算系统的随机出题的jsp实现

    四则运算出题系统网页界面的实现(别期待,只有俩操作数) index.jsp <%@ page contentType="text/html;charset=UTF-8" la ...

  10. 【数据结构与算法学习】散列表(Hash Table,哈希表)

    实现语言:C++ 1. 散列表 散列表,英文名称为Hash Table,又称哈希表.杂凑表等. 线性表和树表的查找是通过比较关键字的方法,查找的效率取决于关键字的比较次数. 而散列表是根据关键字直接访 ...