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. 【分布式事务】面试官问我:MySQL中的XA事务崩溃了如何恢复??
  2. EE JSP:使用JSTL标记库生成动态内容
  3. Vasya and Multisets CodeForces - 1051C 模拟|分类讨论
  4. mariadb主从搭建
  5. html表单怎么设置编码,form 表单 设置编码和页面编码
  6. MySQL select语句直接导出数据
  7. MySQL查询优化之索引
  8. python 强制转换成字符_Python笔记(三)
  9. 神奇的G1——Java全新垃圾回收机制
  10. 小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_20、SpringBoot2.x配置全局异常实战...
  11. Linux服务器沦陷为肉鸡的全过程实录
  12. php策略模式作用,PHP设计模式之策略模式详解
  13. 注册vmvare账号验证码问题
  14. Android实现图片(拍照+相册)上传功能
  15. 今天来告诉你caj文件怎么打开
  16. 一套键鼠同时控制三台电脑?罗技无线键鼠为办公效率加速
  17. FormData 对象上传二进制文件
  18. (转)使用cygwin注意事项一
  19. CentOS7.9 离线安装FTP服务器
  20. 百度又一神器发布!网友:牛逼炸了...

热门文章

  1. Activiti 6.x【6】StartEvent(上)
  2. 容器开启数据服务之旅系列(四):Kubernetes QoS 助力在线运用与大数据离线运用的带宽控制和磁盘控制...
  3. windows下如何正确使用Jconsole远程连接linux主机上的JVM
  4. Vue单文件组件基础模板
  5. 解析IBM TSM6.0版本特色功能与技术优势
  6. java中static作用详解
  7. AbstractFactory抽象工厂模式
  8. 有没有记录程序运行中所有的函数调用堆栈的工具?
  9. 320. Generalized Abbreviation-- back tracking and bit manipulation(待续)
  10. emiya-canvas.js 解决ios下拍照倾斜与canvas高清屏下绘图模糊问题