每日面经分享(python part1)

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

new_list = copy.copy(old_list)  # 浅拷贝列表
new_dict = copy.copy(old_dict)  # 浅拷贝字典

b. 深拷贝

import copy

new_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] = 5

print(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):
    # 装饰器函数,该装饰器接受一个函数作为参数,并返回一个新的函数wrapper
    def 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.coloradmin.cn/o/1567965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

营销中的归因人工智能

Attribution AI in marketing 归因人工智能作为智能服务的一部分,是一种多渠道算法归因服务,根据特定结果计算客户互动的影响和增量影响。有了归因人工智能,营销人员可以通过了解每个客户互动对客户旅程每个阶段的影响来衡量和优化营销和广告…

MT3017 上色

思路&#xff1a;使用分治&#xff0c;在每个连续区域递归调用heng()和shu() #include <bits/stdc.h> using namespace std; int n, m; int h[5005];int shu(int l, int r) {return r - l 1; } int heng(int l, int r) {int hmin 0x3f3f3f3f;for (int i l; i < r;…

银行数字化转型导师坚鹏:银行数字化转型给总行带来的9大价值

银行数字化转型给总行带来的9大价值 银行数字化转型对总行的深远影响是多方面的&#xff0c;银行数字化转型导师坚鹏从以下9个方面进行详细分析&#xff0c;相信能够给您带来重要价值。 1. 客户价值 银行数字化转型可以利用大数据、智能化风控模型为客户设计、提供“千人千面…

多模态系列-综述Video Understanding with Large Language Models: A Survey

本文是LLM系列文章,针对《Video Understanding with Large Language Models: A Survey》的翻译。 论文链接:https://arxiv.org/pdf/2312.17432v2.pdf 代码链接:https://github.com/yunlong10/Awesome-LLMs-for-Video-Understanding 大型语言模型下的视频理解研究综述 摘要…

Python学习笔记-Flask接收post请求数据并存储数据库

1.引包 from flask import Flask, request, jsonify from flask_sqlalchemy import SQLAlchemy 2.配置连接,替换为自己的MySQL 数据库的实际用户名、密码和数据库名 app Flask(__name__) #创建应用实列 app.config[SQLALCHEMY_DATABASE_URI] mysqlpymysql://ro…

Linux笔记之制作基于ubuntu20.4的最小OpenGL C++开发docker镜像

Linux笔记之制作基于ubuntu20.4的最小OpenGL C开发docker镜像 —— 2024-04-03 夜 code review! 文章目录 Linux笔记之制作基于ubuntu20.4的最小OpenGL C开发docker镜像1.这里把这本书的例程代码放在了Dockerfile所在的文件夹内以使镜像预装例程代码2.创建Dockerfile3.构建Do…

c++前言

目录 1. 什么是 C 2. C 发展史 3. C 的重要性 4. 如何学习 C 5. 关于本门课程 1. 什么是C C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的 程序&#xff0c;需要高度的抽象和建模时&#xff0c; C 语言则不合适…

ShardingJdbc+Mybatis实现多数据源

Mybatis多数据源 这个是对shardingjdbc应用的一个升级&#xff0c;如果对于shardingjdbc的整合还没看过之前的文章的&#xff0c;可以先看看文章https://blog.csdn.net/Think_and_work/article/details/137174049?spm1001.2014.3001.5501 整合步骤 1、依赖 和全新项目的单…

【异常错误】 Expected to have finished reduction in the prior iteration before star、find_unused_parameters

运行代码时出现了错误&#xff1a; RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates that your module has parameters that were not used in producing loss. You can enable unused parameter …

VSCODE使用VSIX安装扩展

VSCode安装扩展特别慢&#xff0c;使用命令行安装告别龟速&#xff1a; code --install-extension当然&#xff0c;我这个是在WSL 的linux上安装的&#xff0c;Windows一样的。 VSCode扩展商店网页链接&#xff1a;https://marketplace.visualstudio.com/vscode

Ceph分布式存储系统以及高可用原理

Ceph分布式存储系统以及高可用原理 1. Ceph原理和架构1.1 分布式存储系统抽象1.2 Ceph基本组件 2 Ceph中的策略层2.1 CRUSH进行数据分发和定位2.2 PG(Placement Group): 集群管理的基本单元2.3 PG的代理primary OSD2.4 轻量级的集群元数据ClusterMap2.5 对PG的罗辑分组&#xf…

面试总结------2024/04/04

1.面试官提问&#xff1a;你说你在项目中使用springsecurity jwt 实现了登录功能&#xff0c;能简单讲一下怎么实现的吗&#xff1f; 2.使用RabbitMQ实现订单超时取消功能 订单状态定义 首先&#xff0c;我们需要定义订单的不同状态。在这个示例中&#xff0c;我们可以定义以下…

分享three.js实现乐高小汽车

前言 Web脚本语言JavaScript入门容易&#xff0c;但是想要熟练掌握却需要几年的学习与实践&#xff0c;还要在弱类型开发语言中习惯于使用模块来构建你的代码&#xff0c;就像小时候玩的乐高积木一样。 应用程序的模块化理念&#xff0c;通过将实现隐藏在一个简单的接口后面&a…

shell的编写

文章目录 1.框架2.命令行3.获取用户命令字符串4.命令行字符串分割5.执行命令和内建命令6.完整代码&#xff1a; 1.框架 我们知道shell是一直存在的&#xff0c;所以首先我们第一步就是要搭建一个框架&#xff0c;使其一直存在。 那么也很简单&#xff0c;一个while循环就可以完…

(科研实践篇)大模型相关知识

1.embedding 1.介绍&#xff1a; embedding就是用一个低纬的向量表示一个物品。而这个embedding向量的实质就是使距离相似的向量所对应的物品具有相似的含义&#xff08;参考皮尔逊算法和cos余弦式子&#xff1a;计算相似度&#xff09;简单来说&#xff0c;就是用空间去表示…

1.Docker简介和安装

1 Docker 简介 1.1 Docker 是什么&#xff1f; docker是一个开源的应用容器引擎。 1.2 容器是什么&#xff1f; 容器是一种轻量级的虚拟化技术 &#xff0c;它是一个由应用运行环境、容器基础镜像组成的集合。 以 Web 服务 Nginx 为例&#xff0c;如下图所示&#xff1a;Ngin…

【并发编程】CountDownLatch

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;并发编程 ⛺️稳中求进&#xff0c;晒太阳 CountDownLatch 概念 CountDownLatch可以使一个获多个线程等待其他线程各自执行完毕后再执行。 CountDownLatch 定义了一个计数器&#xff0c;…

贝锐蒲公英企业路由器双机热备,保障异地组网可靠、不中断

对于关键业务&#xff0c;比如&#xff1a;在线支付系统、远程医疗监控系统、重要数据中心等&#xff0c;一旦网络发生故障&#xff0c;可能导致巨大的损失或影响&#xff0c;因此需确保网络拥有极高的可靠性、稳定性和容错能力。 面对此类场景和需求&#xff0c;贝锐蒲公英异…

优秀网站收藏——持续更新

1、Uiverse.io 官网&#xff1a;Open-Source UI elements for any project Uiverse.io是一个开源免费的UI组件库&#xff0c;直接使用HTML和CSS组成&#xff0c;可以方便的使用在任何前端框架上。它包含了丰富的UI组件类型&#xff0c;如按钮、复选框、开关、卡片、加载动画、…

在s390x架构机器上构建frps/frpc镜像 —— 筑梦之路

源码&#xff1a;GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. # 克隆代码git clone https://github.com/fatedier/frp.git# 切换目录cd frp# 构建frps服务端docker build -t frps:s390x -f …