正式的Python专栏第25篇,同学站住,别错过这个从0开始的文章!

前篇讲了python中的函数和高阶函数,这篇再把函数的其他部分补充一下,稍微轻松简单一些

文末评论送书,学委会用这个抽奖程序来进行严格抽奖,周六晚上10点整定时抽奖并视频公布出来,敬请期待。

函数参数如何传递

key-value方式传递参数:

下面是非常常见的传递方式,参数名写直白,写死了:

def show_info(name, title):print("姓名为:",name)print("职称为:",title)

我们在使用的时候可以用以下的方式:

show_info('雷学委', '大学生Python学习社区长')
show_info(name='雷学委', title='持续学习协会会长')

可以写成这样,使用两个*,这样非常灵活,但是缺点也是明显的(结构灵活有时候需要判断是否漏传,直接取容易出错)

def show_info_v2(**kv_dict):print("姓名为:", kv_dict['name'])print("职称为:", kv_dict['title'])show_info_v2(name='雷学委', title='大学生Python学习社区长')

下面是效果,看起来一样的。

动态长度参数传递

通常使用*加参数名。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/24 11:39 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : func_call.py
# @Project : hellodef show_info(name, title):print("姓名为:", name)print("职称为:", title)show_info('雷学委', '大学生Python学习社区区长')
show_info(name='雷学委', title='持续学习协会会长')def show_info_v2(name, title, *info):print("姓名为:", name)print("职称为:", title)print("其他评价:", info)show_info_v2('雷学委', '大学生Python学习社区区长', "热爱技术", "热爱生活")

运行效果如下:

参数是否会被函数攥改?

我们看看下面的程序即可:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/24 11:39 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : func_call.py
# @Project : hellodef compute_v1(list):sum = 0for x in list:sum += xlist = list + [sum]print("新地址:", id(list))return sumdef compute_v2(list):sum = 0for x in list:sum += xlist[0] = list[0] * 100return sum_list = [1, 2, 3, 4, 5]
print("调用计算函数v1之前:", _list)
print("调用计算函数v1之前内存地址:", id(_list))
print(compute_v1(_list))
print("调用计算函数v1之后:", _list)
print("调用计算函数v1之后内存地址:", id(_list))_list = [1, 2, 3, 4, 5]
print("调用计算函数v2之前:", _list)
print("调用计算函数v2之前内存地址:", id(_list))
print(compute_v2(_list))
print("调用计算函数v2之后:", _list)
print("调用计算函数v2之后内存地址:", id(_list))

这里两个compute函数,一个修改参数引用地址,一个并没有修改参数引用而是修改了引用内存空间的关联地址(一个变量)的值。

可以说它们都成功了。但是外面的_list 的地址是任何时候都不会被修改的,除非赋值新地址(也就是在调用v2之前重新复制那次)

下面是运行结果:

其他 - Immutable 参数

如果传入不可串改的数据类型,那么尽管是基于引用关联地址来修改值(禁止写),比如传入一个由基础数据类型元素构成元组tuple作为参数,在调用函数中修改是被禁止。
Python运行的时候会提示错误!

书籍赠送 - 【Python程序员面试笔试宝典】

【简介】

《Python程序员面试笔试宝典》是一本讲解Python程序员面试笔试的百科全书,在写法上,除了讲解如何解答Python程序员面试笔试问题以外,还引入了相关知识点辅以说明,让读者能够更加容易理解。
《Python程序员面试笔试宝典》将Python程序员面试笔试过程中各类知识点一网打尽,在广度上,通过各种渠道,搜集了近3年几乎所有IT企业针对Python岗位的笔试、面试涉及的知识点,包括但不限于Python基础与高级知识点、数据库、数据结构与算法、Python与爬虫、Python与数据分析和机器学习相关的知识点。所选择知识点均为企业招聘考查的知识点。
在讲解的深度上,本书由浅入深地分析每一个知识点,并提炼归纳,同时,引入相关知识点,并对知识点进行深度剖析,让读者不仅能够理解这个知识点,还能在遇到相似问题时也能游刃有余地解决,而这些内容是其他同类书籍所没有的。
本书根据知识点进行归纳分类,结构合理,条理清晰,对于读者进行学习与检索意义重大。
《Python程序员面试笔试宝典》是一本计算机相关专业毕业生面试、笔试的求职用书,同时也适合期望在计算机软、硬件行业大显身手的计算机爱好者阅读

【编辑推荐】

使用当下新版Python版本,真题库2020年全面更新,作者就职世界500强IT名企,培训经验丰富。
Python相关领域面试、笔试、经验心得、算法、考点、难点、真题解析一应俱全,获取高薪

目录和更多书籍信息

https://item.jd.com/10040499366331.html#none
https://weidian.v.bookuu.com/detail.php?id=101489279

总体来看这本书还是挺适合面试笔试准备的。

本文讲的函数值传递问题,是写程序经常遇到,特别的是动态参数在高级框架中使用很广泛。当然也是面试会遇到的问题之一,请读者朋友们务必掌握。

另外,我们这个社区非常不错,集齐了很多Python大咖。目前CSDN前五社区,欢迎新老朋友加入交流:大学生Python学习社区

喜欢Python的朋友,别忘了关注学委的 Python基础专栏 or Python入门到精通大专栏

持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
欢迎关注微信,点赞支持收藏!

讲讲Python中的函数传递问题 【文末送书】相关推荐

  1. Python中处理字符串的常用函数汇总【文末送书】

    正式的Python专栏第23篇,同学站住,别错过这个从0开始的文章! 今天我们说了字符串的基础,格式化,这次我们讲解字符串的常用函数,不要错过! (文本送书,评论区抽取一位送书) 前两篇都在本文同个专 ...

  2. 文末送书 | 当Python遇上高考,会发生什么?

    (文末送书哦!) 延期一个月之后,1071万考生终于熬出头了. 这届高考太难了,不仅考学生,更是考验疫情的防控能力. 但是说到难,2018年浙江省教育厅的一个决定,让不少人感叹真难! 原来早在2017 ...

  3. 文末送书 | WAF 那些事

    Hi!,我是小小,这是小小本周的最后一篇,本篇将会介绍WAF的事情,本篇将会文末送书.在此小小举出小手,相当欢迎各位快点快点快点参加. 什么是WAF WAF是一种产品,一种web应用防火墙,通过执行一 ...

  4. 文末送书|用Pandas分析了75w多条数据,揭秘美国选民的总统喜好!

    点击"一行数据",选择"置顶公众号" 文末送书,不可错过! 来源:天池大数据科研平台 原文:https://tianchi.aliyun.com/noteboo ...

  5. 深度学习与计算机视觉群 | 文末送书

    深度学习与计算机视觉③群已组建,上次开放进群,没来得及进的小伙伴,抓紧啦 .之后,我们会在交流群开展"你挑我送"为主题的送书活动哟~ 欢迎加入!!! 在过去的750天里,深度学习与 ...

  6. 张益唐被曝已证明黎曼猜想相关问题,震动数学界(文末送书)

    金磊 Alex 发自 凹非寺 量子位 | 公众号 QbitAI 文末送书活动,记得看完啊 ! 先加群后抽奖,这次仅限群友参与 Breaking News! 网传数学家张益唐,已经攻克了朗道-西格尔零点 ...

  7. 如何让Join跑的更快?(文末送书)

    JOIN 一直是数据库性能优化的老大难问题,本来挺快的查询,一旦涉及了几个 JOIN,性能就会陡降.而且,参与 JOIN 的表越大越多,性能就越难提上来. 其实,让 JOIN 跑得快的关键是要对 JO ...

  8. 统计学5大基本概念,建议收藏!(文末送书)

    转自:爱数据LoveD 大家好,我是小z,也可以叫我阿粥~ 今天给大家分享一波统计学重要概念,顺便前排提示文末送书~ 从高的角度来看,统计学是一种利用数学理论来进行数据分析的技术.象柱状图这种基本的可 ...

  9. 真实的上海IT圈:张江男vs漕河泾男(文末送书)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 人生难得几回搏,此时不搏待何时. ...

最新文章

  1. GPU微观物理结构框架
  2. springcloud是什么_阿里P8道出,入职阿里必会199道SpringCloud面试题,你能掌握多少?...
  3. spring对session和事务的管理以及OpenSessionInViewFilter是如何工作
  4. XHTML 结构化:使用 XHTML 重构网站
  5. 每一对顶点之间的最短路径
  6. springmvc 后台向页面EasyUI的Datagrid传递数据(JSon格式)
  7. 猜数字游戏的提示(UVa340)
  8. python修改html表格,使用styles和css更改pandas dataframe html表python中...
  9. Apache JMeter 压测webservice接口
  10. 解决JQuery EasyUI onLoadSuccess执行两次的问题
  11. Selenium 编写第一个自动化脚本
  12. WIN10下使用VS2017的MSVC编译FFMPEG3.4.2动态静态库
  13. FFT(不ji是干甚用的diao操作)
  14. Ubuntu 下安装 GCC 的方法
  15. 新版淘宝宽屏轮播代码带缩略图
  16. VoLTE前台信令详析及注释说明
  17. 时间展示 星期几时英文需要显示成中文问题解决
  18. 三角函数与代数恒等式(1)
  19. linux查看服务器网络延迟,ECS Linux下的qperf测量网络带宽和延迟的具体步骤
  20. win7 计算机桌面图标不见了,win7系统桌面计算机快捷图标不见了的解决方法

热门文章

  1. 电商相关:SKU概念
  2. 移动端的开发详解与1px边框等注意事项
  3. 【参赛作品29】基于openGauss数据库设计人力资源管理系统实验
  4. rpa打开浏览器_从RPA+AI到 RPA像人一样思考:来也科技发布新产品 UiBot Mage
  5. Pandas函数read_csv的参数na_values的用法
  6. AGV控制系统的6大优势介绍
  7. 基于 java 的批量下载压缩包的实现
  8. 【oracle11g,11】redo日志文件2 :日志恢复 (重点)
  9. oracle字符乱码 老熊,【转载】Hint的常见错误使用方式
  10. 百度蜘蛛爬行日志分析