Python面经
文章目录
- Python
- 基本概念
- 1. Python是**解释型**语言还是**编译型**语言
- 2. Python是**面向对象**语言还是面向过程语言
- 3. Python基本数据类型
- 4.append和 extend区别
- 5.del、pop和remove区别
- 6. sort和sorted区别
- 介绍一下Python 中的字符串编码
- is 和 == 的区别
- *arg 和**kwarg作用
- 浅拷贝(Shallow Copy)&深拷贝(Deep Copy)
- lambda
Python
持续更新中~
基本概念
1. Python是解释型语言还是编译型语言
是解释型。解释型是边编译边执行。编译型语言是把源程序全部编译成二进制的可运行程序后再运行,如C/C++ 。
注:java程序不是直接编译成机器语言,而是编译成字节码,然后用解释方式执行字节码。
2. Python是面向对象语言还是面向过程语言
是面向对象。面向对象编程(OOP)的特点包括:
- 封装:将数据和操作这些数据的方法组合在一起。
- 继承:允许新创建的类(子类)继承现有类(父类)的属性和方法。
- 多态:允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
面向过程编程的特点包括:
- 将程序分解为一系列的过程或函数,每个过程或函数执行特定的任务。
- 强调过程和函数的调用,而不是对象和类。
3. Python基本数据类型
- Numbers(数字):3.7以后存储字节数会根据数字大小变化(28+48(num/230))
- List(列表):有序集合。多维列表本质就是列表里面叠列表
- Tuple(元组):有序集合。元组是只读的列表
- Dictionary(字典):无序集合,由键值对(key-value)组成。
- 集合(set):是一组 key 的集合,每个元素都是唯一,不重复且无序的。
- a=(4),a的类型为整数
4.append和 extend区别
-
append()方法用于将一个对象添加到列表的末尾。当使用append()方法添加一个列表到另一个列表时,实际上是将整个列表作为一个单独的元素添加到原列表中。
-
extend()方法用于将一个可迭代对象(如列表、元组、字符串等)的所有元素添加到列表的末尾。使用extend()方法添加一个列表到另一个列表时,实际上是将这个列表中的所有元素逐个添加到原列表中。
my_list = [1, 2, 3]
my_list.extend([4, 5]) # 结果: [1, 2, 3, 4, 5]
my_list.append([5, 6]) # 结果: [1, 2, 3, 4, [5, 6]]
5.del、pop和remove区别
del:根据下标进行删除pop:根据下标进行删除并返回删除值,默认删除最后一个元素remove:根据元素的值进行删除
my_list = [1, 2, 3, 4, 5]
del my_list[2] # my_list: [1, 2, 4, 5]
a=my_list.pop(0) # my_list: [2, 4, 5], a: 0
my_list.remove(4) # my_list: [2, 5]
6. sort和sorted区别
- sorted()是一个内置函数,不会修改原始的序列,而是返回一个新的排序后的列表。不会修改原始的序列,而是返回一个新的排序后的列表。
- sort()是列表(list)的一个方法,它直接修改原列表,按照指定的顺序对列表中的元素进行排序。
my_list = [3, 1, 4, 1, 5]
my_list.sort()
print(my_list) # 输出: [1, 1, 3, 4, 5]
sorted_list = sorted(my_list, reverse=True) # 设置reverse为True进行降序排序
print(my_list) # 输出: [1, 1, 3, 4, 5]
print(sorted_list) # 输出: [5, 4, 3, 1, 1]
reverse和reversed同理
my_list = [1, 2, 3, 4, 5]
reversed_iterator = reversed(my_list)
print(list(reversed_iterator)) # 输出: [5, 4, 3, 2, 1]
print(my_list) # 原始列表未被修改: [1, 2, 3, 4, 5]
my_list.reverse()
print(my_list) # 输出: [5, 4, 3, 2, 1]
介绍一下Python 中的字符串编码
-
ASCII (American Standard Code for Information Interchange):
- 最早的字符编码标准,使用7位二进制数表示128个字符,包括英文大小写字母、数字和一些特殊符号。
- 由于只支持英文字符,因此不适合表示其他语言。
-
Unicode:
- 为了解决ASCII编码的局限性,Unicode提供了一种可以表示世界上几乎所有文字的字符集。
-
UTF-8 (8-bit Unicode Transformation Format):
-
是Unicode的一种实现方式,可以根据字符的不同使用不同长度(1-4)的字节来表示一个字符。
-
UTF-8最大的特点是它对ASCII编码是兼容的,即ASCII字符在UTF-8中用一个字节表示,与ASCII编码相同。
-
str.encode(): 将字符串编码为指定格式的字节串。bytes.decode(): 将字节串解码为字符串。
is 和 == 的区别
==是比较操作符,只是判断对象的值(value)是否一致,而 is 则判断的是对象之间的身份(内存地址)是否一致。
对象的身份,可以通过
id()方法来查看。
*arg 和**kwarg作用
-
*args代表可变数量的位置参数(arguments),它允许你将不定数量的位置参数传递给函数。这些参数被组织为一个元组(tuple),在函数内部可以通过索引来访问。 -
**kwargs代表可变数量的关键字参数(keyword arguments),它允许你将不定数量的关键字参数传递给函数。这些参数被组织为一个字典(dictionary),在函数内部可以通过键来访问。
def my_function(*args, **kwargs):for arg in args:print(arg)for key, value in kwargs.items():print(f"{key}: {value}")my_function(1, 2, name="Alice", age=25)
# 输出: 1, 2, name: Alice, age: 25
浅拷贝(Shallow Copy)&深拷贝(Deep Copy)
- 浅拷贝复制的是原始对象中包含的引用,而不是对象本身。
- 深拷贝递归地复制了原始对象中的所有对象。这意味着深拷贝会创建原始对象的完整副本,包括所有嵌套的对象,修改原始对象不会影响深拷贝。
import copy
original_list = [[1, 2, 3], [4, 5, 6]]shallow_copied_list = copy.copy(original_list)
# 浅拷贝
original_list[0][0] = 'X'
print(shallow_copied_list) # 输出: [['X', 2, 3], [4, 5, 6]]
# 深拷贝
deep_copied_list = copy.deepcopy(original_list)
original_list[0][0] = 'X'
print(deep_copied_list) # 输出: [[1, 2, 3], [4, 5, 6]]
lambda
lambda是一个用于创建匿名函数的关键字。匿名函数是一种没有名称的函数,它们通常用于需要函数对象的地方,但又不想去定义一个完整的函数。
people = [("Alice", 30), ("Bob", 25), ("Charlie", 35)]
sorted_people = sorted(people, key=lambda person: person[1])
print(sorted_people) # 输出: [('Bob', 25), ('Alice', 30), ('Charlie', 35)]def num():return [lambda x:i*x for i in range(4)]
[m(1) for m in num()] # 输出: [3, 3, 3, 3]
相关文章:
Python面经
文章目录 Python基本概念1. Python是**解释型**语言还是**编译型**语言2. Python是**面向对象**语言还是面向过程语言3. Python基本数据类型4.append和 extend区别5.del、pop和remove区别6. sort和sorted区别介绍一下Python 中的字符串编码is 和 的区别*arg 和**kwarg作用浅拷…...
海外ASO:iOS与谷歌优化的相同点和区别
海外ASO是针对iOS的App Store和谷歌的Google Play这两个主要海外应用商店进行的优化过程,两个不同的平台需要采取不同的优化策略,以下是对iOS优化和谷歌优化的详细解析: 一、iOS优化(App Store) 1、关键词覆盖 选择关…...
【C++题解】1168. 歌唱比赛评分
问题:1168. 歌唱比赛评分 类型:数组找数 题目描述: 四(1) 班要举行一次歌唱比赛,以选拔更好的苗子参加校的歌唱比赛。评分办法如下:设 N 个评委,打 N 个分数( 0≤每个分…...
鸿蒙开发工程师面试-架构篇
1. 假如让你负责鸿蒙App架构设计,你会关注哪些方面? 分层架构设计: 将应用划分为产品定制层、基础特性层和公共能力层,以降低层间依赖性,提升代码可维护性。通过分层架构设计,进一步明确每层的职责和层间交…...
【Redis】持久化
对于Redis中间件来说,一般是作为内存型数据库或者缓存出现的。但是由于其数据是在内存中,因此当Redis所在的主机宕机之后,数据就会消失,再次重启之后,没有任何数据。这对于生产环境来说,是属于P0级别的灾难…...
港股指数实时行情API接口
港股 指数 实时 行情 API接口 # Restful API https://tsanghi.com/api/fin/index/HKG/realtime?token{token}&ticker{ticker}指定指数代码,获取该指数的实时行情(开、高、低、收、量)。 更新周期:实时。 请求方式:…...
Qt5开发实战_图形_QPen
Qpen是Qt框架中的一个类,用于定义绘制线条的属性,包括颜色、宽度、样式、端点样式和连接样式。 具体属性(设置颜色和设置宽度直接pass从样式开始): 设置样式: pen的样式主要有以下几种: 分别是:直线样式…...
linux进程周边知识——内核对硬件的管理——计算机世界的管理
前言:本节主要讲解内核也就是操作系统对于硬件的管理, 本节内容同样为进程的周边知识。 主要是关于软件方面, 和我的上一篇——冯诺依曼体系结构可以说是兄弟文章, 这篇文章主要是关于硬件方面。 两篇文章都是为学习进程做准备。但…...
同声传译语音合成接口,分段预合成实现丝滑的衔接效果
背景: 在使用微信官方语音合成插件的时候遇到一个问题,textToSpeech这个api的内容限制在官网的文档上明明是1000个字节,也就是说能保证333个中文字符应该是没有问题的,但是也不知道为什么我这里仅仅传了150个中文字符就报错了&…...
数据结构——单链表详解(超详细)(1)
前言: 小编在近日学习了单链表的知识,为了加强记忆,于是诞生了这一篇文章,单链表是数据结构比较重要的知识,读者朋友们一定要去好好的学习!这个可以说是比顺序表更好用的线性表,下面废话不多说&…...
在 Linux 上使用 lspci 命令查看 PCI 总线硬件设备信息
lspci 命令用于显示 Linux 系统上的设备和驱动程序 当在个人电脑或服务器上运行 Linux 时,有时需要识别该系统中的硬件。lspci 命令用于显示连接到 PCI 总线的所有设备,从而满足上述需求。该命令由 pciutils 包提供,可用于各种基于 Linux 和…...
python数据可视化(6)——绘制散点图
课程学习来源:b站up:【蚂蚁学python】 【课程链接:【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接:【链接】】 Python绘制散点图查看BMI与保险费的关系 散点图: 用两组数据构成多个坐标点,考察…...
【人工智能】Transformers之Pipeline(二):自动语音识别(automatic-speech-recognition)
目录 一、引言 二、自动语音识别(automatic-speech-recognition) 2.1 概述 2.2 技术原理 2.2.1 whisper模型 2.2.2 Wav2vec 2.0模型 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数…...
Mysql-错误处理: Found option without preceding group in config file
1、问题描述 安装MYSQL时,在cmd中“初始化”数据库时,输入命令: mysqld --initialize --consolecmd报错: D:\mysql-5.7.36-winx64\bin>mysql --initialize --console mysql: [ERROR] Found option without preceding group …...
[iOS]内存分区
[iOS]内存分区 文章目录 [iOS]内存分区五大分区栈区堆区全局区常量区代码区验证内存使用注意事项总结 函数栈堆栈溢出栈的作用 参考博客 在iOS中,内存主要分为栈区、堆区、全局区、常量区、代码区五大区域 还记得OC是C的超类 所以C的内存分区也是一样的 iOS系统中&a…...
sklearn基础教程:掌握机器学习入门的钥匙
sklearn基础教程:掌握机器学习入门的钥匙 在数据科学和机器学习的广阔领域中,scikit-learn(简称sklearn)无疑是最受欢迎且功能强大的库之一。它提供了简单而高效的数据挖掘和数据分析工具,让研究人员、数据科学家以及…...
【unity实战】使用unity制作一个红点系统
前言 注意,本文是本人的学习笔记记录,这里先记录基本的代码,后面用到了再回来进行实现和整理 素材 https://assetstore.unity.com/packages/2d/gui/icons/2d-simple-ui-pack-218050 框架: RedPointSystem.cs using System.…...
开发指南046-机构树控件
为了简化编程,平台封装了很多前端组件。机构树就是常用的组件之一。 基本用法: import QlmOrgTree from /qlmcomponents/tree/QlmOrgTree <QlmOrgTree></QlmOrgTree> 功能: 根据权限和控制参数显示机构树。机构树数据来源于核…...
SpringBatch文件读写ItemWriter,ItemReader使用详解
SpringBatch文件读写ItemWriter,ItemReader使用详解 1. ItemReaders 和 ItemWriters1.1. ItemReader1.2. ItemWriter1.3. ItemProcessor 2.FlatFileItemReader 和 FlatFileItemWriter2.1.平面文件2.1.1. FieldSet 2.2. FlatFileItemReader2.3. FlatFileItemWriter 3…...
如何评估AI模型:评估指标的分类、方法及案例解析
如何评估AI模型:评估指标的分类、方法及案例解析 引言第一部分:评估指标的分类第二部分:评估指标的数学基础第三部分:评估指标的选择与应用第四部分:评估指标的局限性第五部分:案例研究第六部分:…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
leetcode73-矩阵置零
leetcode 73 思路 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...
虚幻基础:角色旋转
能帮到你的话,就给个赞吧 😘 文章目录 移动组件使用控制器所需旋转:组件 使用 控制器旋转将旋转朝向运动:组件 使用 移动方向旋转 控制器旋转和移动旋转 缺点移动旋转:必须移动才能旋转,不移动不旋转控制器…...
【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录
#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...
【题解-洛谷】P10480 可达性统计
题目:P10480 可达性统计 题目描述 给定一张 N N N 个点 M M M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N , M N,M N,M,接下来 M M M 行每行两个整数 x , y x,y x,y,表示从 …...
