函数的学习1——定义函数&传递实参——参考Python编程从入门到实践
定义函数
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编程从入门到实践的更多相关文章
- 函数的学习2——返回值&传递列表——参考Python编程从入门到实践
返回值 函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值.函数的返回值被称为返回值. 1. 简单的返回值 def get_formatted_name(first_name, l ...
- 函数的学习3——传递任意数量的实参&将函数存储在模块——参考Python编程从入门到实践
传递任意数量的实参 形参前加一个 * ,Python会创建一个已形参为名的空元组,将所有收到的值都放到这个元组中: def make_pizza(*toppings): print("\nM ...
- 二、继续学习(主要参考Python编程从入门到实践)
操作列表 具体内容如下: # 操作列表 # 使用for循环遍历整个列表. # 使用for循环处理数据是一种对数据集执行整体操作的不错的方式. magicians = ['alice', 'david' ...
- 字典的学习2——参考Python编程从入门到实践
遍历字典 1. 遍历所有键值对 eg1: user_0 = { 'username': 'efermi', 'first': 'enrico', 'last': 'fermi',}for key, v ...
- 字典的学习1——参考Python编程从入门到实践
字典:从汉语词意的角度理解,字典就是一个工具书,可以查找某个字.词.成语等的详细解释,字与解释相对应,而Python中字典则是一些列键和值相对应. Python中,字典放在花括号{键:值}中,eg: ...
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- 入门python:《Python编程从入门到实践》中文PDF+英文PDF+代码学习
入门python推荐学习久负盛名的python入门书籍<Python编程从入门到实践>. 书中涵盖的内容是比较精简的,没有艰深晦涩的概念,最重要的是每个小结都附带有"动手试一试& ...
- 《Python编程从入门到实践》_第八章_函数
一个简单的函数 先看一个简单的函数 def say_hello(): '''打印hello''' print("Hello!") say_hello() #运行结果 Hello! ...
- 函数的练习2——python编程从入门到实践
8-9 魔术师:创建一个包含魔术师名字的列表,并将其传递一个名为show_magicians()的函数,这个函数打印列表中每个魔术师的名字. def show_magicians(magicians) ...
随机推荐
- L1025
1,对于搜索,我有一个不成熟的想法,这不就是,强化版的for循环吗? 2,反正是搜索,那就先找搜索状态, n,x,n是第几次分,x是分剩下的数. 3,这个我觉得自己努力努力可能可以做出来. 4,首先要 ...
- LeetCode 919. Complete Binary Tree Inserter
原题链接在这里:https://leetcode.com/problems/complete-binary-tree-inserter/ 题目: A complete binary tree is a ...
- 使用docker来创建一个etcd集群
docker run -d --name etcd1 --network etcdnet --ip 172.25.0.101 -p 23791:2379 -e ETCDCTL_API=3 -v /ro ...
- JavaScript基础05——严格模式
严格模式: 除了正常运行模式,ECMAscript5添加了第二种运行模式:“严格模式”(strict mode).顾名思义,这种模式是的Javascript在更严格的条件下运行. 严格模式的作用: 1 ...
- java大附件上传,支持断点续传
一. 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传:支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传.刷新页面后继续传输. ...
- pgloader 学习(三)快速使用
pgloader 支持多种数据源数据的加载,以下列出简单的操作命令,后边会有详细的使用说明 csv 格式内容加载 预备说明 需要先在pg 数据库创建表 create table districts_l ...
- mysql 查询账户
查询 mysql 的存在的账户 >select user,host,password from mysql.user; # 可以查询涉及到user. host 链接权限.密码加密文件.
- 2-STM32+W5500+GPRS(2G)基础篇-(W5500-学习说明)
https://www.cnblogs.com/yangfengwu/p/11220042.html 定版: 这一节先直接说明怎么把官方的源码应用在我做的这块开发板上 https://www.w550 ...
- javascript之数组的全部排列组合
javascript代码如下: var arr = [1, 2, 3]; // 临时变量,用于输出 var temp = []; function n(arr) { for (var i = 0; i ...
- 记一次CDH集群日志数据清理
背景 集群运行一段时间(大概一月多)后,cloudera manager管理界面出现爆红,爆红的组件有hdfs.zookeeper. 发现问题 点击详细内容查看,报日志空间不够的错误.初步判断是各个组 ...