phthon3

1.技术面试题

(1)解释Linux中的进程、线程和守护进程的概念,以及如何管理它们?

答:进程:进程是程序在操作系统中的一次执行实例,是系统进行资源分配和调度的基本单位。
线程:线程是进程的一个执行流,是程序执行的最小单位。
守护进程:守护进程是一种在后台运行的特殊进程,它脱离于终端并且在系统启动时自动启动,一直运行直到系统关闭。
管理:使用ps命令,查看进程。使用kill命令结束进程。

(2)请详细描述OSI七层模型和TCP/IP四层模型,并说明它们之间的对应关系。每一层的主要功能是什么?各层有哪些典型的协议?

答:①OSI:
物理层:在物理介质上传输原始的比特流,定义了物理设备的接口标准、传输介质特性、信号的电平及编码。RJ - 45 协议。
数据链路层:将物理层传来的比特流组装成数据帧,进行差错检测和纠正。以太网协议,HDLC协议。
网络层:为数据包选择合适的路径,通过路由算法决定数据从源端到目的端的传输路径,实现不同网络之间的互联。IP,ICMP协议。
传输层:为应用进程提供端到端的通信服务,实现可靠或不可靠的数据传输。TCP,UDP协议。
会话层:建立、管理和终止应用程序之间的会话连接,如会话的建立和会话的拆除等。
表示层:对数据进行格式转换(如 ASCII 码与 EBCDIC 码之间的转换)、加密解密和压缩解压缩使不同系统之间能够理解和处理数据。JPEG协议
应用层:为用户提供直接访问网络的应用程序接口,是用户与网络交互的界面,实现各种网络应用功能,如文件传输、电子邮件、远程登录等。HTTP,FTP,协议。
②TCP/IP:
网络接口层:负责将 IP 数据报封装成适合在物理网络上传输的帧格式,以及从物理网络接收帧并解封装成 IP 数据报,它涵盖了 OSI 模型中物理层和数据链路层的功能。以太网协议。
网络层:-与 OSI 网络层功能基本相同,负责处理网络间的通信,通过 IP 协议对数据包进行寻址和路由选择,实现不同网络之间的互联互通。 IP,ICMP协议。
传输层:同 OSI 传输层,为应用程序提供端到端的通信服务,实现数据传输,进行流量控制和拥塞控制。TCP,UDP协议。
应用层包含了 OSI 模型中应用层、会话层和表示层的功能,为用户提供各种网络应用服务,实现应用程序之间的通信。HTTP,FTP协议。
③对应:物理层和数据链路层,会话层,表示层和应用层。

(3)详细介绍什么是最大堆/最小堆。

答:最大堆是一种完全二叉树,它满足堆的性质:对于树中每个节点,其左右子节点的值都小于等于 x 。也就是说,在最大堆中,根节点的值是整棵树中最大的。
最小堆是一种完全二叉树,与最大堆相反,它满足对于树中每个节点,其左右子节点的值都大于等于 y 。

(4)详细介绍什么是二分搜索树。

答:二分搜索树是一种二叉树,即每个节点最多有两个子节点,分别为左子节点和右子节点。

2.HR面试题

(1)我们非常欣赏你的能力,但目前只能提供比你期望薪资低20%的offer。在这种情况下,你会接受这份工作吗?如果接受,你对未来薪资增长有什么期望?如果不接受,你的底线是什么?

答:我愿意接受这份工作。虽然目前薪资比我期望的低20%,但我更看重贵公司提供的发展平台和成长机会。我期望在入职后,通过出色完成工作任务,展现自己的能力,为公司创造价值,届时能有一次薪资调整机会。我希望每年能有不低于10%的薪资增长,以匹配我的工作贡献和市场行情。

(2)我们公司经常需要加班到深夜,有时甚至需要周末工作。你如何看待这种工作强度?你认为工作与生活的理想平衡点在哪里?

答:我理解公司在业务繁忙时期可能会面临这样高强度的工作需求,这其实也为个人成长提供了更多机会。我认为工作与生活理想的平衡点在于合理规划和高效执行。在工作时,我会运用科学的工作方法,提升工作效率。在生活中,从事自己喜欢的兴趣爱好,以此缓解工作压力,保持积极的生活状态。这样良好的生活状态又能为工作注入新的活力,形成良性循环,使我更好地应对工作中的挑战 。

(3)你认为自己最大的优势是什么?这个优势如何帮助你胜任我们这个岗位?

答:我认为自己最大的优势是具有较强的逻辑思维能力。在以往的学习和项目实践中,我能够快速理清复杂的业务逻辑和程序流程。比如在处理一个大型软件项目时,面对繁琐的功能需求和数据交互,我能通过绘制逻辑流程图等方式,迅速梳理出清晰的思路,准确地定位问题和提出解决方案。

(4)你认为这份工作能为你带来什么?你能为公司创造什么价值?

答:我认为这份工作能为我带来多方面的收获。首先是职业发展,我可以在这个平台上接触到先进的技术和理念,不断提升自己的专业技能,拓宽职业发展道路。我能为公司做的,为公司提升业绩,降低成本。提升团队的整体实力。

3.问答题

(1)以下代码运行结果是?并阐述函数func的主要功能是什么?

def func(lst):
    result = []
    for i in range(len(lst)):
        if i == len(lst) - 1:
            result.append(lst[i] * 2)
        elif lst[i] < lst[i+1]:
            result.append(lst[i] + 1)
        else:
            result.append(lst[i] - 1)
    return result

print(func([5, 3, 7, 2]))

答:【4,4,6,4】,主要功能是对输入列表进行处理。

(2)以下代码运行结果是?并阐述函数func的主要功能是什么?

def func(lst):
    result = []
    for num in lst:
        if num % 3 == 0:
            result.append(num // 3)
        elif num % 2 == 0:
            result.append(num * 2)
            if num > 10:
                break
        else:
            result.append(num + 1)
    return result

print(func([9, 4, 12, 7, 14]))

答:【3,8,4,8】,对输入列表lst中的每个元素num进行不同操作

(3)以下代码运行结果是?并阐述函数func的主要功能是什么?

def func(nums1, m, nums2, n):
    i = j = k = 0
    temp = nums1.copy()
    while i < m and j < n:
        if temp[i] < nums2[j]:
            nums1[k] = temp[i]
            i += 1
        else:
            nums1[k] = nums2[j]
            j += 1
        k += 1
    while i < m:
        nums1[k] = temp[i]
        i += 1
        k += 1
    return nums1

nums1 = [1, 3, 5, 0, 0]
m = 3
nums2 = [2, 4]
n = 2
print(func(nums1, m, nums2, n))

答:【1,2,3,4,5】,主要功能是将两个有序列表( nums1 的前 m 个有效元素和 nums2 )合并成一个有序列表并存储在 nums1 中返回。

(4)以下代码运行结果是?并阐述函数func的主要功能是什么?

def func(lst):
    total = 0
    for i in range(len(lst)):
        if i % 2 == 0:
            total += lst[i]
        else:
            total -= lst[i]
        if total < 0:
            total = 0
    return total

print(func([5, 3, 2, 7, 1]))

答:1,主要功能是对传入列表中索引为偶数的元素进行累加,对索引为奇数的元素进行累减。

(5)以下代码运行结果是?并阐述函数func的主要功能是什么?

def func(lst):
    evens = []
    odds = []
    for num in lst:
        if num % 2 == 0:
            evens.append(num)
        else:
            odds.append(num)
    evens.sort()
    odds.sort(reverse=True)
    return evens + odds

print(func([3, 1, 4, 1, 5, 9, 2, 6, 5]))

答:【2,4,6,9,5,5,3,1,1,】,主要功能是将输入列表中的偶数和奇数分离,分别对偶数列表升序排序、奇数列表降序排序,再将两个排序后的列表拼接并返回。

(6)以下代码运行结果是?并阐述函数func的主要功能是什么?

def func(lst):
    result = []
    for i in range(len(lst)):
        current = lst.pop(0)
        if current % 2 == 0:
            lst.append(current * 2)
        else:
            result.append(current)
    return result + lst

data = [1, 2, 3, 4, 5]
print(func(data))

答:【1,3,5,4,8】,主要功能是遍历输入列表,将列表中的奇数提取出来存储到一个新列表 result 中,同时将列表中的偶数乘以2后保留在原列表,最后将存储奇数的列表和处理后的原列表合并返回。

(7)以下代码运行结果是?并阐述函数func的主要功能是什么?

def func(lst):
    result = []
    for i in range(len(lst)):
        for j in range(i+1, len(lst)):
            if lst[i] + lst[j] == 10:
                result.append((lst[i], lst[j]))
                break
    return result

print(func([5, 3, 7, 2, 8]))

答:[(3,7)],主要功能是在给定的列表 lst 中,查找所有两两元素之和为 10 的元素对,并以元组的形式将这些元素对存储在一个列表中返回。

(8)编写程序,反素数

反素数是指一个将其逆向拼写后也是一个素数的非回文数,例如17和71都是素数但不是回文数,且反转后依旧是素数

输出显示前100个反素数,每行显示10个

答:

# Your Codes 
```#
def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            return False
    return True
count = 0
num = 10
result = []
while count < 100:
    reversed_num = int(str(num)[::-1])
    if num != reversed_num and is_prime(num) and is_prime(reversed_num):
        result.append(num)
        count += 1
    num += 1


for i in range(len(result)):
    if i % 10 == 0 and i != 0:
        print()
    print(result[i], end=' ')



**9)编写程序,梅森素数**

如果一个素数可以写成$2^p-1$的形式,其中p是某个正整数,那么这个素数就称作梅森素数

输出p≤31的所有梅森素数

答:

```python
# Your Codes 

(10)编写程序,数列求和

编写一个函数计算下面的数列:

m(i)=12+23+...+ii+1m(i) = \frac{1}{2} + \frac{2}{3} + ... + \frac{i}{i + 1}m(i)=21+32+...+i+1i

并输出测试结果:

i		m(i)
1		0.500
2		1.16
...		
19		16.40
20		17/35

答:

# Your Codes 
def Sm(i):
    result = 0
    for num in range(1, i + 1):
        result += num / (num + 1)
    return result
print(f"i\tm(i)")
for test_i in range(1, 21):
    value = Sm(test_i)
    if test_i == 1:
        print(f"{test_i}\t{value:.3f}")
    elif test_i == 2:
        print(f"{test_i}\t{value:.2f}")
    elif test_i == 20:
        print(f"{test_i}\t{value}")
    else:
        print(f"{test_i}\t{value:.2f}")```



**11)编写程序,组合问题**1234这个四个数字,能组成多少个互不相同且无重复数字的三位数?分别又是多少?

答:

```python
# Your Codes 

(12)编写程序,计算e

你可以使用下面的数列近似计算e
e=1+11!+12!+13!+14!+...+1i! e=1+\frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!}+\frac{1}{4!}+...+\frac{1}{i!} e=1+1!1+2!1+3!1+4!1+...+i!1
当i越大时,计算结果越近似于e

答:

# Your Codes 

(13)编写程序,完全数

如果一个正整数等于除了它本身之外所有正因子的和,那么这个数称为完全数

例如 6 = 3 + 2 + 1,28 = 14 + 7 + 4 + 2 + 1

输入输出描述

输入一个正整数

输出该数是否为完全数

示例1

输入:

6

输出:

Yes

示例2

输入:

9

输出:

No

答:

# Your Codes 
### Python 示例代码与实际应用案例 以下是关于 Python 的一些具体示例代码及其在不同领域中的实际应用: #### 图像识别 Python 在图像识别方面的应用非常广泛,通常会借助深度学习框架 TensorFlow 和 Keras。下面是一个简单的例子,展示了如何加载预训练模型并对图片进行分类。 ```python from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input, decode_predictions from tensorflow.keras.preprocessing import image import numpy as np model = ResNet50(weights=&#39;imagenet&#39;) # 加载预训练模型 img_path = &#39;example.jpg&#39; # 替换为你的图片路径 img = image.load_img(img_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) preds = model.predict(x) # 预测结果 print(&#39;Predicted:&#39;, decode_predictions(preds, top=3)[0]) # 输出前三个预测类别 ``` 这段代码利用了 ResNet50 模型来实现图像分类功能[^1]。 --- #### 自然语言处理 (NLP) Python 是 NLP 中最常用的工具之一,可以轻松完成文本分析、情感检测等任务。以下是一段基于 NLTK 库的情感分析代码。 ```python import nltk from nltk.sentiment.vader import SentimentIntensityAnalyzer nltk.download(&#39;vader_lexicon&#39;) analyzer = SentimentIntensityAnalyzer() text = "I love this product! It&#39;s amazing." # 输入待分析的文本 scores = analyzer.polarity_scores(text) for key in scores: print(f"{key}: {scores[key]}") ``` 该脚本能够计算一段文字的情绪得分,帮助开发者快速评估正面或负面情绪的程度。 --- #### 推荐系统 推荐系统的构建可以通过协同过滤算法或者矩阵分解方法实现。这里提供了一个基础版本的用户-物品评分表,并使用 Pandas 进行简单运算。 ```python import pandas as pd from sklearn.metrics.pairwise import cosine_similarity data = { &#39;User&#39;: [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;], &#39;Item_1&#39;: [5, 3, None], &#39;Item_2&#39;: [None, 4, 2], &#39;Item_3&#39;: [1, None, 5] } df = pd.DataFrame(data).set_index(&#39;User&#39;) # 计算相似度矩阵 similarity_matrix = pd.DataFrame(cosine_similarity(df.fillna(0)), index=df.index, columns=df.index) print(similarity_matrix) ``` 上述代码片段实现了两个用户的余弦相似度计算,这是建立个性化推荐的基础步骤。 --- #### 并行执行外部命令 当需要让某些操作独立于主线程运行时,`subprocess` 模块提供了强大的支持。然而需要注意的是,在特定情况下可能无法及时获取子进程的结果。 ```python import subprocess result = subprocess.run([&#39;ls&#39;, &#39;-l&#39;], capture_output=True, text=True) if result.returncode == 0: print(result.stdout.strip()) else: print("Error:", result.stderr.strip()) ``` 尽管如此,仍需谨慎设计逻辑以防主程序提前结束而丢失重要数据[^2]。 --- #### 字典合并新特性 自 Python 3.9 起新增加的支持使得字典间的组合变得更加简洁明了。 ```python dict_a = {&#39;a&#39;: 1, &#39;b&#39;: 2} dict_b = {&#39;c&#39;: 3, &#39;d&#39;: 4} merged_dict = dict_a | dict_b # 合并两个字典 print(merged_dict) # 输出: {&#39;a&#39;: 1, &#39;b&#39;: 2, &#39;c&#39;: 3, &#39;d&#39;: 4} ``` 这种语法不仅提高了可读性还减少了冗长的操作过程[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值