每日面经分享(python part1)

  1. Python中的深拷贝和浅拷贝的区别是什么?
    a. 浅拷贝创建一个新的对象,但其中的可变元素仍然共享引用。只有对象的第一层被复制,而更深层次的嵌套对象仍然是引用。更改其中一个对象的属性会影响到其他对象。
    b. 深拷贝创建一个完全独立的新对象,包括嵌套对象。深拷贝会递归复制整个对象树,因此每个对象及其嵌套对象都有自己的副本,互不影响。
  2. Python如何进行深拷贝和浅拷贝?
    a. 浅拷贝
import copynew_list = copy.copy(old_list)  # 浅拷贝列表
new_dict = copy.copy(old_dict)  # 浅拷贝字典

b. 深拷贝

import copynew_list = copy.deepcopy(old_list)  # 深拷贝列表
new_dict = copy.deepcopy(old_dict)  # 深拷贝字典

c. 深拷贝与浅拷贝区别

import copy# 原始列表
original_list = [1, 2, [3, 4]]# 浅拷贝
shallow_copy_list = copy.copy(original_list)# 深拷贝
deep_copy_list = copy.deepcopy(original_list)# 修改嵌套列表的值
original_list[2][0] = 5print(original_list)         # 输出: [1, 2, [5, 4]]
print(shallow_copy_list)     # 输出: [1, 2, [5, 4]]
print(deep_copy_list)        # 输出: [1, 2, [3, 4]]
  1. python8种数据类型
    a. 整数(int):用于存储整数值,例如1、2、-3等。
    b. 浮点数(float):用于存储带有小数部分的数值,例如3.14、2.5等。
    c. 字符串(str):用于存储文本数据,由一系列字符组成,例如"Hello, World!"、"Python编程"等。
    d. 布尔值(bool):用于存储逻辑值,表示真或假,只有两个可能的取值:True和False。
    e. 列表(list):用于存储多个有序元素的集合,元素之间用逗号分隔,可以包含不同类型的数据,例如[1, 2, 3]、[“apple”, “banana”, “orange”]等。
    f. 元组(tuple):类似于列表,但是元组是不可变的,即创建后不能修改,用圆括号括起来,例如(1, 2, 3)、(“apple”, “banana”, “orange”)等。
    g. 集合(set):用于存储无序且唯一的元素,元素之间用逗号分隔,用大括号括起来,例如{1, 2, 3}、{“apple”, “banana”, “orange”}等。
    h. 字典(dict):用于存储键值对的集合,每个键值对之间用冒号分隔,键和值之间用逗号分隔,用大括号括起来,例如{“name”: “Alice”, “age”: 20, “city”: “New York”}等。
  2. Python中的迭代器(Iterator)和可迭代对象(Iterable)的概念,它们之间的区别
    a. 可迭代对象是指那些具有__iter__()方法的对象。常见的可迭代对象包括列表、元组、字符串、字典、集合等。可迭代对象可以被用于for循环中,通过重复调用其__iter__()方法来获得一个新的迭代器对象。
    b. 迭代器是指具有__iter__()和__next__()方法的对象。iter()方法返回迭代器对象本身,而__next__()方法返回迭代器的下一个元素。当没有更多元素时,next()方法会引发StopIteration异常。迭代器对象可以记住迭代的位置,因此可以在需要时从上一次停止的地方继续迭代。
    c. 迭代器和可迭代对象之间的主要区别如下:
    i. 可迭代对象是一个集合或序列,可以使用for循环遍历其元素。它提供了一个迭代器。
    ii. 迭代器是一个对象,用于逐个访问可迭代对象的元素。迭代器在迭代过程中保持状态,以便记住当前位置。
my_list = [1, 2, 3, 4, 5]  # 可迭代对象my_iter = iter(my_list)   # 获取迭代器对象print(next(my_iter))      # 输出: 1
print(next(my_iter))      # 输出: 2
print(next(my_iter))      # 输出: 3
  1. Python中的异常处理机制(try-except语句)
try:# 可能会引发异常的代码块# ...
except ExceptionType:# 处理异常的代码块# ...
  1. Python装饰器的作用
    a. 扩展函数的功能:装饰器可以在不改变函数定义的情况下,为函数添加额外的功能,例如日志记录、性能分析、输入验证等。
    b. 代码重用和简化:装饰器可以将一些常用的代码逻辑封装起来,使其可以在多个函数中重复使用,从而简化代码。
    c. 高级函数用法:装饰器可以用于实现一些高级的函数用法,例如缓存、单例模式等。
def uppercase_decorator(func):# 装饰器函数,该装饰器接受一个函数作为参数,并返回一个新的函数wrapperdef wrapper():result = func()return result.upper()return wrapper@uppercase_decorator
def say_hello():# 调用say_hello()函数时,实际上是调用了uppercase_decorator返回的wrapper函数return "hello, world!"print(say_hello())  # 输出: HELLO, WORLD!

互联网大厂测开经历,目前担任测试开发负责人,每天分享互联网面经,如果你有测试相关的问题,欢迎咨询,海鲜市场【简历优化】、【就业指导】、【模拟/辅导面试】,已辅导20位以上同学拿到心仪offer
海鲜市场

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/589284.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++——异常机制

目录 一,背景 1.1 C语言处理错误的方式 1.2 C异常概念 二,异常的使用 2.1 异常的简单使用 2.2 异常的匹配原则 2.3 异常抛对象 2.4 异常的重新抛出 2.5 异常安全 三,自定义异常体系 四,异常优缺点 4.1 优点 4.2 缺点 …

对【AI技术创业】有哪些机会进行分析和引导

文章目录 方向一:行业解决方案,以下是一些常见的行业解决方案:方向二:智能产品和服务,以下是一些智能产品和服务的示例:方向三:教育和培训 1.智能客户服务: 利用自然语言处理(NLP)和…

day10 java封装性

封装性 为什么有封装性? 为了保护数据不被随意修改,隐藏类的实现细节。增强了代码的安全性和可维护性。 该隐藏隐藏 该暴露暴露 封装性的实现? 让调用者只能通过方法操作属性。可以在方法中加入一些限制条件或数据检查的操作。 封装性的直…

局域网与城域网(练习题)

局域网与城域网 ⭐️⭐️⭐️⭐️ 红色标记为答案⭐️⭐️⭐️⭐️ ⭐️⭐️⭐️ 蓝色标记为要点解析⭐️⭐️⭐️ 1.以下关于VLAN标记的说法中,错误的是()。 A.交换机根据目标地址和VLAN标记进行转发决策 B.进入目的网段时,交换机…

ansible-自动化工具

一、ansible概述 不是C/S架构,就是一种工具 1:linux自动化运维 编写程序实现运维自动化:shell python 工具模式自动化: ①OS Provisioning: RedHat satellite;PXE(可实现dhcp和tftp&#…

moment.js 产出未知格式的时间,可能的原因

moment.js 产出未知格式的时间,可能的原因 有个问题困扰我好久了,在项目中使用格式化时间的时候会产出一些千奇百怪的格式,产出的文字我都不认识。 百思不得其解,终于今天在看代码的时候发现了这个问题。 它的表现是这样的&…

pygame--坦克大战(一)

项目搭建 本游戏主要分为两个对象,分别是我方坦克和敌方坦克。用户可以通过控制我方的坦克来摧毁敌方的坦克保护自己的“家”,把所有的敌方坦克消灭完达到胜利。敌方的坦克在初始的时候是默认5个的(这可以自己设置),当然,如果我方坦克被敌方坦克的子弹打中,游戏结束。从…

Jmeter各组件超详细介绍

1、JMeter和Loadrunner的区别? 2、JMeter如何开发脚本的?强化脚本的技术? 代理服务器录制脚本,Fiddler录制脚本,Badboy录制脚本,根据API,手写脚本,根据抓包,手写脚本。 …

课程设计项目1.2:回音消除

01.课程设计的主要内容 02.代码效果图 1.逆系统法消除回声 2.LMS算法自适应滤波消除回声 3.用同态滤波消除回音 获取代码请关注MATLAB科研小白的个人公众号(即文章下方二维码),并回复:MATLAB课程设计本公众号致力于解决找代码难&…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之一 简单视频放大抖动效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之一 简单视频放大抖动效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之一 简单视频放大抖动效果 一、简单介绍 二、简单视频放大抖动效果实现原理 三、简单视频放大…

Emacs之极速复制文件名、绝对路径等快捷键(一百三十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

vulnhub之devguru靶场提权过程(vulnhub打靶日记)

一、环境搭建 VM版本:17.5.1 build-23298084 攻击机:Kali2024(下载地址:https://www.kali.org/) 靶机:vulnhub靶场Devguru(下载地址:https://www.vulnhub.com/entry/devguru-1,62…