python函数常考题

可变类型为参数

不能类型为参数

python如何传递参数

传递值还是引用呢?都不是。唯一支持的参数传递是共享穿参

Call by Object(Call by Object Reference or Call by Sharing)

Call by sharing(共享传参)。函数形参获得实参中各个引用的副本

def flist(l):

l.append(0)

print(l)

l = [] #指向同一个内存地址

flist(l) # [0]

flist(l) # [0,0]

#list作为可变类型传递,可变类型在同一对象上修改

def fstr(s):

s += 'a'

print(s)

s = 'hehe' #不可变类型传递,每次赋值在一个新对象上操作,传递的形参指向新的对象

fstr(s) # 'hehea'

fstr(s) # 'hehea'

python可变/不可变对象

搞懂可变和不可变内置对象有利于理解函数参数的副作用

哪些是可变对象?哪些不可变?

不可变对象 bool/int/float/tuple/str/frozenset

可变对象 list/set/dict

python可变参数作为默认参数

# 默认参数只计算一次

def flist(l=[1]):

l.append(1)

print(l)

flist()# [1,1]

flist()#[1,1,1]

python*args,**kwargs

函数传递中 *args, **kwargs含义是什么

用来处理可变参数

*args 被打包成tuple

**kwargs被打包成为dict

什么是python异常

BaseException

SystemExit/KeyboardInterrupt/GeneratorExit

Exception

使用异常的常见场景

什么时候需要捕获处理异常呢?看python内置异常的类型

网络请求(超时,连接错误)

资源访问(权限,资源不存在)

代码逻辑(越界访问,keyError)

try:

# func#可能会抛出异常的代码

except (Exception1, Exception2) as e: #可以捕获多个异常并处理

# 异常处理的代码

else:

# pass # 异常没有发生的时候代码逻辑

finally:

pass # 无论异常有没有发生都会执行代码,一般处理资源的关闭和释放

如何自定义异常

继承Exception实现自定义异常

给异常加上一些附加信息

处理一些业务相关的特定异常(raise MyException)

class MyException(Exception);

pass

try:

raise MyException('my exception')

except Exception as e:

print(e)

python常考题_python面试总结2(函数常考题和异常处理)相关推荐

  1. 面试python的理解_Python面试中会遇到的一些问题,和自己的理解。

    1 类变量和实例变量 类变量: ​是可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的).例如下例中,num_of_instance 就是类变量,用于跟踪存在着多少个Test 的实例 ...

  2. 如何用python生成软件_python中的生成器函数是如何工作的?

    1. python中的普通函数是怎么运行的? 当一个python函数在执行时,它会在相应的python栈帧上运行,栈帧表示程序运行时函数调用栈中的某一帧.想要获得某个函数相关的栈帧,则必须在调用这个函 ...

  3. python 返回空格_Python面试之 is 和 == 的区别

    Python爬虫人工智能学习教程​www.python88.cn 面试实习生的时候,当问到 is 和 == 的区别时,很多同学都答不上来,搞不清两者什么时候返回一致,什么时候返回不一致.本文我们来看一 ...

  4. python 一等公民_Python中一等公民——函数

    Python中"一等公民"--函数 Python的函数是"一等公民". 你可以将它们分配给变量,将它们存储在数据结构中,将它们作为参数传递给其他函数,甚至将它们 ...

  5. python 挂起_Python Killing挂起函数

    我正在为一个概念性问题编写一个服务器后端,这个问题可能是在一些CTF挑战中托管的. 它将托管在Ubuntu12.04LTS.nginx1.1.19和uWSGI 1.0.3-debian上,后者将处理p ...

  6. python计时器代码_Python功能点实现:函数级/代码块级计时器

    工程中我们常常需要对某一个函数或者一块代码计时,从而监测系统关键位置的性能.计时方法是在代码块前后分别记录当前系统时间,然后两者相减得到代码块的耗时.最简单原始的实现类似: from datetime ...

  7. python求极限_Python符号计算之实现函数极限的方法

    python, 符号计算(symbolic)怎么转换到数值计算(nupython, 符号计算(symbolic)怎么转换到数值计算(numerical)?比如说小编有#./usr/bin/env py ...

  8. 怎么用python算极限_Python符号计算之实现函数极限的方法

    SymPy是符号数学的Python库.它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁.易于理解和扩展 #coding:utf-8 ''' 函数极限 ''' import sympy sym ...

  9. python句子反转_Python自定义句子反转函数

    上一篇介绍字符串反转:字符串'hello'变成'olleh',也就是反转字符串,尽量不用Python的函数,尽量节省时间与空间. 这次句子反转,是在字符串反转的基础上的再次反转. 要求:将句子'hel ...

最新文章

  1. 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器
  2. AI Frontiers | 微软首席 AI 科学家邓力演讲:口语对话系统的分类及三代演变
  3. C#中判断某软件是否已安装
  4. android dpi
  5. docker 搭建nginx php mysql_Docker搭建PHP/Nginx/MySQL/Composer环境
  6. sqlite简单介绍
  7. 风机桨叶故障诊断(五) 修改隐含层神经元个数的尝试
  8. android权限机制6.0,Android6.0权限机制(二):封装
  9. Remoting示例
  10. 关于“VS2013无法启动程序,系统找不到指定的文件“这个问题的一个解决方法
  11. Julia: 趣!,13579分别在一本168页书的页码中出现的次数
  12. 驱动修复完成,计算机需要重启,如何在win10上修复设备驱动程序问题,维修教程送给你...
  13. OTDR常见测试曲线​
  14. java毕业设计物流跟踪系统mybatis+源码+调试部署+系统+数据库+lw
  15. html5 调用摄像头 支持IE,ie调用不了摄像头 为什么电脑IE浏览器无法启动摄像头...
  16. 【数据结构-串】手算KMP算法的next和nextval数组
  17. openlayer4加载arcgis rest服务(遥感影像切片)
  18. c语言的split字符串分割(函数strtok)
  19. 2022春招第一波投递时间预测,早看早知道
  20. Altium Designer挖空开槽填坑之board cutout

热门文章

  1. 大尺寸3D打印机:不再是“围城”!工业级3D打印的瞬发时代已来!
  2. 暑假集训8.10-网络流套树剖套线段树
  3. Django中html里的分页显示
  4. 流程 - 什么是真正的Scrum?
  5. 懒加载实现的分页网站footer自适应
  6. Android自定义spinner下拉框实现的实现
  7. 移动端与PHP服务端接口通信流程设计(基础版)
  8. linux定时运行命令脚本——crontab
  9. 许昌网络企业网站建设的10个理由
  10. 多线程下载问题(IDHTTP)