昨天去面试,这5个Python面试题都被考到了,Python面试题No6

昨天去面试,这5个Python面试题都被考到了,Python面试题No6文章目录第 1 题 字符串的拼接 如何高效的拼接两个字符串 第 2 题 list a a a 1 2 3 4 5 A B C 提取出 12345 第 3 题 什么是 pickling 和 unpickling 第 4 题 说一说 Python 自省 第 5 题 什么是 python 猴子补丁 pythonmonkey 第 1 题 字符串的拼接 如何高效的拼接两个字符串 字符串拼接

第1题:字符串的拼接–如何高效的拼接两个字符串?

字符串拼接的几种方法

  1. 加号
  2. 逗号
  3. 直接连接
  4. 格式化
  5. join
  6. 多行字符串拼接()

加号

print('Python' + 'Plus') 

逗号

print("Hello", "Python") 

直接连接

print("Hello" "Python") 

格式化

print('%s %s'%('Python', 'PLUS')) 

join

str_list = ['Python', 'Plus'] a = '' print(a.join(str_list)) 

多行字符串拼接()

sql = ('select *' 'from users' 'where id=666') print(sql) 
一般情况,大家比较喜欢用“+”拼接字符串,但是这个方法并不是高效的, 因为如果需要拼接的字符串有很多(n个)的情况下, 使用”+”的话,python解释器会申请n-1次内存空间, 然后进行拷贝,因为字符串在python中是不可变的, 所以当进行拼接的时候,会需要申请一个新的内存空间。 所以,正确答案是,使用.join(list),因为它只使用了一次内存空间 

第2题: list = [‘a’,‘a’,‘a’,1,2,3,4,5,‘A’,‘B’,‘C’]提取出”12345”?

这个考点考了python的解压赋值的知识点,即 a,b,c,*middle,d,e,f = list, *middle = [1,2,3,4,5]。

注意,解压赋值提取出来的是列表

list = ['a','a','a',1,2,3,4,5,'A','B','C'] a,b,c,*middle,d,e,f = list print(middle) print(type(middle)) 

第3题: 什么是pickling和unpickling?

为了让用户在平常的编程和测试时保存复杂的数据类型,python提供了标准模块,称为pickle
这个模块可以将几乎任何的python对象(甚至是python的代码),转换为字符串表示,这个过程称为pickling
从存储的字符串中检索原始Python对象的过程称为unpickling




第4题: 说一说Python自省?

在python中,检查某些事物以确定它是什么、它知道什么以及它能做什么。

自省向程序员提供了极大的灵活性和控制力。

说的更简单直白一点:自省就是面向对象的语言所写的程序在运行时,能够知道对象的类型。简单一句就是,运行时能够获知对象的类型。

例如python, buby, object-C, c++都有自省的能力,这里面的c++的自省的能力最弱,只能够知道是什么类型,而像python可以知道是什么类型,还有什么属性。

Python中比较常见的自省(introspection)机制(函数用法)有: dir()type(), hasattr(), isinstance(),通过这些函数,我们能够在程序运行时得知对象的类型,判断对象是否存在某个属性,访问对象的属性。

  1. dir() 函数是 Python 自省机制中最著名的部分了。它返回传递给它的任何对象的属性名称经过排序的列表。如果不指定对象,则 dir() 返回当前作用域中的名称。
  2. type() 函数有助于我们确定对象是字符串还是整数,或是其它类型的对象。
  3. 对象拥有属性,并且 dir() 函数会返回这些属性的列表。但是,有时我们只想测试一个或多个属性是否存在。如果对象具有我们正在考虑的属性,那么通常希望只检索该属性。这个任务可以由 hasattr() 和 getattr() 函数来完成。
  4. isinstance() 函数测试对象,以确定它是否是某个特定类型或定制类的实例。

其他可以参考博客:https://blog.csdn.net/_/article/details/

第5题:什么是python猴子补丁python monkey patch?

在Python中,术语monkey补丁仅指run-time上的类或模块的动态修改

>>> class A: def func(self): print("Hi") >>> def monkey(self): print("Hi, monkey") >>> A.func = monkey >>> a = A() >>> a.func() Hi, monkey 

公众账号

微信搜索htmlhttp就能找到不一样的精彩

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226174.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午7:40
下一篇 2026年3月17日 上午7:40


相关推荐

  • MATLAB插值函数interp1

    MATLAB插值函数interp1插值法    插值法又称“内插法”,是利用函数f(x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f(x)的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。线性插值法    线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。    

    2022年6月13日
    34
  • mysql:Java通过驱动包(jar包)连接MySQL数据库—步骤总结及验证

    mysql:Java通过驱动包(jar包)连接MySQL数据库—步骤总结及验证Java如何使用JDBC连接MySQL数据库一、下载驱动包Java连接MySQL需要驱动包,官网下载地址为MySQL驱动包官网下载还是建议大家下载以前的版本这是我选择的版本解压后得到jar库文件1.在工程目录中创建lib文件夹,将下载好的JDBC放到该文件夹下,如下图所示:2.右键工程名,点击最下方—Propertise,在javabuildpath中的…

    2022年5月22日
    46
  • ViewStub总结

    ViewStub总结ViewStub是一个不可见的,大小为0的View,最佳用途就是实现View的延迟加载,避免资源浪费,在需要的时候才加载View;其特性如下:1、调用其inflate()的时候,其布局属性android:layout=”@layout/布局”将会替换这个ViewStub标签,这个时候我们使用findViewById将获取这个ViewStub对象为空,所以是可以被替换这一点的;2、infla

    2022年6月28日
    27
  • zookeeper install j脚本

    zookeeper install j脚本

    2022年4月2日
    39
  • IOS中多线程应用实践

    IOS中多线程应用实践

    2021年8月24日
    48
  • 我把龙虾接入微信, OpenClaw 接管了我的群聊

    我把龙虾接入微信, OpenClaw 接管了我的群聊

    2026年3月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号