Python面试准备(三)之 python数据类型

Python 面试全攻略:从准备到应对,解锁面试成功密码 项目经验是面试中展示个人能力的重要依据。在面试前,要对自己参与过的 Python 项目进行全面梳理和总结,包括项目背景、目标、技术选型、实现过程、遇到的问题及解决方案等。在描述项目时,要突出自己在项目中的角色和贡献,强调解决问题的思路和方法,以及取得的成果和收获。可以准备一些项目代码片段或案例,在面试中展示自己的编程能力和解决实际问题的能力。同时,要对项目中使用的技术和工具进行深入思考,了解其优缺点和适用场景,以便在面试中能够与面试官进行深入的交流。 阅读详情

数据类型

数据类型-字符串
  1. 列举 Python 中的基本数据类型?

答: Python3 中有六个标准的数据类型:字符串(String)、数字(Digit)、列表(List)、元组(Tuple)、集合(Sets)、字典(Dictionary)。

  1. 如何区别可变数据类型和不可变数据类型

答: 从对象内存地址方向来说

可变数据类型:在内存地址不变的情况下,值可改变(列表和字典是可变类型,但是字典中的 key 值必须是不可变类型)
不可变数据类型:内存改变,值也跟着改变。(数字,字符串,布尔类型,都是不可变类型)可以通过 id() 方法进行内存地址的检测。

  1. 将"hello world"转换为首字母大写"Hello World"

答: 这个得看清题目是要求两个单词首字母都要大写,如果只是第一个单词首字母大小的话,只使用 capitalize 即可,但是这里是两个单词,所以用下面的方法。

arr = "hello world".split(" ")
new_str = f"{arr[0].capitalize()} {arr[1].capitalize()}"
print(new_str)

后来评论中有朋友提到了下面的方法,这里感谢这位朋友提醒。方案如下

"hello world".title()

非常简单一句话搞定。

  1. 如何检测字符串中只含有数字?

答:可以通过 isdigit 方法,例子如下

s1 = "12223".isdigit()
print(s1)

s2 = "12223a".isdigit()
print(s2)

#结果如下:
#True
#False
  1. 将字符串"ilovechina"进行反转

答:

s1 = "ilovechina"[::-1]
print(s1)
  1. Python 中的字符串格式化方式你知道哪些?

答:%s,format,fstring(Python3.6 开始才支持,现在推荐的写法)

  1. 有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。

答:因为题目要是写一个函数所以我们不能直接使用 strip,不过我们可以把它封装到函数啊

def strip_function(s1):
    return s1.strip()

s1 = " adabdw "
print(strip_function(s1))
  1. 获取字符串”123456“最后的两个字符。

答:切片使用的考察,最后两个即开始索引是 -2,代码如下

a = "123456"
print(a[-2::])
  1. 一个编码为 GBK 的字符串 S,要将其转成 UTF-8 编码的字符串,应如何操作?

答:

a= "S".encode("gbk").decode("utf-8",'ignore')
print(a)
  1. (1)s=“info:xiaoZhang 33 shandong”,用正则切分字符串输出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]。(2)a = "你好 中国 ",去除多余空格只留一个空格。

答:

(1)我们需要根据冒号或者空格切分

import re
s = "info:xiaoZhang 33 shandong"
res = re.split(r":| ", s)
print(res)

(2)

s = "你好     中国  "
print(" ".join(s.split()))
  1. (1) 怎样将字符串转换为小写。 (2) 单引号、双引号、三引号的区别?

答: (1) 使用字符串的 lower() 方法。

(2)单独使用单引号和双引号没什么区别,但是如果引号里面还需要使用引号的时候,就需要这两个配合使用了,然后说三引号,同样的三引号也分为三单引号和三双引号,两个都可以声名长的字符串时候使用,如果使用 docstring 就需要使用三双引号。

数据类型 - 列表
  1. 已知 AList = [1,2,3,1,2],对 AList 列表元素去重,写出具体过程。

答:

list(set(AList))
  1. 如何实现 “1,2,3” 变成 [“1”,“2”,“3”]

答:

s = "1,2,3"
print(s.split(","))
  1. 给定两个 list,A 和 B,找出相同元素和不同元素

答:

A、B 中相同元素:print(set(A)&set(B)) 
A、B 中不同元素:print(set(A)^set(B))
  1. [[1,2],[3,4],[5,6]] 一行代码展开该列表,得出 [1,2,3,4,5,6]

答:

l = [[1,2],[3,4],[5,6]]
x=[j for i in l for j in i]  
print(x)
  1. 合并列表 [1,5,7,9] 和 [2,2,6,8]

答:使用 extend 和 + 都可以。

a = [1,5,7,9]
b = [2,2,6,8]
a.extend(b)
print(a)
  1. 如何打乱一个列表的元素?

答:

import random

a = [1, 2, 3, 4, 5]
random.shuffle(a)
print(a)
数据类型 - 字典
  1. 字典操作中 del 和 pop 有什么区别

答:del 可以根据索引(元素所在位置)来删除的,没有返回值。 pop 可以根据索引弹出一个值,然后可以接收它的返回值。

  1. 按照字典的内的年龄排序

d1 = [
{‘name’:‘alice’, ‘age’:38},
{‘name’:‘bob’, ‘age’:18},
{‘name’:‘Carl’, ‘age’:28},
]
答:

d1 = [
    {'name': 'alice', 'age': 38},
    {'name': 'bob', 'age': 18},
    {'name': 'Carl', 'age': 28},
]

print(sorted(d1, key=lambda x:x["age"]))
  1. 请合并下面两个字典 a = {“A”:1,“B”:2},b = {“C”:3,“D”:4}

答: 合并字典方法很多,可以使用 a.update(b) 或者下面字典解包的方式

a = {"A":1,"B":2}
b = {"C":3,"D":4}
print({**a,**b})
  1. 如何使用生成式的方式生成一个字典,写一段功能代码。

答:

#需求 3: 把字典的 key 和 value 值调换;
d = {'a':'1', 'b':'2'}

print({v:k for k,v in d.items()})
  1. 如何把元组 (“a”,“b”) 和元组 (1,2),变为字典 {“a”:1,“b”:2}

答 zip 的使用,但是最后记得把 zip 对象再转换为字典。

a = ("a", "b")
b = (1, 2)
print(dict(zip(a, b)))
数据类型 - 综合
  1. 下列字典对象键类型不正确的是?

    A:{1:0,2:0,3:0}
    B:{“a”:0, “b”:0, “c”:0}
    C: {(1,2):0, (2,3):0}
    D: {[1,2]:0, [2,3]:0}

答:D 因为只有可 hash 的对象才能做字典的键,列表是可变类型不是可 hash 对象,所以不能用列表做为字典的键。

  1. 如何交换字典 {“A”:1,“B”:2}的键和值

答:

s =  {"A":1,"B":2}

#方法一:
dict_new = {value:key for key,value in s.items()}

#方法二:
new_s= dict(zip(s.values(),s.keys()))
  1. Python 里面如何实现 tuple 和 list 的转换?

答: Python 中的类型转换,一般通过类型强转即可完成 tuple 转 list 是 list() 方法 list 转 tuple 使用 tuple() 方法

  1. 我们知道对于列表可以使用切片操作进行部分元素的选择,那么如何对生成器类型的对象实现相同的功能呢?

答: 这个题目考察了 Python 标准库的 itertools 模快的掌握情况,该模块提供了操作生成器的一些方法。 对于生成器类型我们使用 islice 方法来实现切片的功能。例子如下

from itertools import islice
gen = iter(range(10)) #iter()函数用来生成迭代器
#第一个参数是迭代器,第二个参数起始索引,第三个参数结束索引,不支持负数索引
for i in islice(gen,0,4): 
    print(i)
  1. 请将 [i for i in range(3)] 改成生成器

答:通过把列表生产式的中括号,改为小括号我们就实现了生产器的功能即,

(i for i in range(3))
  1. a=“hello” 和 b=“你好” 编码成 bytes 类型

答: 这个题目一共三种方式,第一种是在字符串的前面加一个 b,第二种可以使用 bytes 方法,第三种使用字符串 encode 方法。具体代码如下,abc 代表三种情况

a = b"hello"
b = bytes("你好", "utf-8")
c = "你好".encode("utf-8")
print(a, b, c)
  1. 下面的代码输出结果是什么?

    a = (1,2,3,[4,5,6,7],8)
    a[2] = 2

答: 我们知道元组里的元素是不能改变的所以这个题目的答案是出现异常。

  1. 下面的代码输出的结果是什么?

    a = (1,2,3,[4,5,6,7],8)
    a[3][0] = 2

答:前面我说了元组的里元素是不能改变的,这句话严格来说是不准确的,如果元组里面元素本身就是可变类型,比如列表,那么在操作这个元素里的对象时,其内存地址也是不变的。a[3] 对应的元素是列表,然后对列表第一个元素赋值,所以最后的结果是: (1,2,3,[2,5,6,7],8)

面试 Python 基础八股文十问十答第一期 鸭子类型是动态类型语言中的一种多态方式,它关注的是对象的行为而不是对象的类型。鸭子类型的思想源自于“如果它走起路来像鸭子,叫起来也像鸭子,那么它就是鸭子”。在Python中,鸭子类型的概念表现为,一个对象的适用性不是由其类型确定,而是由其具备的方法和属性决定。例如,一个对象如果具有quack()和walk()方法,那么它就可以被视为鸭子,无论它是否是通过继承自某个鸭子类或者实现某个特定接口。 阅读详情

相关推荐

面试Python工程师会问哪些问题?需要准备什么?| 面试官这样说

我们在参加Python开发岗位面试的时候都要做哪些准备? 一般Python技术方面的面试会问哪些问题? 今天,我们从2位面试官的角度来看看,参加Python开发岗面试需要做哪些准备。 1 我之前在豆瓣负责过一段时间我们组的技术面试。由于现在不再去面试,可以爆一爆。 1. 我从来不问google可获得的答案的问题, 只是问问面试者「在过去的工作中,遇到的Ta认为最有成就感的一件事情是什么」和「如果出现了一个google不到的问题,你会怎么解决」这样的问题。 2. 我从来不问操作系统等和Python无关的话题,

DD1023hhh的博客 1883

a=”hello”和b=”世界”编码成bytes类型

a="hello" c=a.encode(encoding='utf-8') a = b'hello' b="世界" b = b.encode(encoding='utf-8') print(a,b,c) 输出 b'hello' b'\xe4\xb8\x96\xe7\x95\x8c' b'hello' [Program finished] 转载于...

weixin_30711917的博客 584

常见的python与爬虫面试题准备好了

init:对象初始化方法new:创建对象时候执行的方法,单列模式会用到str:当使用print输出对象的时候,只要自己定义了str(self)方法,那么就会打印从在这个方法中return的数据del:删除对象执行的方法散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字 “指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。

m0_72444380的博客 1270

Python字典生成式

Python字典生成式

Python热爱者的博客 1285

Python核心面试题解析与实战准备

Python作为一门兼具简洁与强大功能的编程语言,已成为后端开发、数据分析、人工智能、自动化测试等多个技术领域的主流语言。在技术面试中,Python相关的考察不仅限于语法掌握,更注重编程思维、算法能力、项目经验以及对语言特性的深入理解。本章将系统性地梳理Python面试的核心考察维度,包括基础语法、数据结构、函数与面向对象编程、标准库应用、并发编程等关键知识点,并结合实际面试题型,帮助读者构建完整知识体系。同时,我们还将提供一条由浅入深、循序渐进的学习路径,为后续章节的深入学习奠定坚实基础。

weixin_42360733的博客 780

解锁微信小程序Camera组件的隐藏技能:连续扫码背后的逻辑与陷阱

本文深入解析微信小程序Camera组件在连续扫码功能中的技术原理与优化方案,涵盖识别率提升、内存管理策略及典型问题排查。通过实战参数对比和代码示例,帮助开发者解决扫码枪应用中的性能损耗与界面卡顿问题,提升零售、物流等场景的工作效率。

weixin_29019241的博客 493

python:字典生成式

示例: 代码功能:随机生成20位学生即其成绩,筛选并打印出90分以上的学生及其成绩。 不采用字典生成式: import random stuInfo = {} ##存放学生信息字典 for i in range(20): ##循环20次即有20位学生 name = 'stu' + str(i) ##学生名字 score = random.randint(60,100...

dddxxy的博客 9595

知识检索中的四大评估指标:准确率、精确率、召回率与F1分数详解

摘要:NLP算法面试中,评估知识检索系统的核心指标包括准确率、精确率、召回率和F1分数。准确率衡量整体预测正确性,但在样本不均衡时可能失真;精确率关注预测正类中的真实比例(查准能力),召回率衡量真实正类被预测的比例(查全能力)。F1分数是两者的调和平均,提供综合评估。这些指标通过混淆矩阵计算,并存在制约关系:提高召回率往往降低精确率,反之亦然。应用场景包括文档检索(评估结果质量和覆盖度)和文本分类(如垃圾邮件过滤)。面试需掌握指标区别、适用场景及平衡方法(如调整阈值)。F1分数在样本不平衡时比准确率更具参考

Ven%的博客 1763

从零单排学Python:You-are-Pythonista基础语法到高级特性的完整路线图

You-are-Pythonista是一个汇聚Python应用、实训和技术分享的开源项目,为初学者提供了从基础语法到高级特性的完整学习资源。本文将带你探索这个项目的学习路径,帮助你系统掌握Python编程技能。 ## 📚 为什么选择You-are-Pythonista? You-are-Pythonista项目包含丰富的学习资源,从基础语法到高级特性,从算法练习到实际应用,应有尽有。项目结构

gitblog_00065的博客 222

从零构建:如何在VSCode中为HBuilderX迁移的UniApp项目搭建TypeScript支持环境

本文详细指导如何将HBuilderX中的UniApp项目迁移至VSCode并搭建TypeScript支持环境。通过pnpm包管理器初始化项目、配置tsconfig.json和vite.config.ts文件,实现工程化迁移与TypeScript深度集成,提升开发效率和代码质量。

book8的博客 1050

OAI骨关节炎数据集申请与DICOM下载全流程避坑指南

医学影像分析中,DICOM格式是存储与交换CT、MRI等数据的通用标准,其元数据Tag承载着像素间距、层厚等关键物理信息,直接影响定量分析的准确性。在骨关节炎研究领域,OAI数据集因样本量大、随访时间长而成为高价值资源,但获取需通过NDA协议申请,并借助nda-tools命令行工具完成TB级影像的批量下载与断点续传。这一流程涉及浏览器环境配置、DICOM格式转换及Python预处理等工程环节,任一细节疏漏都可能导致数据读取异常或分析偏差。掌握从申请到落地的完整链路,能显著提升医学影像AI研究的效率与可复现性

weixin_30843121的博客 276

数据分析岗位面试准备请看这篇!

面试过一些人,也被人面试过,今天我来谈谈对数据分析岗位面试准备的理解,特别是互联网行业面试考察的主要方面,以及如何快速准备。注意,面试准备大体上仅针对面试,并不会涵盖数据分析全方面的知识...

luoluo96321的博客 9693

从零打造音乐会级特雷门琴:原理、设计与调试全解析

电子乐器的工作原理通常基于信号生成与调制。特雷门琴作为世界上最早的电子乐器之一,其核心原理是利用射频振荡器和电容传感,将演奏者的手势变化转化为音高与音量信号。这种技术通过外差式混频实现音高控制,并利用压控放大器实现细腻的音量动态,其工程价值在于将抽象的空间位置信息精确映射为连续的音频参数。在音乐制作、声音艺术和交互装置等领域,这类技术为创造独特的演奏体验提供了基础。本文聚焦于如何从电路层面实现一台高稳定性的特雷门琴,详细阐述了从LC振荡器设计、天线场形优化到音色混合检波等关键环节,并分享了基于LTspice

weixin_34046298的博客 171

Python面试小白指南:从零开始准备

Python面试并不难,关键在于打好基础和多加练习。如果你觉得手动编写代码和测试比较麻烦,可以试试InsCode(快马)平台,它提供了便捷的代码编辑和运行环境,还能一键部署项目,非常适合新手快速上手。我自己用过几次,发现它的界面很友好,操作简单,特别适合用来练习面试题。

CrystalwaveStag的博客 861

OpenGL计算着色器工作组设置测试

先看看不同的显卡上工作组的数量情况。 glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 0, data); glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 1, data + 1); glGetIntegeri_v(GL_MAX_COMPUTE_WORK_GROUP_COUNT, 2, data...

qq_26328385的博客 1484

Advanced Installer打包避坑指南:如何正确配置64位系统下的Java环境与注册表条件(以15.7版本为例)

本文详细解析了使用Advanced Installer 15.7版本在64位系统下打包Java应用时的常见问题与解决方案。重点介绍了注册表重定向机制、Java环境检测的双保险策略、环境变量设置的隐藏坑以及权限管理的进阶技巧,帮助开发者避免安装包在用户机器上无法运行的幽灵问题。

weixin_28676289的博客 323

Python 爬虫面试题 170 道:2019 版(带答案)

面试无时无刻不在进行中,每一次面试前我们都要做好充分的准备,就需要我们有足够的面试题,这里是一个公众号推出的python爬虫方面的面试题,有需要的大家可以一起看一下。里面的问题大家可以一起讨论,答案不是固定的,个人觉得面试回答问题的时候要做一些适当的扩展,可以把自己平时工作中的一些用法举例说明一下。 × Python 常见的 170 道面试题全解析:2019 版 语言特性 1. ...

学习python 1万+

智慧加油站小程序数据库设计文档

【代码】智慧加油站小程序数据库设计文档。

低代码布道师的博客 1402

【Python面试】 说说Python中有几种数据类型?​

最近公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮...

618

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python数据类型(三),2024年Python高级面试题

’’‘’’‘’’二、元组切片操作元组的切片,与字符串、列表的切片操作相同(可以参考作者往期文章。

2301_79058515的博客 952

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python数据类型(三),记录一次腾讯Python岗面试笔试总结

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

2401_83977530的博客 957

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

企业级Python面试题(准备Python面试、期末考试的都可看看)

1. 为什么学习 Python? 2. 解释型和编译型语言的区别 3. 简述下 Python 中的字符串、列表、元组和字典 4. 简述上述数据 1.2 REST风格简介 2、HTTP方法的语义 2.1 POST和PUT的区别 3、RESTful接口URL命名原则 4、RESTful接口URL分级原则 5、RESTful接口命名示例 7、RESTful入门案例 8、@RequestBody @RequestParam @PathVariable 9、RESTful快速开发 10、基于RESTful页面数据交互

weixin_43474701的博客 1957

Github-技术面试宝典:百万开发者信赖的面试准备指南

Tech Interview Handbook 是一个全面、免费的技术面试准备资源库,专门为忙碌的工程师设计。该项目旨在帮助开发者系统性地准备技术面试的各个环节:

2303_77200324的博客 1325

PS5LM决策模型教程:0.3秒回答3个问题,Ollaya驱动的/v1/systemone接口完全解析

PS5LM 是一个在破解版 PS5 的 GPU 上原生运行 llama.cpp 大模型的项目,其新推出的**决策模型**功能由 Ollaya 驱动:控制台通过 `/v1/systemone` 接口,一次前向推理就能回答选择题、是非题和打分题——最小的 d1 Omni 600M 决策模型只需 **0.3 秒回答 3 个问题**,无需生成文字、无需 PC、无需云端。 下面这份教程带你从零跑通 PS5

gitblog_00571的博客 801

没有笔试的面试,如何准备Python知识

无笔试的情况下,准备python相关知识面试 在面试时造航母,工作时仅是拧螺丝的就业大背景下,现在的招聘测试都要求代码能力,但是却总是一件让我很难以理解的事情,要求会写代码,却没有笔试环节,我着实有点懵逼。考察什么?如何考察? 但作为弱势群体的求职者,还是需要准备呀,思来想去,估计会问一些原理性的东西多一点。 关于无笔试的python相关知识。小白我就罗列总结几点吧: 一、基础一点的: 1、数据类型: 哪些是可变类型,哪些是不可变类型? 回答: 列表、字典、集合是可变类型 字符串、元组、冰冻集合是不可变类型

weixin_50640351的博客 267
上一篇: Python面试准备(二)之 Python编码规范
下一篇: Python面试准备(四)之 python操作类题目
GhostintheCode
博客等级 码龄8年 53粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值