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

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 中的字符串编码

  1. ASCII (American Standard Code for Information Interchange):

    • 最早的字符编码标准,使用7位二进制数表示128个字符,包括英文大小写字母、数字和一些特殊符号。
    • 由于只支持英文字符,因此不适合表示其他语言。
  2. Unicode:

    • 为了解决ASCII编码的局限性,Unicode提供了一种可以表示世界上几乎所有文字的字符集。
  3. 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}指定指数代码,获取该指数的实时行情(开、高、低、收、量)。 更新周期:实时。 请求方式&#xff1a…...

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-机构树控件

为了简化编程&#xff0c;平台封装了很多前端组件。机构树就是常用的组件之一。 基本用法&#xff1a; import QlmOrgTree from /qlmcomponents/tree/QlmOrgTree <QlmOrgTree></QlmOrgTree> 功能&#xff1a; 根据权限和控制参数显示机构树。机构树数据来源于核…...

SpringBatch文件读写ItemWriter,ItemReader使用详解

SpringBatch文件读写ItemWriter&#xff0c;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模型&#xff1a;评估指标的分类、方法及案例解析 引言第一部分&#xff1a;评估指标的分类第二部分&#xff1a;评估指标的数学基础第三部分&#xff1a;评估指标的选择与应用第四部分&#xff1a;评估指标的局限性第五部分&#xff1a;案例研究第六部分&#xff1a…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...