python第一次作业

1.技术面试题

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

答: TCP面向连接,速度慢,可靠传输,20字节头;UDP:无连接,速度快,不可靠传输,8字节头

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

答: DHCP名为动态主机配置协议,给客户端设备自动分配IP地址、子网掩码、默认网关和DNS服务器等网络配置信息;DNS名为域名解析协议,将人类可读的域名(如:百度)转换为机器可识别的IP地址(如:157.148.69.151)

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

答: Linux 文件系统采用层级目录结构,主要目录及其核心作用有:
/:根目录,所有其他目录的父目录。
/bin:存放系统基本命令二进制文件(如 ls, cp)。
/etc:系统配置文件存放位置。
/home:普通用户的家目录。
/lib:系统库文件(如动态链接库)。
/dev:设备文件(如硬盘、键盘)。
/proc:虚拟文件系统,反映内核和进程信息。
/tmp:临时文件目录。
其中:/boot:存放与系统启动相关的核心文件。
/var:存放频繁变化的可变数据。
/usr:存放用户级应用程序和静态数据。

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

答: 1. DNS解析问题
2. 默认网关配置错误
3. 防火墙规则阻止
4. 代理设置问题
5. 网络接口配置问题

2.HR面试题

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

答: 首先,我认为团队的成功从来不是依靠单个人的能力,而是取决于成员间的互补与协作,而且领导的职位必然有他的优势,比如行业经验、资源整合或跨部门协调能力,这些可能是我尚未看到的,我会先虚心学习他的长处,而作为下属,我的职责是执行团队目标并支持领导决策,而非比较能力高低。我会通过高效完成本职工作,在职责范围内提出建设性建议,最后,如果我对某些工作有更优方案,会私下用数据和案例向领导客观分析,最终尊重他的决策权。毕竟,领导需要全局视角,而我的建议可能只是局部最优解。

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

答: 您说得对,我的简历可能没有特别亮眼的头衔或项目,但比起经验丰富的人,我的优势是更愿意从基础做起,用执行力弥补经验差距,并且能为团队带来新的视角。

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

答: 确实接触过几家公司,但我更看重平台的发展空间和团队专业度。贵公司在某方面的布局和我长期职业规划高度契合,所以这是我优先考虑的机会。

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

答: 风险较小时,我会再次确认风险的具体影响,确保自己理解正确。如果确实存在问题,我会私下向领导提供数据或案例(如行业处罚先例),说明潜在风险,并建议最小成本的调整方案。我相信领导最终会权衡利弊,做出对公司最有利的决定
风险较大时,我会在尊重领导的前提下,通过公司内部合规渠道(如风控部门、合规热线)匿名反馈,确保问题被专业评估。我的原则是:既要对公司负责,也要避免个人或团队陷入风险。
假如风险极高(如违法行为),而沟通无果,我会参考公司职业道德规范或外部监管要求,决定是否向上级或合规部门正式报告。同时,我会保留相关沟通记录,保护自己的职业操守。

3.选择题

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

A. 2var

B. _var

C. var@1

D. var-1

答: D

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

答: A

(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

答: A

(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 是一种动态类型语言,这意味着变量的类型在运行时已经确定。动态类型允许变量在程序运行过程中改变其类型,无需显式声明类型。动态类型特点:变量在赋值时自动绑定类型,类型信息与值关联而非变量名。例如,同一变量名可以在不同时刻指向不同类型的对象。
如:
x = 10 # x 是整数类型
x = “hello” # x 变为字符串类型
x = [1, 2] # x 变为列表类型

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

答: 使用内置的 int() 函数可以直接将字符串转换为整数,如:int(“123”)。前提是字符串必须完全由数字组成,否则会抛出异常。如果字符串包含非数字字符(如“12a3”),直接调用 int() 会引发 ValueError 异常。

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

答: 动态类型语言(如 Python)允许变量在运行时改变类型,无需预先声明类型。这种灵活性使得代码更简洁,适合快速开发和原型设计。
静态类型语言(如 Java)要求变量类型在编译时确定,类型检查在编译阶段完成。这种约束提高了代码的可预测性,但灵活性较低。
Python 适合快速迭代、数据科学、脚本任务。
Java 适合大型系统、高性能应用、企业级开发。

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

答: input() 固定返回字符串。
eval() 根据表达式返回对应类型(如整数、列表等)。
处理逻辑

input() 仅接收原始输入,不解析内容。
eval() 会执行字符串中的代码逻辑,如 eval(“len(‘abc’)”) 返回 3。
安全性

input() 无代码执行风险。
eval() 需谨慎使用,避免直接解析用户输入(如 eval(“import(‘os’).system(‘rm *’)”) 可能导致灾难性后果)。

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

答: == 运算符用于比较两个对象的值是否相等。它会检查对象的内容或数据是否相同,而不关心它们是否指向同一个内存地址。

is 运算符用于比较两个对象的身份标识是否相同。它会检查两个对象是否指向内存中的同一个实例,即是否为同一个对象。

值相同但对象不同
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True(值相同)
print(a is b) # False(不同对象)
(6)逻辑运算符 and、or、not 的运算规则是什么?请分别举例说明。

答: 逻辑与(and)要求两个操作数均为真时结果才为真,否则为假。如:True and True # 返回 True
True and False # 返回 False
False and True # 返回 False
False and False # 返回 False

逻辑或(or)只要有一个操作数为真,结果即为真;仅当两者均为假时才为假。如:True or True # 返回 True
True or False # 返回 True
False or True # 返回 True
False or False # 返回 False

逻辑非(not)对操作数取反,真变假,假变真。如:
not True # 返回 False
not False # 返回 True

优先级从高到低为:not > and > or。也可以用括号来改变
(7)当使用 input() 函数获取用户输入的数字时,如何将其转换为整数类型?如果用户输入的不是数字,会发生什么?

答: input() 返回的内容默认为字符串类型,直接调用 int() 会尝试将其解析为整数。如果字符串包含非数字字符(如字母或符号),会触发 ValueError 异常。

(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 > 3:满足(5 > 3),输出 “X 大于3”。
条件 x > 4:满足(5 > 4),输出 “X 大于4”。
条件 x > 5:不满足(5 不大于 5),无输出。

(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((aabbcc)/(2bc))B=acos((bbaacc)/(2ac))C=acos((ccbbaa)/(2ab))
其中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, y1, x2, y2, x3, y3 = map(float, input("请输入3个坐标点,用空格隔开,如:X1 Y2...:").split(" "))

# 计算边长
a = math.sqrt((x2 - x3)**2 + (y2 - y3)**2)
b = math.sqrt((x1 - x3)**2 + (y1 - y3)**2)
c = math.sqrt((x1 - x2)**2 + (y1 - y2)**2)

# 计算角度
A = math.acos((b**2 + c**2 - a**2) / (2 * b * c)) * 180 / math.pi
B = math.acos((a**2 + c**2 - b**2) / (2 * a * c)) * 180 / math.pi
C = math.acos((a**2 + b**2 - c**2) / (2 * a * b)) * 180 / math.pi


# 输出结果
print(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=f ax+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=adbcedbf,y=adbcafec
其中 ad−bcad-bcadbc 为判别式,如果为零则输出无解

输入输出描述

输入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(" "))

determinant = a * d - b * c

if determinant == 0:
    print("无解")
else:
    x = (e * d - b * f) / determinant
    y = (a * f - e * c) / determinant
    print(f"{x:.1f}")
    print(f"{y:.1f}")

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值