python函数-易错知识点
定义函数:
- def greet_users(names): #names是形参
- """Print a simple greeting to each user in the list."""
- for name in names:
- msg = "Hello, " + name.title() + "!"
- print(msg)
- usernames = ['hannah', 'ty', 'margot']
- greet_users(usernames)#usernames是实参
关键字def来定义一个函数。实参是调用函数时传递给函数的的信息。
调用函数时,把实参传递给函数,这个值被存储在形参中。PS:大脑中有这个概念,至于如何使用,按实际情况来考虑。
传递实参:
- def describe_pet(pet_name, animal_type='dog'):
#关联方式:位置实参;animal_type指定了默认名。若调用函数未给形参提供实参,则使用默认名。- """Display information about a pet."""
- print("\nI have a " + animal_type + ".")
- print("My " + animal_type + "'s name is " + pet_name.title() + ".")
- # A dog named Willie.
- describe_pet('willie')
- describe_pet(pet_name='willie')
- # A hamster named Harry.
- describe_pet('harry', 'hamster')
- describe_pet(pet_name='harry', animal_type='hamster')
#使用关键词实参,务必准确地指定函数定义的形参名- describe_pet(animal_type='hamster', pet_name='harry')
- 1.调用函数多次
- 2.位置实参的顺序很重要
返回值:
- def get_formatted_name(first_name, last_name, middle_name=''):、
#让实参变成可选的,形参=‘空字符串’。- """Return a full name, neatly formatted."""
- if middle_name:
- full_name = first_name + ' ' + middle_name + ' ' + last_name
- else:
- full_name = first_name + ' ' + last_name
- return full_name.title() #返回
- musician = get_formatted_name('jimi', 'hendrix')
- print(musician)
- musician = get_formatted_name('john', 'hooker', 'lee')
- print(musician)
返回字典:
- def build_person(first_name, last_name, age=''):
- """Return a dictionary of information about a person."""
- person = {'first': first_name, 'last': last_name}
- if age:
- person['age'] = age
- return person
- #返回字典,将值封装到字典中
- musician = build_person('jimi', 'hendrix', age=27)
- print(musician)
传递列表:
将列表传递给函数后,函数能直接访问其内容。
- def greet_users(names):
- """Print a simple greeting to each user in the list."""
- for name in names:
- msg = "Hello, " + name.title() + "!"
- print(msg)
- usernames = ['hannah', 'ty', 'margot'] #列表调用定义的函数,将列表传递给形参。
- greet_users(usernames)
在函数中修改列表:
- def print_models(unprinted_designs, completed_models): #定义函数1
- """
- Simulate printing each design, until there are none left.
- Move each design to completed_models after printing.
- """
- while unprinted_designs:
- current_design = unprinted_designs.pop()
- # Simulate creating a 3d print from the design.
- print("Printing model: " + current_design)
- completed_models.append(current_design) #在函数中修改列表
- def show_completed_models(completed_models): #定义函数2
- """Show all the models that were printed."""
- print("\nThe following models have been printed:")
- for completed_model in completed_models:
- print(completed_model)
- unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
- completed_models = []
- print_models(unprinted_designs, completed_models)
- show_completed_models(completed_models)
导入函数:
from 模块 import 函数 as 简标记
*代表所有函数
python函数-易错知识点的更多相关文章
- JavaScript易错知识点整理
前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...
- JavaScript 易错知识点整理
本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES ...
- JavaScript易错知识点整理[转]
前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...
- JS易错知识点
JAVASCRIPT易错知识点整理 前言 本文是学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由 ...
- JavaScript易错知识点
JavaScript易错知识点整理1.变量作用域上方的函数作用域中声明并赋值了a,且在console之上,所以遵循就近原则输出a等于2. 上方的函数作用域中虽然声明并赋值了a,但位于console之下 ...
- Java易错知识点(1) - 关于ArrayList移除元素后剩下的元素会立即重排
帮一个网友解答问题时,发现这样一个易错知识点,现总结如下: 1.易错点: ArrayList移除元素后,剩下的元素会立即重排,他的 size() 也会立即减小,在循环过程中容易出错.(拓展:延伸到所有 ...
- 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 ...
- [置顶] 单片机C语言易错知识点经验笔记
今天写这一篇文章并不是因为已经想好了一篇文章才写下来,而是我要将这一篇文章作为一个长期的笔记来写,我会一直更新.在进行单片机开发时,经常都会出现一些很不起眼的问题,这些问题其实都是很基础的c语言知识点 ...
- Python的易错点
一.列表和元组的区别 列表是允许修改的,而元组是不能修改的,元组只能实现拼接,形成一个新的元组.两者可以实现相互转换,列表转换成元组使用truple函数,而元组转换成列表使用list函数. 二.Raw ...
随机推荐
- python绘图设置标题、标签,无法显示中文
先说解决办法:在程序开始之前,引入使用的模块之后,添加如下代码: plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unico ...
- 分享一个超级好用的SM图床
分享一个超级好用的SM图床 大家都知道我是一个喜欢sm Markdown的人,但是Markdown有个很不方便的地方,就是图片的插入,一般用Markdown编辑器(我用的是Typora)直接插入图 ...
- OpenCV-Python 相机校准 | 四十九
目标 在本节中,我们将学习 由相机引起的失真类型, 如何找到相机的固有和非固有特性 如何根据这些特性使图像不失真 基础 一些针孔相机会给图像带来明显的失真.两种主要的变形是径向变形和切向变形. 径向变 ...
- 集合和映射(Set And Map)
目录 集合 Set 基于二分搜索树实现集合 基于链表实现集合 集合的时间复杂度分析 映射 Map 基于链表实现映射 基于二分搜索树实现映射 映射的时间复杂度分析 leetcode上关于集合和映射的问题 ...
- Java刷题知识点总结
1,方法的重写(override)两同两小一大原则: 方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限. ...
- RecyclerView实现拖动排序和滑动删除功能
RecyclerView 的拖动排序需要借助一下 ItemTouchHelper 这个类,ItemTouchHelper 类是 Google 提供的一个支持 RecyclerView 滑动和拖动的一个 ...
- C 旅店
时间限制 : - MS 空间限制 : - KB 评测说明 : 1s,256m 问题描述 一条笔直的公路旁有N家旅店,从左往右编号1到N,其中第i家旅店的位置坐标为Xi.旅人何老板总在赶路.他白天 ...
- WEB缓存系统之varnish代理以及健康状态检测配置
前文我们聊了下varnish的缓存项修剪配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12666406.html:今天我来说一下varnish作为代理服务 ...
- 001_创建一个sidebar切换页面
Table Of Content 准备 基本思路 实现 我们期望实现这样的效果: ![](https://img2018.cnblogs.com/blog/1735896/202001/1735896 ...
- SciPy - 正态性 与 KS 检验
假设检验的基本思想 若对总体的某个假设是真实的,那么不利于或者不能支持这一假设的事件A在一次试验中是几乎不可能发生的:如果事件A真的发生了,则有理由怀疑这一假设的真实性,从而拒绝该假设: 假设检验实质 ...