定义函数

def greet_user():
print("Hello") greet_user() # PEP8 函数和类的定义后空两行

1. 向函数传递参数

def greet_user(username):
print("Hello, " + username.title() + "!") greet_user('ges')

2. 实参和形参

函数定义时括号中的变量称之为形参,eg: username;函数调用时括号中的值或变量成为实参,eg: 'ges'。

函数调用时将实参值传递给形参,运行函数体。

传递实参

1. 位置实参

函数调用时,将函数调用中的每个实参都关联到函数定义中的一个形参,基于实参顺序的关联方式——位置实参。

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('dog', 'pipi')

运行结果:

I have a dog.
My dog's name is Pipi.

位置实参:函数调用时自动将从左往右的第一个实参传递给第一个形参,第二个实参传递给第二个形参,依次。。。

  • 函数可以多次调用:为提高工作效率,定义一个函数之后,可以多次调用,只需使用不同的实参即可。
  • 注意实参的顺序:实参的顺序应与形参的顺序一致,不然会闹出笑话。

2. 关键字实参

describe_pet(animal_type='dog', pet_name='pipi')
describe_pet(pet_name='pipi', animal_type='dog')

上述两条函数调用代码的运行结果完全一样。

传递给形参名称-值对,函数调用时就无需考虑实参顺序。

3. 默认值

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(pet_name='wangwang') # 使用默认值
describe_pet('wangwang') # 使用默认值 & 位置实参
describe_pet(pet_name='mimi', animal_type='cat') # 忽略形参的默认值,传递新的实参值

运行结果:

I have a dog.
My dog's name is Wangwang. I have a dog.
My dog's name is Wangwang. I have a cat.
My cat's name is Mimi.

4. 等效函数调用

可混合使用位置实参、关键字实参和默认值,形成了多种运行结果一致的函数调用方式——简称等效函数调用。

5. 避免实参错误

def describe_pet(pet_name, animal_type):
print("\nI have a " + animal_type + '.')
print("My " + animal_type + "'s name is " + pet_name.title() + ".") describe_pet()

运行结果:

Traceback (most recent call last):
File "C:\Users\yxf\Desktop\python_pycharm\test_def.py", line 6, in <module>
describe_pet()
TypeError: describe_pet() missing 2 required positional arguments: 'pet_name' and 'animal_type'

实参和形参不匹配时,运行报错信息会有详细信息,根据提示信息修改代码即可。

函数的学习1——定义函数&传递实参——参考Python编程从入门到实践的更多相关文章

  1. 函数的学习2——返回值&传递列表——参考Python编程从入门到实践

    返回值 函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值.函数的返回值被称为返回值. 1. 简单的返回值 def get_formatted_name(first_name, l ...

  2. 函数的学习3——传递任意数量的实参&将函数存储在模块——参考Python编程从入门到实践

    传递任意数量的实参 形参前加一个 * ,Python会创建一个已形参为名的空元组,将所有收到的值都放到这个元组中: def make_pizza(*toppings): print("\nM ...

  3. 二、继续学习(主要参考Python编程从入门到实践)

    操作列表 具体内容如下: # 操作列表 # 使用for循环遍历整个列表. # 使用for循环处理数据是一种对数据集执行整体操作的不错的方式. magicians = ['alice', 'david' ...

  4. 字典的学习2——参考Python编程从入门到实践

    遍历字典 1. 遍历所有键值对 eg1: user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi',}for key, v ...

  5. 字典的学习1——参考Python编程从入门到实践

    字典:从汉语词意的角度理解,字典就是一个工具书,可以查找某个字.词.成语等的详细解释,字与解释相对应,而Python中字典则是一些列键和值相对应. Python中,字典放在花括号{键:值}中,eg: ...

  6. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  7. 入门python:《Python编程从入门到实践》中文PDF+英文PDF+代码学习

    入门python推荐学习久负盛名的python入门书籍<Python编程从入门到实践>. 书中涵盖的内容是比较精简的,没有艰深晦涩的概念,最重要的是每个小结都附带有"动手试一试& ...

  8. 《Python编程从入门到实践》_第八章_函数

    一个简单的函数 先看一个简单的函数 def say_hello(): '''打印hello''' print("Hello!") say_hello() #运行结果 Hello! ...

  9. 函数的练习2——python编程从入门到实践

    8-9 魔术师:创建一个包含魔术师名字的列表,并将其传递一个名为show_magicians()的函数,这个函数打印列表中每个魔术师的名字. def show_magicians(magicians) ...

随机推荐

  1. solidworks 学习 (四)

    旋钮三维建模

  2. 从TEB到PEB再到SEH(二)

    什么是SEH? SEH( Structured Exception Handling , 结构化异常处理 ) 结构化异常处理(SEH)是Windows操作系统提供的强大异常处理功能.而Visual C ...

  3. circus && web comsole docker-compose 独立部署web console 的一个bug

    如果直接使用以下的docker-compose 文件部署会有通过多播通信获取endpoint 异常的问题(circus 在stats endpoint 获取少了一个c) 这个问题是部分网络情况下会出现 ...

  4. circus security 来自官方的安全建议

    转自:https://circus.readthedocs.io/en/latest/design/security/ Circus is built on the top of the ZeroMQ ...

  5. javascript根据两点和底角,计算等腰三角形的顶点坐标

    参考图: 代码如下: var x1 = 0; var y1 = 100; var x2 = -100; var y2 = 0; var angle = 30; var PI = Math.PI; // ...

  6. 微信小程序地图组件

    index.wxml <map id="map" markers="{{markers}}" longitude="{{longitude}}& ...

  7. Tkinter 之文件管理器

    一.效果图 二.功能描述 1.打开文件菜单中的打开按钮,可以选择目录. 2.可以查看各种类型的图片. 3.可以编辑文本. 4.显示行号功能,可改变目录显示的宽度. 三.使用的标签 1.Menu 2.F ...

  8. 使用RestTemplate请求报出HttpClientErrorException异常并获取不到返回body数据

    描述: 使用RestTemplate请求url,由于Token等验证信息参数失效,报出 401 HttpClientErrorException异常.并且获取不到body消息体的错误信息.然而post ...

  9. IDEA文件查找功能失效(ctrl+shift+N)

    由于断电.蓝屏引起的强制关机等情况,会导出IDEA文件查找功能失效,Enter file name窗口输入的文字显示红色,无法查出需要的文件.  解决方法: 可以点击File,选择Invalidate ...

  10. NamedPipeStream的使用案例

    NamedPipeStream的使用具体案例如下: using System; using System.Data; using System.Data.SQLite; using System.IO ...