news 2026/10/18 1:17:57

**python中关于面试问题,简单基础题以及基础知识和运算代码**

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
**python中关于面试问题,简单基础题以及基础知识和运算代码**

python中关于面试问题,简单基础题以及基础知识和运算代码

1.技术面试题

(1)TCP与UDP的区别是什么?

**答:
1、连接方式:TCP是面向连接的协议,每次通讯传输都需要先建立连接,传输后需要释放连接;UDP是无连接协议,通讯传输不需要建立连接。

2、可靠性:TCP是可靠的,当数据丢失或损坏时,TCP会自动重传数据,保证数据的完整性。UDP是不可靠的,不保证数据的完整性。

3、传输速度:UDP传输速度比TCP快,因为不需要建立连接和重传丢失和损坏的数据。

4、应用场景:TCP一般用于文件传输、邮件传输等可靠性要求较高的传输场景;UDP则用于音频、视频等实时性较高的场景。

(2)DHCP和DNS的作用是什么?

**答:
DHCP的作用
1、保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
2、DHCP应当可以给用户分配永久固定的IP地址。
3、DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
4、DHCP服务器应当向现有的BOOTP客户端提供服务。

DNS的作用
就是将一个域名转换成IP地址。
DNS在互联网中起到了关键的作用。它通过域名解析和IP地址管理,使得人们使用简单易记的域名来访问互联网资源。同时,它还支持负载均衡、缓存和邮件交换等功能,以提高网络性能和服务质量。

(3)简述 Linux 文件系统的目录结构,其中/boot、/var、/usr目录的作用分别是什么?

**答:
Root:超管root的home,其他人不允许进入访问,只有超管能进,超管进入是就会到root中。
Usr:安装应用软件的目录,等价于微软Windows下c盘的program files
Var:日志,邮件等可变文件,类似tmp

(4)Linux系统突然无法访问外网,但内网通信正常。请列出至少 5 个可能的故障点及排查步骤。

**答:
1.网关没有设置或则填写错误
2.dns出现问题,dns出现问题翻译不了IP地址或者服务器出现故障
3.连接接口坏掉了,或者宽带欠费,或者运营商出现问题
4.系统防火墙限制了,设置了禁止访问外网的规则
5.ip地址冲突,或者不匹配

2.HR面试题

(1)假如你成功入职,却发现直属领导能力远不如你,你会如何与他共事?

**答:
1.其实这种情况挺常见的,毕竟每个人擅长的地方不一样嘛。我肯定先踏踏实实做好自己的活儿,领导既然是领导,肯定有他的经验或者协调资源的优势,我得多观察学习。
如果工作中确实有觉得可以优化的地方,我会找合适的机会,比如私下汇报的时候,用请教的语气跟他聊:“领导,关于这个事儿我有个小想法,您看这么弄行不行?” 把功劳往他身上引引,毕竟团队能出成果才最重要。
平时多主动沟通,让他知道我的工作进度和想法,慢慢建立信任。反正我的目标很简单,就是把事儿做好,和团队一起把活儿干漂亮,您说对吧?

2.其实工作里每个人的优势不一样,领导能在那个位置,肯定有我没看到的经验或者资源协调能力。我入职后肯定先把自己的活儿干好,多跟他沟通我的想法和进度,让他放心。
要是遇到具体问题,我会带着解决方案去请教:“领导,这个事儿我琢磨了个办法,您经验丰富,帮我看看这么弄合适不?” 多听他的意见,实在有不合适的地方,也按他的思路调整,毕竟团队得有个主心骨。
我这人不爱计较这些,反正最终目的是把事儿做成,他能认可我的工作,我能学到东西,这就挺好的,您说对吧?

(2)你简历上的经历并不突出,我们为什么要选你?

**答:
1.我知道自己简历上的经历可能不算特别亮眼,但我觉得吧,找工作就像搭班子,除了看过去的成绩,更得看能不能跟团队合拍、能不能踏实把眼下的活儿干好。
我这人有个优点,就是学东西快,上手也麻利。虽然之前的经历不算突出,但每次接到新任务,我都习惯先琢磨透需求,不会的就主动问、赶紧补,绝不会拖着等别人催。而且我特别能沉下心来做具体的事,不怕琐碎,就想把每一步都做扎实。
您要是给我这个机会,我肯定会把这份工作当成新的起点,用结果说话。比起那些已经有很多光环的人,我可能更珍惜这个岗位,也更愿意从基础做起,您觉得呢?

2.我知道自己简历上的经历可能不算特别亮眼,但我觉得找工作就像搭班子,合适最重要。您看啊,我虽然没那么多光鲜的案例,但胜在踏实肯干,学东西也快。比如您这岗位要求的XX能力(提一个岗位核心要求),我之前在实习/上一份工作里虽然做得不算特别突出,但一直在琢磨怎么能做好,现在上手肯定没问题。
而且我特别想在这个行业扎扎实实干下去,对咱们公司的业务也挺感兴趣的,进来之后肯定会卯足劲学,把活儿干到位。比起有经验但可能没那么投入的人,我觉得我这股子认真劲儿,说不定更能帮到团队呢。

(3)你还面试了哪些公司?

**答:
1.您是说我还在面其他公司吗?其实我目前主要精力都放在咱们这儿了,毕竟从了解下来,不管是岗位匹配度还是团队氛围,我都觉得特别合适,也是真心想来。
当然啦,也有其他公司联系过,但我心里还是更倾向咱们这边。要是能有幸拿到offer,我肯定就专注准备入职了,不会再分心去面别的。您放心,我找工作还是挺认真的,看准了就会踏实干的。

2.我最近确实也面了几家,不过主要都是跟咱们公司类似的行业,岗位也和咱们这个差不多,毕竟我还是想在这个领域深耕的。
其实对比下来,我还是更倾向咱们公司,一方面是了解到咱们团队的项目方向我特别感兴趣,另一方面也是觉得咱们这儿的工作氛围更适合我。所以要是能有机会加入咱们,我肯定是最优先考虑的,您放心~

3.其实我这段时间主要就瞄准咱们行业里几家比较有口碑的公司在看,咱们公司肯定是排在最前面的——毕竟无论是业务方向还是团队氛围,都特别符合我想深耕的领域,之前了解的时候就觉得特别对味儿。
另外也面过一两家,但聊下来总觉得要么岗位匹配度没那么高,要么就是发展节奏不太符合我的期待。说实话,跟您聊完之后,我心里更倾向咱们这边了,感觉能真正沉下心来做有价值的事。要是能有机会加入,我肯定特别珍惜,您放心,我可不是那种三心二意的人~

(4)如果你发现公司某项业务存在合规风险,但领导暗示‘别多管闲事’,你会怎么做?

**答:
1.其实这种情况,我肯定先把风险点弄清楚,比如具体不合规的地方、可能有啥影响,自己先理个明白。然后找个合适的机会,私下跟领导好好说:“领导,之前那个服务我留意到个小细节,可能涉及合规这块,我整理了点具体情况,您看要不要一起琢磨下?万一真出点啥问题,对咱们团队影响也不好呀。”
我不会硬杠,就客观说情况、提顾虑,毕竟领导考虑的层面可能更多。如果他有其他安排,我就按他的要求配合,但自己心里也会多留意,真有新情况再及时反馈。说到底,都是想为公司好,您说对吧?

2.我肯定不会直接不管的,毕竟合规这事儿关系到公司长远发展嘛。我会找个合适的机会,比如单独汇报的时候,把具体风险点和可能的影响简单说清楚,再递个小建议:“领导,这事儿我查了下,好像有个小细节可能得注意下,我整理了个简单的规避思路,您抽空看看?”
语气放轻松点,不较真,就事论事。毕竟领导考虑的层面可能更全,也许他有别的安排呢?但我得尽到提醒的责任,既不越界,也不能让团队踩坑。您看这样是不是更稳妥些?

3.选择题

(1)以下哪个是合法的 Python 变量名?

A.2var

B._var

C.var@1

D.var-1

**答:B

(2)表达式True + 2的结果是?
A.True

B.3

C.2

D.TypeError

**答:B

(3)以下哪个表达式会引发错误?

A."1" + "2"

B.[1, 2] + [3, 4]

C.(1, 2) + (3, 4)

D.{1, 2} + {3, 4}

**答:D

(4)以下哪个是将字符串转换为整数的正确方法?

A.str(5)

B.int("5")

C.float("5")

D.bool("5")

**答:B

(5)执行print("Hello", "World", sep='-', end='!')后,输出结果是?

A .Hello World

B. Hello-World

C. Hello-World!

D. Hello World!

**答:C

(6)以下哪个运算符用于判断两个对象是否是同一个对象(内存地址相同)?

A. ==

B. !=

C. is

D. in

**答:C

(7)执行 print(f"The result is {2 + 3}") ,输出结果是?

A. The result is {2 + 3}

B. The result is 5

C. The result is 2 + 3

D. 语法错误

**答:B

(8)以下代码的输出结果是?

x=5ifx>3:print("A")elifx>4:print("B")else:print("C")

A. A

B. B

C. C

D. 无输出

**答:A

(9)以下代码是否存在错误?

A=10ifA>5:print("Big")elifA<5:print("Small")elseprint("Medium")

A. 无错误

B. 缩进错误

C.else后缺少冒号

D.elif条件错误

**答:C

(10)以下代码的输出结果是?

x=0ifx:print("True")else:print("False")

A. True

B. False

C. 语法错误

D. 无输出

**答:B

(11)以下代码的输出结果是?

A=10B=20ifA>5andB<15:print("条件1")elifA>8orB>18:print("条件2")else:print("条件3")

A. 条件 1

B. 条件 2

C. 条件 3

D. 无输出

**答:B

(12)以下代码的输出结果是?

A=5B=10ifA>3orB/0>0:print("A")else:print("B")

A. A

B. B

C. 语法错误

D. 运行时错误

**答:B

4.问答题

(1)什么是 Python 的动态类型特性?举例说明。

**答:
Python的动态类型特征,简单说就是变量的类型不用提前声明,而且可以随时改变。
比如,你可以先让一个变量a等于数字10(这时候它是整数类型),之后直接让a等于字符串"hello"(它就变成了字符串类型),中间不需要像有些语言那样专门声明“这是个整数”“这要改成字符串”。
也就是说,变量本身不固定绑定某一种类型,类型是随着赋值内容的变化而动态变化的,这样写代码会更灵活。

(2)如何将字符串 “123” 转换为整数?如果字符串为 “12a3” 会发生什么?

**答:
num=“123”
print(int(num))

12a3会报错,因为内部肌理是以十进制为解析的,a不是十进制数字。

(3)比较 Python 中的动态类型与静态类型语言(如 Java)的优缺点。

**答:
动态类型(Python)
优点:代码简洁,开发快,变量类型灵活,无需提前声明。
缺点:类型错误难提前发现,大型项目维护较复杂。

静态类型(Java)
优点:类型错误编译时可见,大型项目结构清晰,易维护。
缺点:代码较繁琐,开发速度较慢,需提前声明类型。

(4)简述 input() 函数和 eval() 函数的区别,并举例说明它们的应用场景。

**答:
1.eval()函数
eval()能够以Python表达式的方式解析并执行字符串,并将返回结果输出。eval()函数将去掉字符串的两个引号,将其解释为一个变量。
作用:
a. 处理数字
单引号,双引号,eval()函数都将其解释为int类型;三引号则解释为str类型。
b.处理字符串类型的字符串
对于eval()括号中的的字符串(非数字),如果字符串带的是单引号或者是双引号都会引起NameError,这是因为eval()函数在处理字符串时会去掉其两个引号。正确应该使用一个单引号包含一个双引号组成的三引号来包含字符串。

2.input函数
在获得用户输入之前,input()函数可以包含一些提示性的文字。
= input(“提示性的 文字”)
string=input(“请输入字符串:”)
无论用户输入的是字符还是数字,input()函数统一按照字符串类型输出。因此input()的输出类型是str。

3.两者结合使用
使用eval(input(‘请输入数字:’))来获取用户输入的数字

4.总结
对于接收用户输入的数字,可以使用的结合:
a =eval(input(‘请输入一个数字:’))

对于接收用户输入的字符串,则可以直接使用input()函数:
input_string =input(“请输入一个字符串:”)

*eval(input())在接收输入数字作为变量时非常好用,可以尽量在此场合下使用。

(5)比较 == 运算符和 is 运算符的区别,并举例说明在什么情况下结果会不同。

**答:
is与==的区别

  1. 比较的层面不同
    is比较的是对象的身份(identity),即它们在内存中的位置是否相同。
    ==比较的是对象的值(value),即它们的内容是否相同。

  2. 使用场景不同
    使用is时,通常关心的是两个变量是否指向同一个对象。
    使用==时,通常关心的是两个对象的值是否相等,无论它们是否指向同一个对象。

  3. 性能差异
    is比较通常比==比较更快,因为它只是比较两个对象的id值,这是一个简单的整数比较。
    ==比较可能需要调用对象的__eq__方法,执行更复杂的逻辑,因此可能更慢。

  4. 注意事项
    对于可变类型(如列表、字典等),即使两个对象的内容相同,使用is也可能得到False,因为它们指向的是不同的内存位置。
    对于不可变类型(如整数、字符串、元组等),在特定情况下(如小整数和短字符串缓存),使用is可能会得到True,即使这些对象是通过不同的字面量创建的。然而,这种情况并不常见,且不应作为编写代码时的依赖。

总结
is和是Python中两个非常重要的运算符,它们在比较对象时有着本质的区别。is用于比较对象的身份(即它们是否指向内存中的同一个对象),而用于比较对象的值(即它们的内容是否相同)。了解这两个运算符的区别对于编写高效、可靠的Python代码至关重要。在编写代码时,应根据实际需求选择合适的运算符进行比较。同时,还需要注意Python中某些特殊情况的缓存机制(如小整数和短字符串缓存),以免在比较时产生误解。

>>>a=4444;b=4444# 同一行定义两个变量>>>aisbTrue>>>a==bTrue
>>>c=5555# 赋值语句独立一行>>>d=5555# 赋值语句独立一行>>>cisd# 检查对象标识False>>>c==d# 检查值相等性True

**(6)逻辑运算符 and、or、not 的运算规则是什么?
**答:

优先级not>and>or
not:非。取反
and:和,并且,都真为真,一假则假
or:或者,一真则真

(7)当使用 input() 函数获取用户输入的数字时,如何将其转换为整数类型?如果用户输入的不是数字,会发生什么?

**答:
用map()函数解决,在Python中,用input()获取用户输入的数字后,直接用int()函数就能转成整数类型,比如:

num=int(input("请输入数字:"))

如果用户输入的不是数字(比如字母、符号、中文),这时候用int()转换就会报错,具体是ValueError,程序会直接停止运行。
比如用户输入“abc”,执行int(“abc”)就会提示报错:ValueError: invalid literal for int() with base 10: ‘abc’。

(8)阅读以下代码,解释输出结果并说明原因。

x=5ifx>3:print("X 大于3")ifx>4:print("X 大于4")ifx>5:print("X 大于5")

**答:X 大于3

(9)编写代码,计算三角形的三个角

题目描述

输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)
A=acos((a∗a−b∗b−c∗c)/(−2∗b∗c))B=acos((b∗b−a∗a−c∗c)/(−2∗a∗c))C=acos((c∗c−b∗b−a∗a)/(−2∗a∗b)) A=acos((a*a-b*b-c*c)/(-2*b*c)) \\ B=acos((b*b-a*a-c*c)/(-2*a*c)) \\ C=acos((c*c-b*b-a*a)/(-2*a*b)) \\A=acos((a∗a−b∗b−c∗c)/(−2∗b∗c))B=acos((b∗b−a∗a−c∗c)/(−2∗a∗c))C=acos((c∗c−b∗b−a∗a)/(−2∗a∗b))
其中a、b、c分别表示三条边,A、B、C分别表示三边对应的角
##角度=弧度*180/3.14
输入输出描述

输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔

输出三行,分别为A、B、C三个角的度数,结果保留两位小数

示例

输入:

1 1 6.5 1 6.5 2.5

输出:

15.26

90.00

74.74

答:

#x1,y1,x2,y2,x3,y3 = map (float,input().split())a=((x2-x3)**2+(y2-y3)**2)**0.5b=((x1-x3)**2+(y1-y3)**2)**0.5c=((x1-x2)**2+(y1-y2)**2)**0.5A=((a**2-b**2-c**2)/(-2*b*c))B=((b**2-a**2-c**2)/(-2*a*c))C=((c**2-b**2-a**2)/(-2*a*b))A=A*180/3.1415926B=B*180/3.1415926C=C*180/3.1415926print(f"{A:2f}")print(f'{B:.2f}')print(f'{C:.2f}')

(10)编写代码,解2×2线程方程

题目描述

如有一个2×2的线程方程组:
ax+by=ecx+dy=f ax+by=e \\ cx+dy=fax+by=ecx+dy=f
你可以使用克莱姆法则解该线性方程:
x=ed−bfad−bc,y=af−ecad−bc x=\frac{ed-bf}{ad-bc},y=\frac{af-ec}{ad-bc}x=ad−bced−bf​,y=ad−bcaf−ec​
其中ad−bcad-bcad−bc为判别式,如果为零则输出无解

输入输出描述

输入a、b、c、d、e、f六个数据,数据之间用空格分隔

输出两行,第一行x的解,第二行y的解,保留一位小数

示例1

输入:

9.0 4.0 3.0 -5.0 -6.0 -21.0

输出:

-2.0

3.0

示例2

输入:

1.0 2.0 2.0 4.0 4.0 5.0

输出:

无解

答:

a,b,c,d,e,f=map(float,input().split())det=a*d-b*cifdet==0:print("无解")else:x=(e*d-b*f)/det y=(a*f-e*c)/detprint('%.1f'%x)print('%.1f'%y)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 1:17:56

最新关于如何卸载联软助手UniAccess Agent

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/18 1:16:20

Python连接串口并发送命令

在Python中&#xff0c;可以使用 pyserial 库来连接串口并发送命令。pyserial 是一个用于串行通信的第三方库&#xff0c;支持多种平台。首先&#xff0c;需要安装 pyserial 库。可以使用 pip 进行安装&#xff1a;pip install pyserial使用 pyserial 连接串口并发送命令以下是…

作者头像 李华