python面试实战经验分享

2025/3/28第一面 杭州实在智能 见习python开发工程师

1、Python方法中参数默认值可以是列表或者字典吗?
在Python中,函数参数的默认值可以是列表或字典,列表或者字典在初始化应在函数体内,如果不正确处理,可能会导致所有调用都共享同一个列表。
2、协程、线性和进程
进程是系统资源分配的最小单位,线程是 CPU 调度的最小单位。
协程是属于线程的。协程程序是在线程里面跑的,因此协程又称微线程和纤程等。协程的调度切换是用户(程序员)手动切换的,因此更加灵活,因此又叫用户空间线程。协程原子操作性。由于协程是用户调度的,所以不会出现执行一半的代码片段被强制中断了,因此无需原子操作锁。
3、说说你对redis的了解
4、Python中如何处理并发
1.多线程(Threading)2. 多进程(Multiprocessing)3. 异步编程(Asyncio)4. 使用并发队列(Concurrency with Queues)
5、有没有了解过flask框架
6、jwt每个部分是干什么的,jwt与普通token的区别
一个JWT是由三个部分来组成的,头部(header),载荷(payload),签名(signature)
头部数据包含加密类型,使用的加密算法。
载荷是 JSON Web Token 的主体内容部分,包含jwt过期时间、jwt的签发者,接收jwt的一方。
签名需要使用编码后的 header 和 payload 以及我们提供的一个密钥
区别:Token需要在服务器端查询数据库。服务器会对比存储在数据库中的Token信息,如果匹配成功,则验证通过。
JWT不需要查询数据库,直接在服务端进行校验。JWT包含了用户信息和签名,服务器只需使用保存的密钥验证JWT的正确性即可‌‌。

2025/3/28第二面 深圳智谱华章 大模型研发

1、存123,元组、字典、哈希、列表哪个占用内存少,原理是什么,集合为什么比列表大
元组不可变,创建时分配固定内存,无需预留空间,列表可变,支持动态扩容,通常会预分配额外空间(即使元素数量固定),集合基于哈希表实现,需维护空槽位以减少哈希冲突。字典同样基于哈希表,但每个条目需存储键、值和哈希,结构更复杂。从小到大依次为:元组 < 列表 < 集合 < 字典。
2、装饰器原理
3、元组可不可以改变。不可变
4、大模型的关键词

2025/4/1 第三面 上海岩山科技,python开发

1、为什么用Withopen()
‌使用with open()打开文件的主要原因包括自动关闭文件、简洁的代码和异常安全‌。
‌自动关闭文件‌:使用with open()时,文件在退出with语句块时自动关闭,避免了因忘记调用file.close()而造成的文件句柄泄漏问题。
‌简洁的代码‌:with open()语法比传统的open()和close()更简洁,减少了代码量,且更易于维护‌
‌异常安全‌:如果在文件操作过程中发生异常,with open()语句会确保文件在异常抛出后依然被正确关闭‌
with open(‘example.txt’, ‘r’) as file:
content = file.read()
print(content)
这里,'r’表示以只读模式打开文件。
with open(‘example.txt’, ‘w’) as file:
file.write(‘Hello, world!’)
2、Redis为什么性能好
(1)、Redis 的高性能首先得益于其基于内存的存储设计。传统的数据库通常将数据存储在硬盘中,这会带来大量的磁盘 I/O 操作,而硬盘访问速度远远低于内存访问速度。Redis 通过将数据存储在 RAM(内存) 中,避免了磁盘 I/O,从而大大提高了访问速度。
(2)、单线程处理:Redis 的所有操作在单线程中完成,避免了多线程的锁机制问题,降低了上下文切换的开销。多线程编程常常需要引入锁机制来防止数据竞争,而 Redis 通过单线程架构消除了这一复杂性,减少了系统的负担。
(3)、高效的数据结构设计
Redis 的数据结构设计是高度优化的,这也是其性能提升的核心之一。Redis 支持多种高效的数据结构,包括字符串(String)、列表(List)、集合(Set)、有序集合(Sorted Set)、哈希(Hash)等。
(4)、数据淘汰策略
LRU(Least Recently Used,最近最少使用)
LFU(Least Frequently Used,最少频繁使用)
随机淘汰
3、Python的性能为什么比java慢
1、Python是一种解释性语言,代码在执行时会逐行解释并执行,这种动态类型和解释执行的特性导致其运行速度比静态编译的语言如Java慢
2、Python的内存管理是基于引用计数的,这种机制在处理大量数据时可能会导致内存碎片化,从而影响性能
3、Java在处理并发操作时通常比Python更有效率。Java的JVM(Java虚拟机)提供了高效的线程管理和同步机制,而Python的GIL(全局解释器锁)限制了多线程的并行执行,影响了多线程性能‌‌‌
4、Mysql的四个特性
原子性,一致性,持久性,隔离性
事务的隔离等级:读未提交,读已提交,可重复度,串行化
数据库并发下事务的三种现象:脏读(读取了未提交事务的数据),不可重复读(不可重复读指的是在事务A中先后多次读取同一个数据,读取的结果不一样,因为另外一个事务也访问该同一数据,并且可能修改这个数据,这种现象称为不可重复读。),幻读(在事务A中按照某个条件先后两次查询数据库,两次查询结果的条数不同,这种现象称为幻读。不可重复读与幻读的区别可以通俗的理解为:前者是数据变了,后者是数据的行数变了。)
5、Transformer中FFN的作用
‌Transforme

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

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

相关文章

MIST:一键解锁 macOS 历史版本,旧系统安装不再难!

在 Mac 电脑的使用过程中&#xff0c;你是否遇到过这些困扰&#xff1f;为了运行一款经典设计软件&#xff0c;新系统却无法兼容&#xff1b;或是想给老旧 Mac 设备升级&#xff0c;却找不到适配的系统版本。而 App Store 里&#xff0c;旧版 macOS 安装包就像 “隐藏副本”&am…

win10 局域网内聊天

在 Windows 10 的局域网 中&#xff0c;如果你想实现 多个用户之间的聊天功能&#xff0c;可以选择以下几种方案&#xff0c;取决于你需要的是&#xff1a; • ✅ 命令行纯文字聊天&#xff08;如 Linux talk&#xff09; • ✅ 图形界面聊天室 • ✅ 局域网广播消息 • ✅ 多人…

Android CountDownTimer重写

Android 倒计时器重写&#xff0c;实现可重复使用&#xff0c;动态修改计时时间 CountDownTimerRew 是一个可重写、动态修改计时时间的 Android 倒计时器类。它允许开发者设置倒计时总时长、间隔时间&#xff0c;并通过 onTick 和 onFinish 方法实现定时回调。该类支持动态修改…

dp自动化登陆之hCaptcha 验证码

hCaptcha 是一种常见的验证码服务&#xff0c;用于区分人类用户和自动化程序。由于其基于图像识别和行为分析&#xff0c;下面介绍如何使用自动化点击验证码完成登陆。 思路&#xff1a;登陆目标网站触发验证码&#xff0c;截图并发给打码平台返回坐标&#xff0c;模拟人工点击…

【工作记录】crmeb后端项目打开、运行

1、下载代码 1&#xff09;安装git 不再详述 2&#xff09;git拉代码 项目地址如下&#xff0c;在vscode-分支中拉代码 # 克隆项目 git clone https://gitee.com/ZhongBangKeJi/crmeb_java/ 截图如下是已经成功拉下来 注意安装对应版本 2、maven配置 安装配置见&#x…

敏捷软件开发与Scrum

目录 一、敏捷软件开发 敏捷开发原则 敏捷开发特点 二、Scrum (一)Scrum 基础知识

Three.js模型材质调整与性能优化实战

一、材质基础调整 1.1 颜色与透明度控制 通过Material.color属性可直接修改材质颜色&#xff1a; material.color new THREE.Color(0xff0000); // 红色结合opacity属性实现透明效果&#xff1a; material.opacity 0.5; // 50%透明度如需动态调整&#xff0c;可通过Color.…

Flutter速成指南:不懂编程也能10天开发专业级App

Flutter速成指南&#xff1a;不懂编程也能10天开发专业级App &#x1f680; 轻松构建漂亮的跨平台应用 &#x1f4d1; 目录 一、Flutter是什么&#xff1f; 为什么选择Flutter&#xff1f;Flutter工作原理 二、环境搭建与命令行 安装Flutter SDK常用Flutter命令创建第一个项目…

【面试真题】王者荣耀亿级排行榜,如何设计?

目录 一、数据库 order by 二、Redis 的zset 三、抗亿级数据存在的问题 3.1 热点 key 问题 3.1.1 多级缓存&#xff08;RedisJVM本地缓存&#xff09; 3.1.2 读写分离 从库负载均衡 3.1.3 分片Key设计 3.2 内存爆炸 3.2.1 缩短键名 3.2.2 分片存储 3.3 数据持久化风…

Java 语法基础(笔记)

java 的数据类型 基本类型 Java 有八种基本类型&#xff1a; byte&#xff1a;1 字节&#xff0c;-128~127short&#xff1a;2 字节&#xff0c;-32768~32767int&#xff1a;4 字节&#xff0c;-2147483648~2147483647long&#xff1a;8 字节&#xff0c;-92233720368547758…

C# 方法(栈帧)

本章内容: 方法的结构 方法体内部的代码执行 局部变量 局部常量 控制流 方法调用 返回值 返回语句和void方法 局部函数 参数 值参数 引用参数 引用类型作为值参数和引用参数 输出参数 参数数组 参数类型总结 方法重载 命名参数 可选参数 栈帧 递归 栈帧 至此&#xff0c;我们已…

C# 使用 WinUI 3 项目模板创建桌面应用程序

文章目录 1. 概述2. 先决条件3. 创建项目步骤4. 项目结构简介5. 代码示例5.1. MainWindow.xaml (UI 定义)5.2. MainWindow.xaml.cs (逻辑代码) 6. 生成和运行应用程序7. 关键概念 1. 概述 本示例演示如何使用 Visual Studio 中的 “Blank App, Packaged (WinUI 3 in Desktop)”…

设计模式简述(十八)享元模式

享元模式 描述基本组件使用 描述 当内存中存在大量类似的对象时&#xff0c;可以考虑使用享元模式减少整体内存占用。 可以将相同的部分和不同的部分进行拆分&#xff0c;以达到多个对象共享相同部分内存的目的。 基本组件 通常享元对象通过共享的属性映射一个享元对象。 公…

大数据狙击金融欺诈——技术如何守护交易安全?

大数据狙击金融欺诈——技术如何守护交易安全? 金融领域一直是欺诈行为的“重灾区”,从传统的信用卡盗刷到精心策划的网络诈骗,攻击者不断进化手法,使得防御变得越来越复杂。然而,大数据技术的出现,让金融欺诈检测从被动防守转向主动狙击,通过深度学习、行为分析和实时…

如何通过DNS解析实现负载均衡?

在当今的互联网时代&#xff0c;随着网络应用的飞速发展&#xff0c;网站和各类在线服务面临着海量的用户请求。为了保障服务的高可用性和高性能&#xff0c;负载均衡技术应运而生。DNS&#xff08;域名系统&#xff09;负载均衡作为其中一种重要的实现方式&#xff0c;凭借其简…

MySQL解决主从复制的报错问题

MySQL 8.4 非 GTID 模式部分数据库主从复制指南 在进行MySQL 8.4非GTID模式下部分数据库主从复制时&#xff0c;以下是详细的操作步骤以及对应的执行位置说明&#xff0c;还有报错处理方法介绍&#xff1a; 操作步骤 1. 备份主库指定数据库&#xff08;db1、db2&#xff09;…

Linux的域名解析服务器

什么是DNS DNS&#xff08;Domain Name System&#xff09;是互联网上的一项服务&#xff0c;它作为将域名和IP地址相互映射的一个分 布式数据库&#xff0c;能够使人更方便的访问互联网 DNS使用的是53端口&#xff0c; 通常DNS是以UDP这个较快速的数据传输协议来查询的&…

vue 中绑定样式 【class样式绑定】

class 样式绑定 在 Vue 中&#xff0c;可以通过 :class&#xff08;或简写 v-bind:class&#xff09;实现类名&#xff08;class&#xff09;样式的绑定。Vue 提供了几种常用的绑定方式&#xff0c;分别支持字符串、对象和数组语法。 绑定字符串 <div :class"active…

Unity3D 序列化机制:引擎内的应用场景和基本原理

前言 Unity3D 的序列化机制是其核心功能之一&#xff0c;用于在编辑器和运行时之间持久化数据、管理场景状态、处理预制体&#xff08;Prefab&#xff09;以及实现跨平台兼容性。以下是其应用场景和基本原理的详细解析&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小…

Python 字典键 “三变一” 之谜

开头&#xff1a;读者的“玄学”字典谜题 上周&#xff0c;朋友发来了一段让他抓耳挠腮的代码&#xff1a; >>> {True: foo, 1: bar, 1.0: baz} {True: baz} “我明明定义了布尔True、整数1、浮点数1.0三个键&#xff0c;结果字典里只剩True一个键&#xff0c;值…