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

Python常见面试题的详解5

1. re 模块中 search () 和 match () 的区别
  • 要点在 Python 的 re 模块中,re.match()re.search() 是用于正则表达式匹配的两个重要函数,它们的主要区别在于匹配的起始位置:
  • re.match():从字符串的开头开始匹配正则表达式。如果字符串的开头部分不符合正则表达式的模式,re.match() 函数将返回 None
  • re.search():在整个字符串中搜索第一个符合正则表达式模式的位置,不要求从字符串的开头进行匹配。
  • 示例:

python

import re
text = "abc123"
result_match = re.match(r'\d+', text)    # 由于字符串开头不是数字,返回 None
result_search = re.search(r'\d+', text)   # 能够匹配到字符串中的 "123",返回匹配对象
print(result_match)
print(result_search)
2. 使用 re.sub () 函数进行文本字符串的查询和替换
  • 要点re.sub() 函数是 re 模块中用于字符串替换的强大工具,它可以根据指定的正则表达式模式,将字符串中匹配的部分替换为新的字符串。
  • 示例

python

import re
text = "Python is fun"
new_text = re.sub(r"fun", "awesome", text)  # 将字符串中的 "fun" 替换为 "awesome"
print(new_text)
3. except 的用法和作用
  • 要点except 语句在 Python 的异常处理机制中起着关键作用,它的主要作用是捕获 try 代码块中可能出现的异常,从而防止程序因为异常而崩溃。
  • 示例:

python

try:# 这里放置可能会出现错误的代码num = 10 / 0  # 会引发 ZeroDivisionError 异常
except ValueError as e:# 处理特定的 ValueError 异常,这里可以添加处理逻辑print(f"捕获到 ValueError 异常: {e}")
except Exception as e:# 处理除了已经明确捕获的特定异常之外的所有其他异常print(f"捕获到其他异常: {e}")
4. range () 函数的用法和作用
  • 要点range() 函数是 Python 内置的一个用于生成整数序列的函数,它在循环中经常被使用,有以下几种调用形式:
  • range(stop):生成从 0 到 stop - 1 的整数序列。
  • range(start, stop):生成从 startstop - 1 的整数序列。
  • range(start, stop, step):按照指定的步长 step 生成从 startstop - 1 的整数序列,步长可以为正数或负数。
  • 示例:

python

print(list(range(5)))         # 输出 [0, 1, 2, 3, 4]
print(list(range(1, 10, 2)))  # 输出 [1, 3, 5, 7, 9]
5. 处理大文件(内存限制)
  • 要点:当处理大文件时,为了避免一次性将整个文件加载到内存中导致内存不足的问题,可以采用逐行读取的方式,利用生成器来实现。
  • 示例:

python

def get_lines():try:with open("file.txt", "r", encoding="utf-8") as f:  # 注意指定文件编码for line in f:yield line.rstrip("\r\n")  # 去除换行符 \r\nexcept FileNotFoundError:print("文件不存在")except UnicodeDecodeError:print("文件编码错误")except:print("文件处理过程中出现其他错误")# 调用生成器函数逐行处理文件
for line in get_lines():print(line)

在处理大文件时,需要考虑以下几个问题:

  • 文件编码:确保指定正确的文件编码,常见的编码有 utf-8gbk 等。
  • 换行符处理:不同操作系统的换行符可能不同(如 Windows 系统的 \r\n 和 Linux 系统的 \n),需要进行适当处理。
  • 异常处理:如文件不存在、文件损坏等情况,要进行合理的异常捕获和处理。
6. 判断日期是年份的第几天
  • 要点:可以使用 Python 的 datetime 模块来判断一个日期是所在年份的第几天。
  • 示例:

python

from datetime import datetimedate_str = "2025-02-15"
date = datetime.strptime(date_str, "%Y-%m-%d")
day_of_year = date.timetuple().tm_yday  # 直接获取该日期在年份中的第几天
print(day_of_year)
7. 打乱有序列表
  • 要点:使用 random 模块中的 shuffle() 函数可以对列表进行原地打乱,即直接修改原列表的元素顺序。
  • 示例

python

import random
alist = [1, 2, 3, 4]
random.shuffle(alist)  # 列表 alist 的元素顺序被打乱,例如可能变为 [3, 1, 4, 2]
print(alist)
8. 字典按值排序
  • 要点:可以通过 sorted() 函数结合 lambda 表达式,根据字典的值对字典进行排序。
  • 示例:

python

d = {'a': 24, 'g': 52, 'i': 12, 'k': 33}
sorted_dict = dict(sorted(d.items(), key=lambda x: x[1]))
# 排序后的字典为 {'i': 12, 'a': 24, 'k': 33, 'g': 52}
print(sorted_dict)
9. 字典推导式
  • 要点:字典推导式是一种简洁的创建字典的方式,它可以根据已有的数据结构快速生成字典。将列表转换为字典,列表的元素作为键,元素的索引的平方作为值。
  • 示例

python

keys = ['a', 'b', 'c']
d = {k: i ** 2 for i, k in enumerate(keys)}  # 生成的字典为 {'a': 0, 'b': 1, 'c': 4}
print(d)
10. 反转字符串
  • 要点:在 Python 中,可以通过切片操作来实现字符串的反转。
  • 示例:

python

s = "aStr"
reversed_s = s[::-1]  # 字符串 s 被反转,结果为 "rtSa"
print(reversed_s)
11. 字符串转字典
  • 要点:可以将特定格式的字符串转换为字典,通常需要结合字符串的分割和字典推导式来实现。
  • 示例:

python

s = "k:1 |k1:2|k2:3|k3:4"
d = {k: int(v) for item in s.split("|") for k, v in [item.split(":")]}
# 转换后的字典为 {'k': 1, 'k1': 2, 'k2': 3, 'k3': 4}
print(d)

相关文章:

Python常见面试题的详解5

1. re 模块中 search () 和 match () 的区别 要点:在 Python 的 re 模块中,re.match() 和 re.search() 是用于正则表达式匹配的两个重要函数,它们的主要区别在于匹配的起始位置:re.match():从字符串的开头开始匹配正则…...

python包的管理

管理python包 python能跻身最欢迎编程语言前列的一个主要原因是python有着活跃的社区提供丰富的包,诸如numpy,pandas,scikit-learn等等。 python的包都存放PyPI中,PyPI即Python Package Index,是python的软件仓库。所…...

性能测试流程、主流性能工具

性能测试流程 性能测试流程 测试测试需求分析 性能测试计划和方案 测什么: 测试背景 测试目的 测试范围 谁来测: 进度和分工 交付清单 怎么测: 测试策略 性能测试用例设计 性能测试测试执行 性能分析和调优 性能测试报告 测试报告是…...

Lua闭包的使用以及需要注意的问题

1. 闭包的基本概念 在 Lua 中,闭包是一个函数值,它包含了函数本身以及该函数所创建时的环境。闭包允许函数访问其外部函数作用域中的变量,即使外部函数已经执行完毕。 2.闭包的简单使用 代码:在下面的代码中,create…...

【个人开发】deepseed+Llama-factory 本地数据多卡Lora微调

文章目录 1.背景2.微调方式2.1 关键环境版本信息2.2 步骤2.2.1 下载llama-factory2.2.2 准备数据集2.2.3 微调模式2.2.4 微调脚本 2.3 踩坑经验2.3.1 问题一:ValueError: Undefined dataset xxxx in dataset_info.json.2.3.2 问题二: ValueError: Target…...

LabVIEW 天然气水合物电声联合探测

天然气水合物被认为是潜在的清洁能源,其储量丰富,预计将在未来能源格局中扮演重要角色。由于其独特的物理化学特性,天然气水合物的探测面临诸多挑战,涉及温度、压力、电学信号、声学信号等多个参数。传统的人工操作方式不仅效率低…...

VisualStudio 2012 fatal error C1083: 无法打开包括文件:“stdio.h 找不到 sdkddkver.h

今天安装了一个VC 2012 Express 学习版,提示找不不到stdio.h, 提示找不到sdkddkver.h 发现是没有安装windows8.0 SDK ,还有一个些VC头文件没有安装. 真是太奇怪了,可能版本太多,安装出问题. 我这里放一个备份文件,省得以后,不能安装的时候,没地方找这些头文件. 无法打开包…...

什么是access token和refresh token?

access token 验证身份有效时间相对refresh token 时间短一点 refresh token 用于辅助access token 过期,避免用户反复登录的问题当accesstoken过期直接拿refreshtoken去获取最新的token...

盛铂科技 SCP4006/4018/4040:国产袖珍式功率计 射频微波功率探头 平均功率计

在通信、电子测量等领域,功率计是确保信号稳定、系统高效运行的关键设备。盛铂科技自主研发的 SCP4000 系列自带 USB 接口的袖珍式 CW 信号平均功率计,以其卓越的性能、高性价比和便捷的操作,在众多同类产品中脱颖而出,成为行业内…...

Unity 获取独立显卡数量

获取独立显卡数量 导入插件包打开Demo 运行看控制台日志 public class GetGraphicCountDemo : MonoBehaviour{public int count;// Start is called before the first frame updatevoid Start(){count this.GetIndependentGraphicsDeviceCount();}}...

wx061基于ssm+vue+uniapp的疫情期间学生请假与销假系统小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…...

硕成C语言22【一些算法和数组的概念】

1.求水仙花数 #include <stdio.h>int main() {//求水仙花数&#xff1a;1.三位数 2.个位的立方十位的立方百位的立方该数int unit, tens, hundreds;for (int i 100; i < 1000; i)//i表示该水仙花数{unit i / 1 % 10;tens i / 10 % 10;hundreds i / 100 % 10;if (…...

最新国内 ChatGPT Plus/Pro 获取教程

最后更新版本&#xff1a;20250202 教程介绍&#xff1a; 本文将详细介绍如何快速获取一张虚拟信用卡&#xff0c;并通过该卡来获取ChatGPT Plus和ChatGPT Pro。 # 教程全程约15分钟开通ChatGPT Plus会员帐号前准备工作 一个尚未升级的ChatGPT帐号&#xff01;一张虚拟信用卡…...

Django中实现简单易用的分页工具

如何在Django中实现简单易用的分页工具&#xff1f;&#x1f4da; 嗨&#xff0c;小伙伴们&#xff01;今天我们来看看如何在 Django 中实现一个超简单的分页工具。无论你是在处理博客文章、产品列表&#xff0c;还是用户评论&#xff0c;当数据量一大时&#xff0c;分页显得尤…...

个人下载中国生物医学文献服务系统SinoMed文献的途径及操作方法

中国生物医学文献服务系统——SinoMed数据库介绍&#xff1a; 中国生物医学文献服务系统——SinoMed&#xff0c;由中国医学科学院医学信息研究所/图书馆研制&#xff0c;整合了中国生物医学文献数据库&#xff08;CBM&#xff09;、中国医学科普文献数据库&#xff08;CPM&am…...

软件开发 | GitHub企业版常见问题解读

什么是GitHub企业版&#xff1f; GitHub企业版是一个企业级软件开发平台&#xff0c;专为现代化开发的复杂工作流程而设计。 作为可扩展的平台解决方案&#xff0c;GitHub企业版使组织能够无缝集成其他工具和功能&#xff0c;并根据特定需求定制开发环境&#xff0c;提高整体…...

【Bluedroid】BLE连接过程详解

在BLE通信中,广播(Advertising)和扫描(Scanning)是设备发现和建立连接的基本过程。根据蓝牙SPEC,当一个设备(称为Advertiser)在广播模式下发送广播包时,它遵循一定的时序和规则,以便其他设备(称为Observer或Scanner)可以检测到它,并在适当的时机发送连接请求。 B…...

清影2.0(AI视频生成)技术浅析(二):自然语言处理

清影2.0(AI视频生成)中的自然语言处理(NLP)技术是其核心组件之一,负责将用户输入的自然语言文本转化为机器可以理解的语义表示,从而指导后续的视频生成过程。 一、基本原理 1. 目标 清影2.0的NLP技术旨在将用户输入的自然语言文本转化为机器可以理解的语义表示,从而指…...

Bob the Canadian

1&#xff1a;around the house Hi! Bob the Canadian here! Let’s learn English around the house. Come on in! Hi, Bob the Canadian here. Welcome to this video. If this is your first time here, don’t forget to click the subscribe button below, and give…...

DeepSeek、Kimi、文心一言、通义千问:AI 大语言模型的对比分析

在人工智能领域&#xff0c;DeepSeek、Kimi、文心一言和通义千问作为国内领先的 AI 大语言模型&#xff0c;各自展现出了独特的特点和优势。本文将从技术基础、应用场景、用户体验和价格与性价比等方面对这四个模型进行对比分析&#xff0c;帮助您更好地了解它们的特点和优势。…...

算法思考:非0整数除法

这是一道很简单的问题&#xff0c;但是我们可以有更多的思考 1.如何提升效率&#xff1f; 除法&#xff0c;很明显就是循环嘛&#xff0c;那么如何进一步提升效率&#xff1f;就是跳过多余的循环步骤比如15/2&#xff0c;原先是1111111再余1&#xff0c;现在尽量每次除2的最大…...

服务器租用:虚拟化技术都包含哪些内容?

服务器作为常见的网络设备&#xff0c;有着物理服务器、云服务器和虚拟服务器等多种类型&#xff0c;其中虚拟服务器主要是依靠虚拟化技术将物理服务器划分成多个虚拟机&#xff0c;以此来充分利用服务器资源&#xff0c;那虚拟化技术都包含了哪些内容呢&#xff1f; 硬件虚拟化…...

[免费]SpringBoot公益众筹爱心捐赠系统【论文+源码+SQL脚本】

大家好&#xff0c;我是老师&#xff0c;看到一个不错的SpringBoot公益众筹爱心捐赠系统&#xff0c;分享下哈。 项目介绍 公益捐助平台的发展背景可以追溯到几十年前&#xff0c;当时人们已经开始通过各种渠道进行公益捐助。随着互联网的普及&#xff0c;本文旨在探讨公益事业…...

uniapp商城之首页模块

文章目录 前言一、自定义导航栏1.静态结构2.修改页面配置3.组件安全区适配二、通用轮播组件1. 静态结构组件2.自动导入全局组件3.首页轮播图数据获取三、首页分类1.静态结构2.首页获取分类数据并渲染四、热门推荐1.静态结构2.首页获取推荐数据并渲染3.首页跳转详细推荐页五、猜…...

类与对象C++详解(上)

目录 1.类的定义 1.1 类定义格式 补充: struct与class的区别&#xff08;c语言与c&#xff09; 1.2 访问限定符 1.3 类域 2.实例化 3.对象大小 4.this指针 1.类的定义 1.1 类定义格式 class为定义类的关键字&#xff0c;Stack为类的名字&#xff0c;{}中为类的主体&…...

AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐

AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐 目录 AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐比特币AI Agents稳定币扩容区块链AI基础设施AI驱动的软件应用AI赋能的行业应用AI医疗影像、智能客服、个性化推荐AI药物研发比特币 市场与机构化:2024…...

SpringBoot:使用spring-boot-test对web应用做单元测试时如何测试Filter?

对SpringBoot的Web应用做单元测试时&#xff0c;一般会使用spring-boot-test&#xff0c;pom.xml中会添加如下内容&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><…...

【鱼眼镜头12】Scaramuzza的鱼眼相机模型实操,不依赖于具体的相机几何结构,直接从图像数据出发,因此更具灵活性。

文章目录 Scaramuzza相机模型标定效果2、原理和代码代码1、 2D映射到3D&#xff0c;函数输入为2D点坐标OCAM参数代码功能详解2、3D --> 2D 3、总结Scaramuzza 模型的核心思想Scaramuzza 模型的核心思想与 Kannala-Brandt 模型的对比Scaramuzza 模型的独特之处Scaramuzza 的意…...

WPF创建自定义类和控件及打包成dll引用

WPF创建自定义类和控件及打包成dll引用 一、前言二、创建自定义类和控件并生成dll文件2.1创建类库项目2.2创建自定义类和控件2.3生成dll文件 三、在其他项目中引用3.1添加dll文件引用3.2cs文件中引用命名空间3.3XAML文件中引用命名空间 一、前言 出于一些代码复用的需求&#…...

家里WiFi信号穿墙后信号太差怎么处理?

一、首先在调制解调器&#xff08;俗称&#xff1a;猫&#xff09;测试网速&#xff0c;网速达不到联系运营商&#xff1b; 二、网线影响不大&#xff0c;5类网线跑500M完全没问题&#xff1b; 三、可以在卧室增加辅助路由器&#xff08;例如小米AX系列&#xff09;90~200元区…...

C++初阶——简单实现string

简单实现std::string类及一些常用的成员函数。 迭代器&#xff0c;使用指针简单代替。 目录 1、String.h 2、String.cpp 3、Test.cpp 1、String.h #pragma once #define _CRT_SECURE_NO_WARNINGS 1#include <iostream> #include <assert.h>using namespace s…...

浏览器支持的通讯协议

浏览器支持的通讯协议 1. HTTP&#xff08;HyperText Transfer Protocol&#xff09; 版本 HTTP/1.0&#xff1a;每次请求都需要重新建立连接。HTTP/1.1&#xff1a;支持持久连接&#xff08;Keep-Alive&#xff09;&#xff0c;减少连接开销。HTTP/2&#xff1a;多路复用&am…...

18.Python实战:实现年会抽奖系统

目录结构 python/ ├── sql/ │ └── table.sql # 创建数据库及数据表 ├── config/ │ └── __init__.py # 数据库和Flask配置 ├── static/ │ ├── style.css # 样式文件 │ └── script.js # JavaScript脚本…...

微信小程序地图标记点,安卓手机一次性渲染不出来的问题

问题描述&#xff1a; 如果微信小程序端&#xff0c;渲染的标记物太多&#xff0c;安卓手机存在标记物不显示的问题&#xff0c;原因初步判断是地图还没有渲染完&#xff0c;标记物数据已经加载完了&#xff0c;导致没有在地图上显示。 解决办法&#xff1a; 使用map组件的b…...

机器翻译同样的文本,是从英语翻译成日语更准确还是中文翻译成日语更准确

在大多数情况下&#xff0c;从英语翻译成日语会比从中文翻译成日语更准确&#xff0c;原因如下&#xff1a; 1. 语言结构的相似性 英语和日语的句子结构更接近&#xff0c;特别是在语法、从句使用、定语位置等方面。例如&#xff0c;日语和英语都使用 SVO 结构&#xff08;主…...

ROS基本功能

1.Topic话题与Message消息&#xff08;主要通讯方式&#xff09; 基本规则 发布消息的步骤 常用工具 话题的订阅 使用launch启动多个节点...

C++字符串处理指南:从基础操作到性能优化——基于std::string的全面解析

博主将从C标准库中的 std::string 出发&#xff0c;详细探讨字符串的处理方法&#xff0c;涵盖常见操作、性能优化和实际应用场景。以下内容将围绕std::string 的使用展开&#xff0c;结合代码示例进行说明。 一、std::string 的基本操作 1.1 创建与初始化 std::string 提供了…...

语言大模型基础概念 一(先了解听说过的名词都是什么)

SFT&#xff08;监督微调&#xff09;和RLHF&#xff08;基于人类反馈的强化学习&#xff09;的区别 STF&#xff08;Supervised Fine-Tuning&#xff09;和RLHF&#xff08;Reinforcement Learning from Human Feedback&#xff09;是两种不同的模型训练方法&#xff0c;分别…...

sql语句的执行顺序

完整的sql语句执行顺序 SELECT DISTINCT column1, column2, aggregate_function(column3) FROM table1JOIN table2 ON table1.column table2.column WHERE condition GROUP BY column1, column2 HAVING group_condition ORDER BY column1, column2 LIMIT offset, count;FROM子…...

更高效实用 vscode 的常用设置

VSCode 可以说是文本编辑神器, 不止程序员使用, 普通人用其作为文本编辑工具, 更是效率翻倍. 这里分享博主对于 VSCode 的好用设置, 让 VSCode 如虎添翼 进入设置 首先进入设置界面, 后续都在这里进行配置修改 具体设置 每项配置通过搜索关键字, 来快速定位配置项 自动保存…...

Next.js【详解】CSS 样式方案

全局样式 Global CSS 默认已创建&#xff0c;即 src\app\globals.css&#xff0c;可根据需要修改 默认在全局布局中导入 src\app\layout.tsx import "./globals.css";组件样式 CSS Modules 新建文件 src\app\test\styles.module.css .red {color: red;}导入目标页面…...

铁塔电单车协议对接电单车TCP json协议对接成熟充电桩系统搭建低速充电桩TCP 接口规范

低速充电桩 TCP 接口规范 2019 年 9 月 10 日 目录 低速充电桩 1 2) 概述 2 • 协议服务器(IOT_Server) 6 • 通讯报文原则 6 • 报文协议说明 6 报文中所有数值类型为十进制&#xff1b; 6报文中不允许使用转义字符&#xff0c;如\n、\t、\r、\s&#xff1b; 6 • 报文类型…...

CTF-web:java-h2 堆叠注入rce -- N1ctf Junior EasyDB

代码存在sql注入 // 处理登录表单的POST请求PostMapping({"/login"})public String handleLogin(RequestParam String username, RequestParam String password, HttpSession session, Model model) throws SQLException {// 验证用户凭据if (this.userService.valid…...

【异或数列——博弈论】

题目 思路 异或和为0&#xff08;即每一位都有偶数个1&#xff09;&#xff1a;平局最高有效位只有唯一的1&#xff1a;先手必胜最高有效位有奇数个1&#xff0c;偶数个0&#xff1a;先手必胜 若先选1产生优势&#xff0c;则剩下偶数个1&#xff0c;偶数个0&#xff1a;对手选…...

2024 年 9 月青少年软编等考 C 语言三级真题解析

目录 T1. 爆气球思路分析T2. 乘法小宇宙思路分析T3. 有多少坑思路分析T4. 势均力敌思路分析T5. 买地攻略思路分析T1. 爆气球 爆气球对孩子们来说是很好玩的游戏。假设有 n n n 只气球被布置在一条直线上,游戏的目标很简单,就是爆掉尽可能多的气球。但是这里我们加一条特殊的…...

JavaScript设计模式 -- 外观模式

在实际开发中&#xff0c;往往会遇到多个子系统协同工作时&#xff0c;直接操作各个子系统不仅接口繁琐&#xff0c;还容易导致客户端与内部实现紧密耦合。**外观模式&#xff08;Facade Pattern&#xff09;**通过为多个子系统提供一个统一的高层接口&#xff0c;将复杂性隐藏…...

在 Vue 项目中使用 SQLite 数据库的基础应用

目录 一、环境准备二、数据库连接与操作1. 创建数据库连接2. 创建表3. 插入数据4. 查询数据5. 更新数据6. 删除数据 三、在 Vue 组件中使用 SQLite 一、环境准备 安装 Node.js 和 npm&#xff1a;确保已安装 Node.js 和 npm。 创建 Vue 项目&#xff1a;使用 Vue CLI 创建一个…...

《安富莱嵌入式周报》第350期:Google开源Pebble智能手表,开源模块化机器人平台,开源万用表,支持10GHz HRTIM的单片机,开源CNC控制器

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; https://www.bilibili.com/video/BV1YPKEeyEeM/ 《安富莱嵌入式周报》第350期&#xff1a;Google开…...

多线程基础面试题剖析

一、线程的创建方式有几种 创建线程的方式有两种&#xff0c;一种是继承Thread&#xff0c;一种是实现Runable 在这里推荐使用实现Runable接口&#xff0c;因为java是单继承的&#xff0c;一个类继承了Thread将无法继承其他的类&#xff0c;而java可以实现多个接口&#xff0…...

C++ Primer 函数重载

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…...