定义函数:

  1. def greet_users(names): #names是形参
  2. """Print a simple greeting to each user in the list."""
  3. for name in names:
  4. msg = "Hello, " + name.title() + "!"
  5. print(msg)
  6.  
  7. usernames = ['hannah', 'ty', 'margot']
  8. greet_users(usernames)#usernames是实参

关键字def来定义一个函数。实参是调用函数时传递给函数的的信息。

调用函数时,把实参传递给函数,这个值被存储在形参中。PS:大脑中有这个概念,至于如何使用,按实际情况来考虑。

传递实参:

  1. def describe_pet(pet_name, animal_type='dog'):
    #关联方式:位置实参;animal_type指定了默认名。若调用函数未给形参提供实参,则使用默认名。
  2. """Display information about a pet."""
  3. print("\nI have a " + animal_type + ".")
  4. print("My " + animal_type + "'s name is " + pet_name.title() + ".")
  5.  
  6. # A dog named Willie.
  7. describe_pet('willie')
  8. describe_pet(pet_name='willie')
  9.  
  10. # A hamster named Harry.
  11. describe_pet('harry', 'hamster')
  12. describe_pet(pet_name='harry', animal_type='hamster')
    #使用关键词实参,务必准确地指定函数定义的形参名
  13. describe_pet(animal_type='hamster', pet_name='harry')
  • 1.调用函数多次
  • 2.位置实参的顺序很重要

 返回值:

  1. def get_formatted_name(first_name, last_name, middle_name=''):、
    #让实参变成可选的,形参=‘空字符串’。
  2. """Return a full name, neatly formatted."""
  3. if middle_name:
  4. full_name = first_name + ' ' + middle_name + ' ' + last_name
  5. else:
  6. full_name = first_name + ' ' + last_name
  7. return full_name.title() #返回
  8.  
  9. musician = get_formatted_name('jimi', 'hendrix')
  10. print(musician)
  11.  
  12. musician = get_formatted_name('john', 'hooker', 'lee')
  13. print(musician)

 返回字典:

  1. def build_person(first_name, last_name, age=''):
  2. """Return a dictionary of information about a person."""
  3. person = {'first': first_name, 'last': last_name}
  4. if age:
  5. person['age'] = age
  6. return person
  7. #返回字典,将值封装到字典中
  8. musician = build_person('jimi', 'hendrix', age=27)
  9. print(musician)

传递列表:

将列表传递给函数后,函数能直接访问其内容。

  1. def greet_users(names):
  2. """Print a simple greeting to each user in the list."""
  3. for name in names:
  4. msg = "Hello, " + name.title() + "!"
  5. print(msg)
  6.  
  7. usernames = ['hannah', 'ty', 'margot'] #列表调用定义的函数,将列表传递给形参。
  8. greet_users(usernames)

在函数中修改列表:

  1. def print_models(unprinted_designs, completed_models): #定义函数1
  2. """
  3. Simulate printing each design, until there are none left.
  4. Move each design to completed_models after printing.
  5. """
  6. while unprinted_designs:
  7. current_design = unprinted_designs.pop()
  8.  
  9. # Simulate creating a 3d print from the design.
  10. print("Printing model: " + current_design)
  11. completed_models.append(current_design) #在函数中修改列表
  12.  
  13. def show_completed_models(completed_models): #定义函数2
  14. """Show all the models that were printed."""
  15. print("\nThe following models have been printed:")
  16. for completed_model in completed_models:
  17. print(completed_model)
  18.  
  19. unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
  20. completed_models = []
  21.  
  22. print_models(unprinted_designs, completed_models)
  23. show_completed_models(completed_models)

导入函数:

from 模块 import 函数 as 简标记

*代表所有函数

python函数-易错知识点的更多相关文章

  1. JavaScript易错知识点整理

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  2. JavaScript 易错知识点整理

    本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES ...

  3. JavaScript易错知识点整理[转]

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  4. JS易错知识点

    JAVASCRIPT易错知识点整理 前言 本文是学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由 ...

  5. JavaScript易错知识点

    JavaScript易错知识点整理1.变量作用域上方的函数作用域中声明并赋值了a,且在console之上,所以遵循就近原则输出a等于2. 上方的函数作用域中虽然声明并赋值了a,但位于console之下 ...

  6. Java易错知识点(1) - 关于ArrayList移除元素后剩下的元素会立即重排

    帮一个网友解答问题时,发现这样一个易错知识点,现总结如下: 1.易错点: ArrayList移除元素后,剩下的元素会立即重排,他的 size() 也会立即减小,在循环过程中容易出错.(拓展:延伸到所有 ...

  7. Python入门---易错已错易混淆----知识点

    1.not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 结果会输出啥? 根据优先级:(not 1) or (0 and 1) or (3 a ...

  8. [置顶] 单片机C语言易错知识点经验笔记

    今天写这一篇文章并不是因为已经想好了一篇文章才写下来,而是我要将这一篇文章作为一个长期的笔记来写,我会一直更新.在进行单片机开发时,经常都会出现一些很不起眼的问题,这些问题其实都是很基础的c语言知识点 ...

  9. Python的易错点

    一.列表和元组的区别 列表是允许修改的,而元组是不能修改的,元组只能实现拼接,形成一个新的元组.两者可以实现相互转换,列表转换成元组使用truple函数,而元组转换成列表使用list函数. 二.Raw ...

随机推荐

  1. python绘图设置标题、标签,无法显示中文

    先说解决办法:在程序开始之前,引入使用的模块之后,添加如下代码: plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unico ...

  2. 分享一个超级好用的SM图床

    分享一个超级好用的SM图床 ​ 大家都知道我是一个喜欢sm Markdown的人,但是Markdown有个很不方便的地方,就是图片的插入,一般用Markdown编辑器(我用的是Typora)直接插入图 ...

  3. OpenCV-Python 相机校准 | 四十九

    目标 在本节中,我们将学习 由相机引起的失真类型, 如何找到相机的固有和非固有特性 如何根据这些特性使图像不失真 基础 一些针孔相机会给图像带来明显的失真.两种主要的变形是径向变形和切向变形. 径向变 ...

  4. 集合和映射(Set And Map)

    目录 集合 Set 基于二分搜索树实现集合 基于链表实现集合 集合的时间复杂度分析 映射 Map 基于链表实现映射 基于二分搜索树实现映射 映射的时间复杂度分析 leetcode上关于集合和映射的问题 ...

  5. Java刷题知识点总结

    1,方法的重写(override)两同两小一大原则: 方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限. ...

  6. RecyclerView实现拖动排序和滑动删除功能

    RecyclerView 的拖动排序需要借助一下 ItemTouchHelper 这个类,ItemTouchHelper 类是 Google 提供的一个支持 RecyclerView 滑动和拖动的一个 ...

  7. C 旅店

    时间限制 : - MS   空间限制 : - KB  评测说明 : 1s,256m 问题描述 一条笔直的公路旁有N家旅店,从左往右编号1到N,其中第i家旅店的位置坐标为Xi.旅人何老板总在赶路.他白天 ...

  8. WEB缓存系统之varnish代理以及健康状态检测配置

    前文我们聊了下varnish的缓存项修剪配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12666406.html:今天我来说一下varnish作为代理服务 ...

  9. 001_创建一个sidebar切换页面

    Table Of Content 准备 基本思路 实现 我们期望实现这样的效果: ![](https://img2018.cnblogs.com/blog/1735896/202001/1735896 ...

  10. SciPy - 正态性 与 KS 检验

    假设检验的基本思想 若对总体的某个假设是真实的,那么不利于或者不能支持这一假设的事件A在一次试验中是几乎不可能发生的:如果事件A真的发生了,则有理由怀疑这一假设的真实性,从而拒绝该假设: 假设检验实质 ...