【技术面试题+HR面试题】Python基础知识及Python的基础编程问答题

1.技术面试题

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

**答 TCP是在传输层面向连接的可靠协议。在完成传输层的基本工作的同时,还需要保证数据的完整性,三次握手四次挥手建立端到端的虚拟链路。特点是:1、面向连接 2、可靠传输 3、控流等。

UDP是传输层上非面向连接的不可靠协议,仅完成传输层的基本工作。特点是 1、简单 2、无连接 3、低开销 4、尽力传输等。

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

答:DHCP 全称是动态主机配置协议(Dynamic Host Configuration Protocol),是一种网络协议,主要作用是自动为网络中的设备分配IP地址及其他网络配置信息

作用:

1、 自动分配IP地址,避免手动设置的繁琐和IP冲突问题。

2、统一管理网络中的IP资源,提高网络配置效率。

3、当设备离开网络后,自动回收IP地址,供其他设备使用。

DNS 即 Domain Name System,中文名为域名系统,是互联网的一项关键基础服务,用于将人类易读的域名,转换为计算机能够理解和使用的 IP 地址

作用:

  • 地址翻译:将易记的域名转换为计算机能识别的 IP 地址,方便用户访问网络资源。

  • 负载均衡:依据用户位置、网络状况等,把请求分配到不同服务器,提升访问效率和服务质量。

  • 服务定位:帮助网络应用定位对应的服务器,如邮件系统通过 DNS 找到邮件服务器。

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

答:

  • /boot 目录:存放与系统启动相关的文件,包括内核文件(如 vmlinuz)以及启动引导加载程序(如 GRUB )的配置文件和镜像文件等。当计算机启动时,引导加载程序会从该目录读取必要的文件来启动操作系统内核。如果 /boot 目录损坏,系统可能无法正常启动,一般不要乱动!!!

  • /var 目录:用于存放运行时会改变的数据,是一个动态数据目录。比如,/var/log 目录存储系统日志文件,通过这些日志可以了解系统的运行状态、故障信息等。

  • /usr 目录:用于存放用户应用程序和共享文件,类似于 Windows 系统中的 Program Files 目录。它包含了大量的系统自带软件、库文件以及用户安装的非系统关键应用程序。其中,/usr/bin 目录存放用户可执行程序,/usr/share 目录保存共享数据,如帮助文档、图标等。

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

答:1. 网络接口状态异常

  • 排查步骤

    • 使用ifconfig检查网卡是否正常工作。

    • ping 127.0.0.1测试本地回环接口。

    • 若网卡 DOWN,尝试重启网络服务(systemctl restart NetworkManager)。

2. 网关配置错误或不可达
  • 排查步骤

    • 检查默认网关设置:ip route showroute -n

    • 测试网关连通性:使用 ping 命令

    • 若不通,检查路由器状态或修改网关配置(ip route add default via <gateway_ip>)。

    3. DNS 解析故障
    • 排查步骤

      • 尝试直接 ping IP 地址(如ping 8.8.8.8),若成功则为 DNS 问题。

      • 临时修改 DNS 服务器测试:nameserver 8.8.8.8

    4. 防火墙规则限制
    • 排查步骤

      • 检查防火墙状态:systemctl status firewalld/iptables

      • 临时关闭防火墙测试:systemctl stop firewalld(注意安全风险)。

      • 若关闭后正常,调整防火墙规则允许外网访问(如开放 80/443 端口)。

    5. DHCP 租约过期或 IP 冲突
    • 排查步骤

      • 释放并重新获取 IP 地址

      • 检查局域网内是否有 IP 地址冲突(使用arp-scan工具)

2.HR面试题

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

答:思考:当发现直属领导能力远不如自己时,需要跳出“能力高低”的单一评判框架,领导问这个问题,核心是看三点:

  1. 你是否懂职场规则,尊重其权责;

  2. 你能否控制情绪,用协作而非对抗解决问题;

  3. 你是否以结果为重,能补位不越位。

本质是在测你的职场成熟度和团队适配性。

回答:我理解职场中每个人的角色价值不同,领导在资源协调、方向把控上有我需要学习的地方。如果真遇到这种情况,我会聚焦目标,多做专业细节的落地,提前给您提供清晰的方案和建议,帮您减轻决策压力;同时多向您请教跨部门协作、把握。

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

答:思考:

  1. 你对自身价值的认知是否清晰——能否跳出“经历不突出”的表面劣势,找到与岗位匹配的独特优势(如技能、态度、潜力等)。

  2. 你对岗位的理解是否到位——是否能证明自己的特质(哪怕是“学习能力强”“抗压性高”)正是团队当前需要的,而非泛泛而谈。

背后藏着的潜台词是:“我们看到了你的短板,现在需要你给一个‘说服我们忽略短板、选择你’的理由”,考验的是你的应变能力和自我推销的精准度。

回答:我理解简历上的经历可能不算亮眼,但我一直很关注咱们这个岗位的需求——比如您提到的XX技能(结合岗位要求说1-2个),其实我在过往项目里通过XX方式(举具体小事例,哪怕是实习/兼职)积累了实操经验,虽然规模不大,但能快速上手;另外,我特别在意团队协作中的执行力,比如之前XX事(简单说一个体现责任心/学习快的例子),这也是我觉得能跟上团队节奏的地方。

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

答: 思考:hr问这个问题一方面判断你的求职目标是否明确,另一方面 评估你的市场认可度及预判你入职的可能性。

回答:面试了两家同行业的头部公司,岗位和现在聊的 [岗位名称] 类似,主要是想多了解不同团队的业务侧重点。不过贵公司在 [公司优势,如某业务赛道 / 企业文化] 上的特点,其实更符合我职业规划的方向,所以也很期待能有进一步合作的可能。

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

答: 思考:hr问这个问题主要考察三个维度;

  1. 底线意识:是否有合规红线不可碰的原则性;

  2. 沟通智慧:能否在坚持原则的同时,避免激化矛盾(如硬刚领导);

  3. 责任担当:是否能主动推动问题解决,而非被动服从或逃避

回答:坚持合规底线,先私下向领导客观说明风险并附依据,同时提出替代方案;若领导仍坚持,视风险等级,按公司流程反馈给合规部门或上级,必要时坚守法规底线等内容,

3.选择题

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

A. 2var

B. _var

C. var@1

D. var-1

答:c

(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}

*答:B*

(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

答: D

(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 = 5  
if x > 3:  
    print("A")  
elif x > 4:  
    print("B")  
else:  
    print("C")  

A. A

B. B

C. C

D. 无输出

答: A

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

A = 10  
if A > 5:  
    print("Big")  
elif A < 5:  
    print("Small")  
else  
    print("Medium")  

A. 无错误

B. 缩进错误

C. else 后缺少冒号

D. elif 条件错误

答:C

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

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

A. True

B. False

C. 语法错误

D. 无输出

答:B

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

A = 10  
B = 20  
if A > 5 and B < 15:  
    print("条件1")  
elif A > 8 or B > 18:  
    print("条件2")  
else:  
    print("条件3")  

A. 条件 1

B. 条件 2

C. 条件 3

D. 无输出

答:B

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

A = 5  
B = 10  
if A > 3 or B / 0 > 0:  
    print("A")  
else:  
    print("B")  

A. A

B. B

C. 语法错误

D. 运行时错误

答: A

4.问答题

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

答:Python 的动态类型特性指:变量的类型无需预先声明,且可在运行中动态改变(变量本身不绑定类型,仅指向不同类型的对象)

例如:

a=1 #变量的初始化为整数

print(type(a))

a="Hello" #在此无需声明,直接将”Hello“字符串赋值给a

print(type(a))

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

**答: 将字符串 "123" 转换为整数可使用int()函数,例如:num = int(”123“).

如果字符串为 "12a3" 会报错例如:

Traceback (most recent call last): File "D:\Python\hahaha.py", line 1, in <module> num = int("123ah") ^^^^^^^^^^^^ ValueError: invalid literal for int() with base 10: '123ah'

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

答: 动态类型(Python)

优点:开发快(无需声明类型)、代码简洁灵活。

缺点:类型错误晚发现(运行时暴露)、大型项目维护难。

静态类型(Java)

优点:类型错误早发现(编译期)、大型项目易维护、性能略优。

缺点:代码冗长(需显式声明类型)、开发效率较低。

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

答:input()也是Python内置函数,作用是暂停程序的运行,等待用户输入一行数据,然后将用户输入的内容以字符串的形式返回。

eval函数是内置函数,表示执行eval()中传入的代码字符串

两者的 区别:input() 获取用户从控制台输入的字符串;eval() 计算并返回字符串中 Python 表达式的值。

input于eval的应用场景:

  • input():用于获取用户输入,如登录时获取用户名、密码,格式验证需额外代码。示例:username = input("请输入用户名:")

  • eval():适合计算已知、安全的表达式,如处理简单数学公式。示例:result = eval("3 + 5 * 2")

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

答:

==:比较对象的值是否相等(内容相同即可)

is:比较对象是否指向同一内存地址(必须是同一个对象)

结果不同的情况例如:

a=[1,2,3]

b=[1,2,3]

print(a==b)

print(a is b)

输出的结果为:

True False

出现不同的原因是因为只要两个对象值相同但地址内存不同,==和is的结果就会有所不同。

(6)逻辑运算符 and、or、not 的运算规则是什么?请分别举例说明。

答: and:意思是逻辑于,例如x and y,意思是说当x和y都为True是返回True,否则返回False。

or:意思是逻辑或,例如x or y,意思是说当x或y中有一个为True是返回True,仅当两个都为False是返回False。

not:意思是逻辑非,例如not x,意思是说如果x为True,则返回False;如果x为False,则返回True。

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

答:当使用 input() 函数获取用户输入的数字时在input()前加一个int可以将其转化为整形类型。例如:x=int(input())意思是当用户输入一个数字是,计算机会将其转化为整数然后赋值给x。如果用户输入的不是一个数字的话,会报错。例如:

哈哈 Traceback (most recent call last): File "D:\Python\hahaha.py", line 11, in <module> x=int(input()) ^^^^^^^^^^^^ ValueError: invalid literal for int() with base 10: '哈哈'

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

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

答:输出:x大于3 x大于4

原因:因为x=5,进入第一个if中进行判断得到x>3,所以执行输出语句print。而后进入第二个if中进行判断,得到x>4,又执行print。到第三个if,由于x=5,所以不执行输出语句print。

(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、b、c分别表示三条边,A、B、C分别表示三边对应的角

输入输出描述

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

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

示例

输入:

1 1 6.5 1 6.5 2.5

输出:

15.26

90.00

74.74

答:

import math
x1, x2, x3,y1, y2, y3=map(float,input().split())
a=((x1-x2) ** 2 + (y1-y2) ** 2) ** 0.5
b =((x1-x3) ** 2 + (y1-y3) ** 2) ** 0.5
c =((x2-x3) ** 2 + (y2-y3) ** 2) ** 0.5
​
A =math.degrees( math.acos((a*a-b*b-c*c) / (-2*b*c)))
B =math.degrees( math.acos((b*b-a*a-c*c) / (-2*b*c)))
C =math.degrees(math. acos((c*c-b*b-a*a) / (-2*a*b)))
​
print(f"{A:.2f}")
print(f"{B:.2f}")
print(f"{C:.2f}")

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

题目描述

如有一个2×2的线程方程组:

$$
ax+by=e \\ cx+dy=f
$$

你可以使用克莱姆法则解该线性方程:

$$
x=\frac{ed-bf}{ad-bc},y=\frac{af-ec}{ad-bc}
$$

其中 $ad-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

输出:

无解

答:

#import math
a, b, c, d, e, f =map(float,input().split())
i = a*d- b*c
​
if i==0:
    print("无解") 
else:
    x = (e * d - b * f) / i
    y = (a * f - e * c) / i
    e = a * x + b * y
    f = c * x + d * y
    print(f"{x:.1f}")
    print(f"{y:.1f}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值