函数

  • 带名字的代码块,用于完成具体的工作
  • 关键字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. store数据仓库

    项目搭建 npm init vite-app GxShujukucd GxShujukunpm inpm i vue-router npm i vuex // 这一句是这节课的关键 新建store ① ...

  2. EVE如何提升名望值

    目录 背景介绍 简介 名望值划分 军团名望值 利弊 背景介绍 ​ 玩eve将近3个星期,开着毒蜥级刷1级代理人任务感觉没有一点难度,想尽快刷3.4级代理任务,而我目前能够接到的最高代理任务也就才1级. ...

  3. 2022安洵杯pwn-babyarm

    首先就是绕过一个简单的变表base64的加密key 然后就是一个类似ret2libc的利用方式,不过没有直接控制r0的gadget 使用的是arm32中万能的gadget from pwn impor ...

  4. ReentrantLock源码阅读

    默认构造方法初始化同步器为非公平同步器 /** * Creates an instance of {@code ReentrantLock}. * This is equivalent to usin ...

  5. celery 使用

    celery 1.celery介绍 celery能用来做什么: 1.异步任务 2.定时任务 3.延迟任务 1.1 理解celery的运行原理 1.可以不依赖任何服务器 通过自身命令 启动服务 2.ce ...

  6. 文件上传靶场 upload-labs Pass 5-10

    Pass-5 .user.ini文件 根据我的观察,最新版的upload-labs第五关和旧版的不一样,这一关可以使用和Pass-10一样的方法通过,但是,其他所有的关卡都禁止了.ini文件的上传,就 ...

  7. Github账户的注册

    注册步骤 首先进入github官网界面(注意,只能用Chrome或者Firefox浏览器.这样保险性更强一些) 官网地址:https://github.com/ 映入眼帘的界面是这样的: 点击右上角的 ...

  8. 组合计数中的q-模拟 q analog

    拒绝更新,深度和广度上建议看这个pdf URL里面用到的一些query-string过期了,,, 论文题目是 THE q-SERIES IN COMBINATORICS; PERMUTATION ST ...

  9. python进阶:带你学习实时目标跟踪

    摘要:本程序主要实现了python的opencv人工智能视觉模块的目标跟踪功能. 本文分享自华为云社区<python进阶--人工智能实时目标跟踪,这一篇就够用了!>,作者:lqj_本人 . ...

  10. Salesforce LWC学习(二十) CLI篇:新版本不支持Audience解决方案

    本篇参考:https://github.com/forcedotcom/cli/issues/470 https://developer.salesforce.com/docs/atlas.en-us ...