函数1

(1)定义:

def 函数名(参数列表)

函数体

(2)参数传递:

在python中,一切都是对象,类型也属于对象,变量是没有类型的。

a = [1,2,3]

a = "helloworld"

以上代码中,[1,2,3]是list类型,"helloworld"是string类型,而变量a是没有类型的,它仅仅是一个对象的引用(一个指针),可以是指向list类型对象,也可以指向string类型对象。

可更改(mutable)和不可更改(immutable)对象:

在python中,string,tuples,numbers是不可更改对象,而list,dictionary等是可修改对象。

①不可变类型:变量赋值a = 5后再赋值a = 10,这里实际是新生成一个int值对象10,再让a指向它,而5被丢弃,不是改变了a的值,相当于新生成了a.

②可变类型:变量赋值list= [1,2,3,4]后再赋值list[2] = 5,则是将列表list的第三个元素值更改,本身没有动,只是内部的一部分值被修改了。

python函数的参数传递:

①不可变类型:类似于(值传递),如 整数(number)、字符串(string)、元组(tuple)。如fun(a),传递的只是a的值,没有影响a对象本身。

比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。

1 defchange(a, b):2 """传递不可变对象,交换两个数的值"""

3 c =a4 a =b5 b =c6

7 x = 2

8 y = 3

9

10 change(x, y)11

12 print(x, y)

输出结果:

2 3

可以发现,将x,y的值传入change函数,进行交换后,输出x,y的值还是原来的值,这就是不可变类型传递。

②可变类型: 类似于(引用传递),如 列表(list),字典(dict)。如 fun(list),则是将 list 真正的传过去,修改后fun外部的list也会受影响。

1 defalter_list(list):2 """传递可变对象,修改列表的值"""

3 list[0] = 3

4

5 list1 = [1, 2, 3, 4, 5]6 alter_list(list1)7 print(list1)

输出结果:

[3, 2, 3, 4, 5]

可以发现,list1中的值发生了改变,同样的写法,上面的例子中的值没有改变,而下面的值却改变,这就是因为不可变类型和可变类型的参数传递。

注意:python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。

(3)参数:

必须参数,位置参数,关键字参数,默认参数,不定长参数。

①必须参数: 调用函数时必须传入一个参数。

1 deffunc(a):2 print(a)3

4 func() #没有参数会报错

②位置参数:在传递参数时必须与形参的顺序对应。

1 deffunc(a, b):2 print('a=%s'%a)3 print('b=%s'%b)4

5 func(2, 3)6 func(3, 2)

③关键字参数:使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

1 deffunc(a, b):2   print('a=%s'%a)3   print('b=%s'%b)4

5 func(a=2, b=3)6 func(b=3, a=2)

④默认参数:调用函数时,如果没有传递参数,则会使用默认参数。

1 def func(a, b=3):2 print('a=%s'%a)3 print('b=%s'%b)4

5 func(2)

⑤不定长参数: def 函数名(形参1,*形参2)       加了星号*的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

def 函数名(形参1,**形参2) 加了两个星号**的参数会以字典的形式导入。

1 def func1(a, *b):2   print(a)3   print(b)4

5 func1(3, 4, 5, 'a', [1, 2, 3])6

7 def func2(a, **b):8print(a)9   print(b)10

11 func2(3, c=4, d=5)  # 因为**要以字典的形式存储,而字典需要key值和value值,所以传参的时候要用这种方式

输出结果:

3(4, 5, 'a', [1, 2, 3])3{'c': 4, 'd': 5}

python函数参数学习_python函数学习1相关推荐

  1. python函数参数列表_python函数列表

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python函数函数是python里组织代码的最小单元,python函数包含以下 ...

  2. c python 传参数 数组_python函数传递数组参数吗

    函数是任何一门编程语言都不可缺少的,而且也是非常重要的一部分.Python中函数的参数,可以分为以下几类: 位置参数,有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数 ...

  3. python函数参数定义_Python函数定义及参数详解

    函数定义 首先我们来创建一个函数,输出指定范围内的斐波拉契数列(Fibonacci series). #!/usr/bin/env python #coding=utf-8 ''' Created o ...

  4. python函数参数定义_python函数定义中的5种参数

    python函数参数定义 Python函数定义中的5种参数类型: (5 Types of Arguments in Python Function Definition:) default argum ...

  5. python函数参数列表_python函数的列表参数传递

    今天看书的时候发现对python函数的参数传递不是很了解,于是上网查询了一下资料.首先,看一下以下的代码: def default_para_trap(para=[],value=0): para.a ...

  6. python传递参数格式_Python语言学习基础篇之Python发送Post请求之根据参数位置传参、数据类型、不同方式传参...

    本文主要介绍了Python语言学习基础篇之Python发送Post请求之根据参数位置传参.数据类型.不同方式传参,通过具体的内容向大家展现,希望对大家Python语言的学习有所帮助. 目录 一.验证 ...

  7. python 函数参数列表_Python 函数可变参数列表*args和**kwargs

    许多语言都支持可变参数列表,python也不例外.python的可变参数列表有点不太一样,有两种类型的可变参数列表,一种是元组,一种是字典. 一,元组参数列表: (1)函数定义形式:def func( ...

  8. python测试函数怎么写_Python - 函数

    函数,function,是一段代码的集合体.是Python为了代码最大程度的重用.减小代码冗余而提供的最基本的程序结构. Python是一门面向对象的编程语言,对函数进行分类和封装,由对象实现对方法的 ...

  9. python数据参数_零基础学习python数据分析——函数的参数

    原标题:零基础学习python数据分析--函数的参数 上一节课中我们讲了python的函数定义,Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数 ...

最新文章

  1. 目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?...
  2. 软件测试工具按用途分分为哪几类,以测试的形态分软件测试可以分为哪几类?...
  3. Java 8 - Stream流骚操作解读2_归约操作
  4. 网络盒子android系统版本怎样刷机,咪咕盒子MG100强制刷机rom固件安卓系统包_刷机教程...
  5. Java黑皮书课后题第2章:*2.20(金融应用:计算利息)编写程序,读取余额和年利率百分比,打印下个月的利息
  6. 【转】NI语法 JNI参考 JNI函数大全
  7. virtualbox+vagrant学习-2(command cli)-27-vagrant connect命令
  8. 在 JQuery Mobile 中实现瀑布流图库布局
  9. Netflix:我们为什么要将GraphQL引入前端架构?\n
  10. 智能安全实验室-杀马(Defendio) 2.5.0.426 :解决因日期超过28日(29/30/31)出现的“无效属性”导致杀马无法启动的问题;...
  11. 技术分享 | 一条神奇的曲线——贝塞尔曲线在前端的应用
  12. MySQL 实现树形的遍历(关于多级菜单栏以及多级上下部门的查询问题)
  13. Spring Boot笔记-IDEA使用JPA映射时解决cannot resolve column或cannot resolve table
  14. deque冰淇淋_用冰淇淋解释组合爆炸:如何添加一点并获得很多
  15. Linux 下五个顶级的开源命令行 Shell
  16. 数据库课程设计:图书借阅管理系统(控制台交互)
  17. 这几天很可能是因为时差倒坏了
  18. 消除WordPress上的渲染阻止JavaScript和CSS
  19. 突击蓝桥杯嵌入式(一)——内容概览
  20. 备份一体机的制作原理以及工艺

热门文章

  1. bing背单词交互流程 - Chongyang Bai
  2. 百度云 网盘无法下载,错误提示:MSXML组件版本太低
  3. Android项目中,在一个数据库里建立多张表
  4. Win7 格式化U盘
  5. three.js(五) 地形纹理混合
  6. 职业生涯中最致命的十二中想法
  7. 云计算-从基础到应用架“.NET研究”构系列-云计算的演进
  8. 个人管理:如何发现自己的兴趣?
  9. 进来,让BUG远离你!
  10. 实时掌握库存动态,看贵州零售业巨头如何用数据优化库存管理!