python参数_python参数的介绍

一、函数

1.为什么要使用函数?

减少代码的冗余

2.函数先定义后使用(相当于变量一样先定义后使用)

3.函数的分类:

内置函数:python解释器自带的,直接拿来用就行了

自定义函数:根据自己的需求自己定义的函数

def func(): #函数名打印出来的是内存地址

'''注释'''

函数体

4.函数定义都干了些什么事?

只检测语法,不执行代码

5.函数就是一段功能,尽量把函数名定义的有意义

6.定义函数的三种方式:

有参数的函数:就是接受外部传进来的值,进行一系列的运算,最后吧结果返回出来

无参数的函数:通常只是做一下操作而已

空函数:什么事情都不做就是一个空函数(即便是一个空函数,他也会有如下属性)

7.函数的返回值:可返回任意类型的值

什么时候需要有返回值:具体情况具体分析

什么时候没有返回值:具体情况具体分析

8.yield和return的区别

yield 停在那呢,挂起了

yield 能返回多次值;return 返回一次值

yield 保存函数状态

9.函数的调用:函数名加()

10.函数参数

形参:定义函数时括号内写的参数

形参在定义阶段是不占内存空间的,在调用的时候才占用内存空间

实参:在调用函数时括号内传进来的值

函数参数的具体用法

1.位置参数:

1.按照位置传参

按位置定义的形参必须要传值

按位置定义的实参按照位置与形参一一对应的传

2.按照关键字传数:按照key=value的形式定义的实参,传的时候与位置没有关系

def foo(x,y):

pass

foo(1,2) #与形参一一对应

foo(y=2,x=1) #关键字参数,指名道姓的传

foo(1,y=2) #混用位置实参和关键字实参

#混着用时:注意:1.不能给同一个形参重复赋值

2.位置实参必须在关键字实参的前面

2.默认参数:在定义阶段就已经为形参赋值了,意味着在调用阶段就可以不为默认参数传值

如果给默认参数传值了,就把一开始设置的给替换了。

默认参数定义的场景:大多数都是男性,女性很少时就可以设置个默认,当然还有其他场景

注意:1.默认参数必须在位置形参后面

2.默认参数的值只在函数定义阶段生效一次,定义之后的修改不会影响它的值

3.默认参数不要弄成可变类型的,就像是列表,就是一个坑

3.动态参数

可变长度的参数(长度指的是参数的个数):参数*,**

1.*会把多出来的值传给z,并且以元组的形式返回

2.**会把多出来的值传给z,并且以字典的形式返回

3.在实参中只要碰到*(),就是打散了

只要是可迭代的就可以用*

*就相当于for循环的操作,遇到*先打散

*args,**kwargs(可传任意值)

可变长度的参数:从实参的角度推算出形参对应的形式*和**

针对按照位置定义的实参多出来的那部分,会被形参中的*处理,并且保存成元组的形式复制给args

针对按照关键字定义的实参多出来的那部分,会被形参中的**处理,并且保存成字典的形式复制给kwargs

copycode.gif

1 # 1.举例一、

2 def foo(x,y,*args):

3 print(x,y)

4 print(args)#args相当于(3, 4, 5, 6, 7, 8, 9),那么*args相当于*(3, 4, 5, 6, 7, 8, 9)

5 print(args[0])

6 print(*args) # 加个*就是把上面的元组给打散了,就还是和原来传实参的时候的形式一样了

7

8 foo(1,2,3,4,5,6,7,8,9)

9 foo(1,2,3,*(4,5,6,7,8,9)) #也可以这样传 就相当于foo(1,2,3,4,5,6,7,8,9)

10

11 # 2.举例二、

12 def bar(x,y,z):

13 print(x,y,z)

14 bar(1,2,3)

15 bar(*['b','a','c']) #bar('b','a','c')

16 bar(*'hel') #bar('h','e','l')

17 bar(*{'a':1,'b':2,'c':3}) #bar('b','a','c')

18 # 强调:如果实参中出现了*和**,第一时间打散了去看

19

20 # 3.举例三、

21 def foo(x,y,**kwargs):

22 print(x,y)

23 print(kwargs) #{'c': 3, 'd': 4, 'f': 6} 吧多余的元素以字典的形式返回了

24 print(*kwargs) #输出c d f ,就是把字典打散了

25 #

26 # foo(1,y=2,c=3,d=4,f=6)

27

28 # 4.举例四、

29 def index(x,y,z=1):

30 print(x,y,z)

31 def wrapper(*args,**kwargs):

32 index(args,kwargs)

33 index(*args, **kwargs) #就是打散了

34 wrapper(1,2,3)

35 wrapper(1,2)

36 wrapper(x=1,y=2)

37 wrapper(1,y=2)

38 '''可变长度的参数:从实参的角度推算出形参对应的形式 * 和 **

39 针对按照位置定义的实参冗余的部分,会被形参中的 * 保存成元组的形式赋值给args

40 针对按照关键定义的实参冗余的部分,会被形参中的 ** 保存成字典的形式赋值给kwargs

41 强调:

42 如果实参中出现了 * 和 **,第一时间打散了去看。

43 '''

copycode.gif

强调:

如果实参中出现了*和**,第一时间打散了去看

11.命名关键字参数(了解):在定义阶段,在*之后定义的形参称为命名关键字参数

特点是:在调用阶段,该参数必须以关键字的形式被传值

def foo(x,y,*,a,b):

print(x)

print(y)

print(a)

print(b)

foo(1,2,b=20,a=10)

控制函数调用的时候必须以关键字传参的时候就用命名关键字传参

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一篇文章指明做JavaWeb项目需要的前置知识+完整项目初解读(萌新必看,十分友好)

前言 过了web这个阶段了,项目也完成了的我想给各位后来者总结一下我整个项目从开始到结束的经验,当然,也不是一帆风顺,报错有时候折磨的要死,废话不多说,现在就开始吧。 本文一共分为两个部分:…

HashMap 实现原理

转载自 HashMap 实现原理HashMap是常考点,而一般不问List的几个实现类(偏简单)。以下基于JDK1.8.0_102分析。 内部存储 HashMap的内部存储是一个数组(bucket),数组的元素Node实现了是Map.Entry接口(hash, key, value, next)&#…

mybatis-启动源码分析

【1】测试用例 mybatis-config.xml <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configurat…

git 合并冲突_git分支管理的策略和冲突问题

备注&#xff1a;知识点关于分支中的冲突分支管理的策略分支策略备注&#xff1a;本文参考于廖雪峰老师的博客Git教程。依照其博客进行学习和记录&#xff0c;感谢其无私分享&#xff0c;也欢迎各位查看原文。知识点git log --graph --prettyoneline --abbrev-commit查看分支合…

mysql duplicate key与replace into对比

【REDME】 有些业务场景如下&#xff1a; 对于数据已经存在的&#xff0c;则更新&#xff1b;否则新增&#xff1b; 怎么判定数据已经存在&#xff0c;通过主键或唯一索引来判断&#xff1b; 业务场景&#xff1a;业务库的全局参数表的参数值的新增或更新就是 有则更细无则…

基于springboot+vue的前后端分离商城系统

springboot前后端分离商城 介绍 springboot前后端分离商城 本项目由本人根据教程实现的一个springboot项目&#xff0c;基本已实现项目&#xff0c;但是本人希望加入自己的小功能&#xff0c; 请期待下一次的更新~ 教程地址&#xff1a;教程 软件架构 软件架构说明: 本项目…

Java 8 HashMap键与Comparable接口

转载自 Java 8 HashMap键与Comparable接口 这篇文章主要介绍了 Java 8 在 HashMap 哈希冲突处理方面的新特性。 相对之前的版本&#xff0c;Java 8 在许多方面有了提升。其中有很多类被更新了&#xff0c;HashMap 作为最常使用的集合类之一也不例外。这篇文章将介绍 Java 8 中…

hash地址_一致性Hash在负载均衡中的应用

作者&#xff1a;marklux原文&#xff1a;http://marklux.cn/blog/90简介一致性Hash是一种特殊的Hash算法&#xff0c;由于其均衡性、持久性的映射特点&#xff0c;被广泛的应用于负载均衡领域&#xff0c;如nginx和memcached都采用了一致性Hash来作为集群负载均衡的方案。本文…

(转)linux上nginx源码编译安装

亲测有效&#xff1b; 转&#xff1a; https://segmentfault.com/a/1190000007116797https://segmentfault.com/a/1190000007116797 nginx服务器详细安装过程&#xff08;使用yum 和 源码包两种安装方式&#xff0c;并说明其区别&#xff09; 正在上传…重新上传取消​fuyi…

牛客网JAVA专项联系共899题--个人记录学习经历

总览 共刷900题 其中也有许多知识点是未曾涉足的&#xff0c;但大部分还是java的基础。 基本数据 正确题数&#xff1a;正确率百分之67&#xff0c;即&#xff1a;对了603题&#xff1b; 时间&#xff1a;5天&#xff08;每天4小时左右&#xff09; 错题&#xff1a; 收藏数…

ffmpeg中文开发手册_快速调用复杂命令,支持中文注释,命令行备忘工具navi两天就火了...

晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI刚学的一句新命令&#xff0c;才用完就忘了用法&#xff1f;通常情况下&#xff0c;命令后加一句—help就行了。但是&#xff0c;命令的帮助文档往往内容太太太太多了&#xff0c;在里面找到自己关心的部分实在太难了。查找出来的…

用python绘制图形_使用Python的turtle画炫酷图形

例子一&#xff1a; import turtle t turtle.Pen() turtle.bgcolor("black") sides6 colors["red","yellow","green","blue","orange","purple"] for x in xrang(360): t.pencolor(colors[x%sides]) t…

leetcode初级算法1.删除排序数组中的重复项

leecode初级算法1.删除排序数组中的重复项 仅为个人刷题记录&#xff0c;不提供解题思路 题解与收获 class Solution {public int removeDuplicates(int[] nums) {int n nums.length;if (n 0) {return 0;}int fast 1, slow 1;while (fast < n) {if (nums[fast] ! num…

(转)mybatis热部署加载*Mapper.xml文件,手动刷新*Mapper.xml文件

转自&#xff1a; https://blog.csdn.net/LOVELONG8808/article/details/78738086 由于项目已经发布到线上&#xff0c;要是修改一个Mapper.xml文件的话&#xff0c;需要重启整个服务&#xff0c;这个是很耗时间的&#xff0c;而且在一段时间内导致服务不可用&#xff0c;严重…

图解HashMap和HashSet的内部工作机制

转载自 图解HashMap和HashSet的内部工作机制HashMap 和 HashSet 内部是如何工作的&#xff1f;散列函数&#xff08;hashing function&#xff09;是什么&#xff1f; HashMap 不仅是一个常用的数据结构&#xff0c;在面试中也是热门话题。 Q1. HashMap 如何存储数据&#xff1…

window location href 手机端无法跳转_Window对象在前端领域的角色

特殊的window提起window&#xff0c;在网页当中很常见&#xff0c;比如像这样&#xff1a;window.onloadfunction(){ //执行函数体 }这段代码的意思是当网页内容加载完成后要做什么。在js的领域&#xff0c;window对象有着双重角色&#xff0c;既是用来访问浏览器窗口的接口&am…

leetcode初级算法2.旋转数组

leecode初级算法2.旋转数组 仅为个人刷题记录&#xff0c;不提供解题思路 题解与收获 我自己的解法&#xff1a; public static void rotate(int[] nums, int k) {int move k % nums.length;Stack<Integer> stack new Stack<>();if(move 0){return;}else {f…

java运行环境变量及自定义变量

【README】 本文主要介绍java运行环境变量的获取&#xff0c;如何读取 env.properties 文件并将自定义变量写入到系统变量&#xff1b; 【1】System.getenv() 获取环境变量 public static void main1() {Map<String, String> envMap System.getenv();envMap.entrySet(…

Java HashSet和HashMap源码剖析

转载自 Java HashSet和HashMap源码剖析总体介绍 之所以把HashSet和HashMap放在一起讲解&#xff0c;是因为二者在Java里有着相同的实现&#xff0c;前者仅仅是对后者做了一层包装&#xff0c;也就是说HashSet里面有一个HashMap&#xff08;适配器模式&#xff09;。因此本文将重…

怎么把页面按比例缩小_meta viewport 是做什么用的,怎么写?

前置知识&#xff08;有助于viewport的理解&#xff09;李明&#xff1a;设备像素、设备独立像素、CSS像素、分辨率、PPI、devicePixelRatio​zhuanlan.zhihu.com移动端的问题屏幕窄&#xff0c;一般来说设备独立像素不超过400px。比如把网站侧边栏宽度设置为10%&#xff0c;这…