python第一次作业

1.技术面试题

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

**答:1.TCP是面向连接的协议,而UDP是元连接的协议
2.TCP协议传输是可靠的,而UDP协议的传输是“尽力而为
3.TCP是可以实现流控,而UDP不行
4.TCP可以实现分段,而UDP不行
5.TCP的传输速率较慢,占用资源较大,UDP传输速率快,占用资源小。TCP/UDP的应用场景不同
TCP适合可靠性高的效率要求低的,UDP可靠性低,效率高。

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

**答:**DHCP是同台传输协议,为网络中的设备自动分配临时的IP地址。同时提供子网掩码,网管等参数,提高管理效率。
DNS域名系统,将用户的域名转化为对应的IP地址,让用户无需记忆复杂的数字地址也可以访问网站。

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

答: /boot 存放系统启动核心文件
/var 存储频繁变化的系统数据
/user 存放用户应用程序与只读数据

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

**答:**1.检查网关配置–ip route show default | grep via ,然后通过ping命令测试
2.DNS解析失败–检查DNS服务器的可达性用Ping命令114.114.114.114或者8.8.8.8
3.防火请拦截–临时关闭防火sudo systemctl stop firewalld sudo systemctl stop ufw
4.网络配置错误如DHCO租期到期,查看租期journalctl -u NetworkManager | grep “DHCP”
5.内核路由或协议过滤​,检查ip转发功能sysctl net.ipv4.ip_forward

2.HR面试题

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

答: 避免对方不擅长的地方,如果出现不可避免的状况出现不熟悉或者是失误时尽量私下里进行建议,也可以主动讲清楚部分状况,同时在公开场合认同对方的看法。

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

答: 我确实在简历上的经历有所欠缺,但是简历只能代表我一部分的能力,如果我能成功进入试用期,相信试用期的时间里能体现我应有的价值

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

答: 之前聊过几家类似的公司,我主要关注与我所擅长的领域的公司,目前多是贵公司这样的企业,事实上,贵公司是我目前了解最深入的公司,我认为我与贵公司更加适合,也推掉了其他厂的offer

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

**答:**如果发现合规风险,我会立即用沙盒环境复现风险点,向直属领导提交带可以落地的的风险提示,如果未获响应按公司规定留存邮件记录, 对可能造成重大社会危害的行为上监管机构报备

3.选择题

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

A. 2var

B. _var

C. var@1

D. var-1

**答:**A. 2var​​:不能以数字开头
​​B. _var​​:以下划线开头,后跟字母,符合规则
C. var@1​​:不能包含特殊字符 @
var-1​​:不能包含特殊字符 -
选B

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

B. 3

C. 2

D. TypeError

答: A. True:错误,结果不是布尔值
B. 3:正确,计算结果为整数 3
C. 2:错误,未体现 True 的整数值 1
D. TypeError:错误,操作合法,不会引发类型错误
选B

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

A."1" + "2"

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

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

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

**答:**D集合不合法报错
选D

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

A. str(5)

B. int("5")

C. float("5")

D. bool("5")

答: A. str(5)将整数 5 转换为字符串 “5”
B int(“5”)将字符串 “5” 转换为整数 5
Cfloat(“5”)将字符串 “5” 转换为浮点数 5.0
Dbool(“5”)将字符串 “5” 转换为布尔值 True
选B

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

A .Hello World

B. Hello-World

C. Hello-World!

D. Hello World!

答:
A. Hello World -> 没有使用分隔符’-‘,且没有结束符’!‘,错误。
B. Hello-World -> 使用了分隔符,但缺少结束符’!',错误。
C. Hello-World! -> 正确
. Hello World! -> 分隔符错误
选C

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

A. ==

B. !=

C. is

D. in

答: ​​is​​ 运算符是最直接判断两个对象是否指向相同内存地址的方式
选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. 语法错误

答: A

(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 = “hello”

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

答: 使用int()函数可以将数字字符串转换为整数,如int(“123”)得到整数123。如果字符串包含非数字字符(如"12a3"),则int(“12a3”)会抛出ValueError异常。

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

答: 动态类型​​:
优点:灵活,代码简洁,开发速度快。
缺点:运行效率相对较低,类型错误可能在运行时才会被发现。
静态类型​​:
优点:在编译时进行类型检查,提前发现错误,运行效率高。
缺点:需要显式声明类型,代码冗长,开发速度较慢。

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

**答:**input():用于从标准输入读取一行文本,返回字符串。例如,name = input("Enter your name: "),用户输入被当作字符串处理
eval():将字符串作为Python表达式求值并返回结果。例如,x = eval(“3+5”)得到8。
区别:input()直接返回字符串,而eval()会对字符串进行求值。注意:eval()有安全风险,因为它可以执行任意代码

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

答:==:比较两个对象的值是否相等
is:比较两个对象是否是同一个对象

list1 = [1,2,3]
list2 = [1,2,3]
list3 = list1
print(list1 == list2)
print(list1 is list2)
print(list1 is list3)

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

**答:**and:当两个操作数都为真时返回真,否则返回假。若第一个操作数为假,则直接返回第一个操作数,否则返回第二个操作数 例如:5 > 3 and 10 < 20 → True
or:当任一操作数为真时返回真,否则返回假。若第一个操作数为真,则返回第一个操作数(短路),否则返回第二个操作数。例如:0 == 1 or 10 > 5 → True
not:对操作数取反。例如:not True返回False

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

**答:**通过int()函数转换,如num = int(input("Enter a number: "))
如果非数字直接转换会异常报错

(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
原因:每个if语句是独立的,都会进行判断。第一个条件x>3为真,打印第一行;第二个x>4为真,打印第二行;第三个x>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
p,q,r,s,t,u=map(float,input().split())
a=math.sqrt((t-r)**2+(u-s)**2)
b=math.sqrt((t-p)**2+(u-q)**2)
c=math.sqrt((r-p)**2+(s-q)**2)
d=math.acos((a**2-b**2-c**2)/(-2*b*c))
e=math.acos((b**2-a**2-c**2)/(-2*a*c))
f=math.acos((c**2-a**2-b**2)/(-2*a*b))
A=round(math.degrees(d),2)
B=round(math.degrees(e),2)
C=round(math.degrees(f),2)
print(A)
print(B)
print(C)

(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())
D = a * d - b * c
if D == 0:
    print("无解")
else:
    x = (e * d - b * f) / D
    y = (a * f - e * c) / D
    print(f"{x:.1f}")
    print(f"{y:.1f}")

你可能感兴趣的:(python第一次作业)