Python
让领导感受到我的出发点是推进工作,而非否定他的决策。来讲TCP是首部固定 20 字节(含序列号、确认号),UDP则首部仅是8 字节(含源端口、目的端口、长度、校验),正因如此TCP开销较大,传输效率较低;来讲TCP面向连接时(需建立三次握手(此时建立连接,确保双方都能接收数据),断开四次挥手(此时交流完成后断开连接,释放资源)而 UDP则无需连接(直接发送数据)首先我认为能力不单单指的是工作上的成
# 1.技术面试题
(1)TCP与UDP的区别是什么?
答:
1.首先我们要知道这两者分别是什么,TCP指(传输控制协议); UDP指(用户数据报协议)它们两者都是传输层协议但两者存在一些不同
2.从连接性上来讲TCP面向连接时(需建立三次握手(此时建立连接,确保双方都能接收数据),断开四次挥手(此时交流完成后断开连接,释放资源)而 UDP则无需连接(直接发送数据)
3.从传输上来讲TCP的传输更可靠,能保证数据确实传输,有比如发包确认,重传等方式保障,而UDP则不能保证数据送达,无重传机制
PS: 就好比TCP是打电话,需要有人接听和挂断;而UDP则是发信息,只保证你传输出去了内容,而如果断网导致信息没有发出去它也不会自己去帮你发一次,也不会看对面接收了没有
4.从效率上来讲TCP是首部固定 20 字节(含序列号、确认号),UDP则首部仅是8 字节(含源端口、目的端口、长度、校验),正因如此TCP开销较大,传输效率较低;而UDP则无连接管理开销,传输效率高
PS:TCP看作被精密加急的vvip包裹,需要重重关卡才能收到,但存在货没必赔,同时也因为“贵重”送的很慢
but,UDP则类似“飞鸽传书”,它可以马上到但如果半路掉了的话就真的是掉了(因为鸽子不会帮你保管信件),且没有售后服务
(2)DHCP和DNS的作用是什么?
答:
1.首先要知道DHCP指(动态主机配置协议)和 DNS指的是(域名系统)
2.DHCP 的核心作用是自动为网络中的设备分配 IP 地址及其他网络配置参数,简化网络管理,避免手动配置的繁琐和错误。
而DNS 的核心作用是将易记的域名(如www.xiaohsuai.com)解析为计算机可识别的 IP 地址(如 180.252.48.242),解决 “IP 地址难记” 的问题,是互联网正常运转的基础。
3.自动分配 IP 地址,分配其他网络参数,IP 地址租期管理
(3)简述 Linux 文件系统的目录结构,其中/boot、/var、/usr目录的作用分别是什么?
答:
1.首先知道Linux 文件系统的目录结构:
/:根目录,所有文件和目录的起点。/bin:存放系统必备的用户命令(如ls、cp)。/sbin:存放系统管理命令(如ifconfig、shutdown)。/etc:存放系统和应用的配置文件(如passwd、nginx.conf)。/dev:设备文件目录(如硬盘/dev/sda、终端/dev/tty)。/home:普通用户的主目录(如/home/user1)。/root:超级用户(root)的主目录。/tmp:临时文件目录,系统重启后清空。/proc:虚拟文件系统,存储系统运行时信息(如进程、内存)。/sys:虚拟文件系统,存储内核和设备信息。
2. /boot:作用:存放系统启动所需的核心文件(
- 内核文件(如
vmlinuz):Linux 内核的二进制文件。 - 初始化 RAM 磁盘(如
initrd.img):启动时临时根文件系统,包含必要的驱动。 - 引导加载程序配置(如
grub/grub.cfg):GRUB 引导菜单和配置。
)
3. /var: 作用:存放动态变化的数据,尤其适用于写入频繁的文件(
- 日志文件(
/var/log):系统和应用的日志(如syslog、nginx/access.log)。 - 邮件队列(
/var/spool/mail):待发送的邮件。 - 缓存文件(
/var/cache):应用缓存(如yum下载的包)。 - 锁文件(
/var/lock):标记资源正在使用。 - 临时文件(
/var/tmp):长期临时文件(重启不清空)。
)
4./usr: 作用:存放用户程序和只读数据,类似 Windows 的 Program Files(
- 应用程序(
/usr/bin、/usr/sbin):非必要的用户命令(如git、java)。 - 库文件(
/usr/lib、/usr/lib64):应用依赖的共享库。 - 文档(
/usr/share/doc):程序文档和手册。 - 源代码(
/usr/src):内核或应用的源码。
)
PS: /boot 通常独立分区,确保在系统崩溃时仍可访问启动文件
/usr 通常为只读,多用户共享,可挂载
/var 通常独立分区,避免写入操作影响其他目录
(4)Linux系统突然无法访问外网,但内网通信正常。请列出至少 5 个可能的故障点及排查步骤。
答:
1.网关出现配置错误
解决:一查二验证(看下ping不ping得通就知道了)三修复(从新调整修复网关)四配置(配置好后确保下一次使用不会出现问题)
2.DNS 服务器配置检查(也就是DNS服务器地址整错了)
解决:一查(查就是查DNS的配置)二验证(pingping就知道可不可达)三修改(改DNS)四域名解析(测试域名解析)
3.防火墙(不关它就阻止你外网访问)
解决:关闭防火墙(PS:实在关不掉也要开放对应端口可供接入,但给它关了效果最佳)
4.路由表(黑洞路由,网关冲突就会导致其故障)
解决:删除异常路由,找“黑洞”
5.外网连不上
解决:测试公网IP连通性以及看看特殊端口能不能用
2.HR面试题
(1)假如你成功入职,却发现直属领导能力远不如你,你会如何与他共事?
答:
首先我认为能力不单单指的是工作上的成绩,首先先放下 “能力对比” 的预设,客观观察领导的优势,学习领导在其他方面的能力,避免片面思考产生误解。
其次以 “补位” 而非 “替代” 的心态发挥自身优势,做好细节。让领导感受到我的出发点是推进工作,而非否定他的决策。同时,主动承担更具体的专业任务,用结果证明价值,让他放心将专业环节交给我,形成 “他把控方向、我落地细节” 的互补模式。
(2)你简历上的经历并不突出,我们为什么要选你?
答:
第一,扎实的基础能力与岗位需求高度契合
第二,极强的学习能力和抗压性,能快速弥补经验差距
第三,对行业和贵司的认同度,能带来更稳定的投入
(3)你还面试了哪些公司?
答:
聚焦行业相关性
突出岗位匹配度
表达对当前公司的优先级(忠心)
(4)如果你发现公司某项业务存在合规风险,但领导暗示‘别多管闲事’,你会怎么做?
答:
1.避免仅凭直觉判断,而是花时间做扎实的核实
2.选择私下场合(如办公室一对一沟通),以 “请教 + 担责” 的姿态沟通(非挑战领导的决策)
3.重在保护公司和团队的长远利益
3.选择题
(1)以下哪个是合法的 Python 变量名?
A. `2var`(数字开头)
B. `_var`
C. `var@1`
D. `var-1`
答:B(PS:变量名规则:1.只能包含字母数字下划线2.数字不开头3.变量不涉及Python中关键字)
(2)表达式 `True + 2` 的结果是?
A.`True`
B. `3`
C. `2`
D. `TypeError`
答:B(PS:)
(3)以下哪个表达式会引发错误?
A.`"1" + "2"`
B. `[1, 2] + [3, 4]`
C. `(1, 2) + (3, 4)`
D. `{1, 2} + {3, 4}`
答:D(PS:不支持整数类型和布尔类型)
(4)以下哪个是将字符串转换为整数的正确方法?
A. `str(5)`
B. `int("5")`
C. `float("5")`
D. `bool("5")`
答:B(PS:int函数就是可以将字符串,浮点数转换为整数类型“”中输入的是有效数字且符合整数要求)
(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)以下代码的输出结果是?
```python
x = 5
if x > 3:
print("A")
elif x > 4:
print("B")
else:
print("C")
```
A. A
B. B
C. C
D. 无输出
答:A
(9)以下代码是否存在错误?
```python
A = 10
if A > 5:
print("Big")
elif A < 5:
print("Small")
else
print("Medium")
```
A. 无错误
B. 缩进错误
C. `else` 后缺少冒号
D. `elif` 条件错误
答:C(PS:else语句后必须加冒号)
**(10)以下代码的输出结果是?
```python
x = 0
if x:
print("True")
else:
print("False")
```
A. True
B. False
C. 语法错误
D. 无输出
答:B
(11)以下代码的输出结果是?
```python
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)以下代码的输出结果是?
```python
A = 5
B = 10
if A > 3 or B / 0 > 0:
print("A")
else:
print("B")
```
A. A
B. B
C. 语法错误
D. 运行时错误
答:D
# 4.问答题
(1)什么是 Python 的动态类型特性?举例说明。
答: Python 的动态类型是指没有规定定义变量类型时,解释器会自己对变量进行确定,并赋予不同类型值:
例如:当x=5时,此时的x代表整数;
当x=“小帅” 时,此时的x代表的又是字符串;
当x=[xiao,shuai]时,此时x代表的则是列表
(2)如何将字符串 "123" 转换为整数?如果字符串为 "12a3" 会发生什么?
答:1)如何将字符串 "123" 转换为整数?:
num = int("123")
print(num) # 输出 123
print(type(num)) # 输出 <class 'int'>
2)如果字符串为 "12a3" 会发生什么?:
若为12a3会因出现字母a导致出现:“ ValueError: invalid literal for int() with base 10: '12a3' ”导致出错。
(3)比较 Python 中的动态类型与静态类型语言(如 Java)的优缺点。
答:动态:
优点:
代码简洁灵活:声明类型少,代码少
开发效率高:无需预先设计类型系统
适合数据处理
缺点:
运行时类型错误:类型问题运行时才暴露
代码可读性降低:缺乏类型声明
静态:
优点:
编译时类型检查:提前发现错误
代码更可靠:类型明确
性能优化:执行效率高。
IDE 支持更好:类型提示更准确。
缺点:
代码冗长:需要声明类型
灵活性较低:修改类型应该多处代码调整。
性能较低
(4)简述 input() 函数和 eval() 函数的区别,并举例说明它们的应用场景。
答:
input() 函数由输入读取用户输入内容并转成字符串,用于用户文本输入
eval() 函数则将字符串作为 Python 表达式进行求值并得出答案,用于动态代码执行
(5)比较 == 运算符和 is 运算符的区别,并举例说明在什么情况下结果会不同。
答:
== 运算符:比较两个对象的值是否相等
is 运算符:比较两个对象是否为同一个内存地址
不同:对象不同但赋值相同时
(6)逻辑运算符 and、or、not 的运算规则是什么?请分别举例说明。
答:
and:两边表达式都为 True时返回 True,否则返回 False。
or: 两边表达式至少一个为 True 时返回 True,否则返回 False。
not: 对单个表达式取反,True 变 False,False 变 True。
(7)当使用 input() 函数获取用户输入的数字时,如何将其转换为整数类型?如果用户输入的不是数字,会发生什么?
答:
1.如何将输入转换为整数:
input() 函数返回的是字符串类型,即使输入的是数字。若要将其转换为整数,需使用 int() 函数
2.若输入非数字会发生什么:
如果输入的内容无法被解析为整数(如字母、小数等),int() 会抛出 ValueError 异常
(8)阅读以下代码,解释输出结果并说明原因。
```python
x = 5
if x > 3:
print("X 大于3")
if x > 4:
print("X 大于4")
if x > 5:
print("X 大于5")
```
答:
输出结果:x大于3
x大于4
原因:第一二个if语句都为ture,但是第三个不满足5大于5所以为False,则不会执行print
( PS:if语句是独立的,前一个满足后面的也会被检查(在此区分 if-elif-else结构语句))
(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
**答:**```python
import math
x1,y1,x2,y2,x3,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
cos=math.cos
A=a*cos((a*a-b*b-c*c)/(-2*b*c))
B=a*cos((b*b-a*a-c*c)/(-2*a*c))
C=a*cos((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
>
> 输出:
>
> 无解
答:
```python
a, b, c, d, e, f = map(float, input().split(" “))
q=(ad-bc)
x=(ed-bf)/q
y=(af-ec)/q
if q==0:
print(“无解”)
else:
print(f”{x:.1f}“)
print(f”{y:.1f}")
```
更多推荐



所有评论(0)