当前位置: 首页 > backend >正文

Python面试1

1. 解释型语言和编译型语言的区别

  • 编译型语言: 将程序编译成二进制可执行程序(C、C+++)

  • 解释型语言: 将程序逐行解释运行(python)

Java不是将源程序直接编译机器语言,而是编译成字节码文件,然后用解释方式执行字节码

2 . python中的字符串、列表、元组和字典

  • 字符串(str) : 由引号包含的任意文本

  • 列表(list):列表是有序的集合,内部元素可以改变

  • 元组(tuple):元组也是有序集合,但内部元素无法改变

  • 字典(dict):字典无序集合,内部元素由键值对组成

  • 集合(set):key的集合,每个元素都是唯一的,所有元素不重复且无序

3 .字符串常用方法

  • 切片:"str"[0:1]

  • format:"str{str}"format(str="str")

  • join:'-'.join(['str1', 'str2'])

  • String.replace(old, new, count):将字符串中的old字符替换为new字符, count为替换个数

  • split:切割字符串,得到一个列表

4. 列表常用方法

  • 切片:和字符串切片方法相同(切片操作为浅复制操作)

  • append:向列表中添加元素

  • extend:将一个可迭代对象添加到列表末尾

  • del:根据下标进行删除

  • pop:删除列表最后一个元素

  • remove:根据元素值进行删除

  • sort:将列表默认从小到大顺序进行重新排列,参数reverse=true可更改为倒序排列

  • reverse:将列表翻转

5.字典常用方法

  • dict.clear():清空字典

  • dict.pop(key):删除字典中的某一项

  • 遍历字典

    dict1 = {'key1': 1, 'key2': 2}
    key = [key for key in dict1]
    print(key)
    # ['key1', 'key2']
    value = [value for value in dict1.values()]
    print(value)
    # [1, 2]
    key_value = [(key, value) for key, value in dict1.items()]
    print(key_value)
    # [('key1', 1), ('key2', 2)]
  • fromkeys:创建字典

    keys = ['key1', 'key2']
    dict1 = dict.fromkeys(keys, 0)
    print(dict1)
    # {'key1': 0, 'key2': 0}

6. python中的字符串编码

  • encode():将字符串编译成指定bytes

  • decode():将bytes编码成字符串

7. 数值交换

a, b = 1, 2
a, b = b, a

8. is 和 == 的区别

  • is:判断对象之间的内存地址是否一致(对象的内存地址可以通过id()方法查看

  • ==:只判断对象的值是否一致

9.python函数中的参数类型

位置参数、默认参数、可变参数、关键字参数

10. *arg和**kwarg的作用

  • *arg:将位置参数转换为tuple

  • **kwarg:将关键字参数转化为dict

11.获取当前时间

datetime.datetime.now()

time.strftime('%Y-%m-%d %H:%M:%S')

12.PEP8规范

  • 尽量避免使用容易混淆的字符

  • 函数命名全部使用小写,可以使用下划线

  • 常量命名全部使用大写,可以使用下划线

  • 使用has或is前缀命名布尔元素,如is_connect = True

  • 不要使用反斜杠连接行

  • 方法定义之间空一行

  • 如果一个类不继承自其他类,就显式的从object继承

  • 内部使用的类、方法或变量需要加前缀_表示内部使用

13. python的深浅拷贝

  • 深拷贝:深拷贝会将原对象的引用对象重新复制一份,修改原对象不会对拷贝对象产生影响

  • 浅拷贝:只复制原对象的所有引用对象,修改原对象会对拷贝对象产生影响

http://www.xdnf.cn/news/9109.html

相关文章:

  • 传输线上的信号速度与阻抗无关,主要由频率决定
  • leetcode:2160. 拆分数位后四位数字的最小和(python3解法,数学相关算法题)
  • OceanBase数据库全面解析(数据定义篇DDL)
  • numpy与matplotlib学习——数据可视化入门
  • 2025密云马拉松复盘
  • 如何实现 C/C++ 与 Python 的通信
  • sqli-labs第二十七关——Trick with selectunion
  • AI时代新词-AI芯片(AI - Specific Chip)
  • 大模型量化原理
  • vue + ant-design + xlsx 实现表格导出进度提示功能
  • 【JSON-To-Video】JSON转视频教程,快速添加配音与字幕!
  • 【Java】异常处理
  • 【C++初阶】模拟实现string(二):swap优化与写时拷贝机制
  • 知识宇宙-职业篇:互联网产品经理PM
  • Debian操作系统全面解析:从起源到应用
  • MPI与多线程(如OpenMP)混合编程注意事项与性能优化
  • React与Vue的内置指令对比
  • 【C/C++】如何在一个事件驱动的生产者-消费者模型中使用观察者进行通知与解耦
  • [TriCore] 01.QEMU 虚拟化 TriCore 架构中的寄存器 指令
  • 小红书文章内容提取免费API接口教程
  • java基础(面向对象进阶高级)内部类
  • leetcode hot100刷题日记——17.搜索插入位置
  • Linux中logger命令的使用方法详解
  • 嵌入式开发STM32 -- 江协科技笔记
  • window 显示驱动开发-呈现开销改进(二)
  • c++进阶——智能指针
  • maven中的grpc编译插件protobuf-maven-plugin详解
  • SQL进阶之旅 Day 4:子查询与临时表优化
  • C/C++语言中成双成对出现的都有哪些?
  • STM32程序运行不了,仿真功能也异常,连断点和复位都异常了