当前位置: 首页 > java >正文

Python 【技术面试题和HR面试题】➕ 循环结构、控制语句及综合应用问答

1.技术面试题

(1)详细描述单调栈的工作原理和应用场景
答:
原理
维护栈内元素单调递增 / 递减,新元素入栈前,弹出破坏单调性的栈顶,保持单调。
应用场景
排队比身高,搭积木找最大的空地
(2)详细描述单调队列的工作原理和应用场景
答:
原理
队列内元素单调 递增 / 递减,新元素入队时,移除队尾破坏单调性的元素;按需(如滑动窗口)移除队首无效元素,动态维护区间极值。
应用场景
滑动窗口最值(如窗口内最大 / 小值)、数据流实时极值计算。

2.HR面试题

(1)如果竞争对手用双倍薪资挖你,你会怎么选择?

答:薪资诱人,但我更看重当下团队的适配度。要是现在工作顺心、有成长,不会为钱盲目跳。当然要是这边长期不重视员工价值,那也得重新考虑,不过目前优先选留下,毕竟钱之外的东西也重要。

(2)我们觉得你今天表现一般,不符合岗位要求,你有什么想说的?

答:谢谢您可以直接告诉我,今天确实可能因为紧张没完全展现好,要是能麻烦您具体说说,那些地方和岗位要求有差距,哪怕这次没机会,这些建议也能帮我下次做得更好。对我来说,搞清楚问题在哪儿,比什么都重要,辛苦您了。

3.选择题

(1)在Python中,以下哪个不是循环控制语句?
A. break B. continue C. pass D. return

答:D(pass 是占位语句,在循环里可起到空语句的作用)

(2)以下代码的输出结果是什么?

for i in range(5):if i == 3:continueprint(i, end=' ')

A. 0 1 2 3 4 B. 0 1 2 4 C. 0 1 2 D. 3

答:B
(3)完成以下代码,使其能够打印出1到100之间所有的偶数:

for i in range(1, 101):if ______:print(i, end=' ')

A. i % 2 == 0 B. i % 2 == 1 C. i / 2 == 0 D. i // 2 == 0

答:A
(4)以下代码有一个错误,导致它无法正确计算1到10的和。请选择正确的修改方案:

sum = 0
i = 1
while i < 10:sum += ii += 1
print(sum)

A. 将i < 10改为i <= 10 B. 将i += 1改为i += 2 C. 将sum += i改为sum = sum + i + 1 D. 将i = 1改为i = 0

答:A

(5)以下代码的输出结果是什么?

for i in range(3):for j in range(2):print(f"({i},{j})", end=' ')

A. (0,0) (0,1) (1,0) (1,1) (2,0) (2,1) B. (0,0) (1,0) (2,0) (0,1) (1,1) (2,1) C. (0,0) (0,1) (0,2) (1,0) (1,1) (1,2) D. (0,0) (1,1) (2,2)

答:A

(6)完成以下代码,使其能够打印出斐波那契数列的前10个数:

a, b = 0, 1
for _ in range(10):print(a, end=' ')______

A. a, b = b, a + b B. a, b = a + b, b C. a, b = b, a D. a, b = a + 1, b + 1

答:A

(7)以下代码的输出结果是什么?

i = 0
while i < 5:i += 1if i == 3:continueprint(i, end=' ')
else:print("Done")

A. 1 2 3 4 5 Done B. 1 2 4 5 Done C. 1 2 4 5 D. 1 2 Done

答:B

(8)以下代码的输出结果是什么?

for i in range(1, 5):for j in range(1, 5):if i * j > 10:breakprint(f"{i}*{j}={i*j}", end=" ")print()

A.

1*1=1 1*2=2 1*3=3 1*4=4 
2*1=2 2*2=4 2*3=6 2*4=8 
3*1=3 3*2=6 3*3=9 3*4=12 
4*1=4 4*2=8 4*3=12 4*4=16 

B.

1*1=1 1*2=2 1*3=3 1*4=4 
2*1=2 2*2=4 2*3=6 2*4=8 
3*1=3 3*2=6 3*3=9 
4*1=4 4*2=8 

C.

1*1=1 1*2=2 1*3=3 1*4=4 
2*1=2 2*2=4 2*3=6 2*4=8 
3*1=3 3*2=6 3*3=9 

D.

1*1=1 1*2=2 1*3=3 1*4=4 
2*1=2 2*2=4 2*3=6 2*4=8 

答:B

(9)以下代码的输出结果是什么?

for i in range(4):for j in range(4):if (i + j) % 2 == 0:print("*", end="")else:print("#", end="")print()

A.

****
####
****
####

B.

*#*#
#*#*
*#*#
#*#*

C.

*#*#
*#*#
*#*#
*#*#

D.

****
****
****
****

答:B

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

count = 0
for i in range(1, 5):for j in range(1, 5):for k in range(1, 5):if i != j and j != k and i != k:count += 1
print(count)

A. 24 B. 36 C. 60 D. 64

答:A

4.问答题

(1)Python中有哪几种基本的循环结构?请简要说明它们的语法和适用场景。
答:for循环和while循环
for循环

  • 语法:for 变量 in 可迭代对象 :循环体 【for i in range(5): print(i)】

  • 适用场景:已知循环次数,或遍历次序元素时用
    while循环

  • 语法:while 条件: 循环体 【while num <10 : num+=1】

  • 适用场景:有明显的循环条件

(2)Python中有哪些循环控制语句?它们各自的作用是什么?请给出示例说明。

答:break循环控制语句和continue循环控制语句
break循环环控制语句
**作用:**用于在循环执行过程中,当满足一定条件时,可以跳出循环(提前结束)

#示例
for i in range(5):if i == 3:breakprint(i)  # 输出 0、1、2 

continue循环控制语句
**作用:**用于在循环结构中,当满足一定条件时可以跳过本次循环,接着下一轮循环。

#示例
for i in range(5):if i == 3:continueprint(i)  # 输出 0、1、2、4

(3)在Python的for循环中,range()函数扮演着重要角色。请详细说明range()函数的语法、参数含义和使用方法,并给出至少3个不同用法的示例。
答:
range()函数的语法、参数含义和使用方法

  • range(a)a 为结束边界,生成 0a- 1 的序列。
  • range(a, b)a 是起始值,b 是结束边界,生成 ab 的序列,步长默认 1
  • range(a, b, c)a 为步长,控制间隔,生成 b 开始、按 c递增(c>0)或递减(c<0)到c - 1 的序列。
# 用法1:一个参数,生成 0-4
for i in range(5):print(i)  
# 用法2:两个参数,生成 2-5
for i in range(2,6):print(i)  
# 用法3:三个参数,生成 1、3、5、7、9(步长2)
for i in range(1,10,2):print(i)  

(4)什么是嵌套循环?请解释嵌套循环的工作原理。
答:嵌套循环就是 “循环里套循环”,外层循环每执行一次,内层循环会完整执行一轮
(5)编写代码,判断两个矩形的关系
题目描述
判断两个矩形之间的关系:包含,重叠,相离
image-20250304171517426
输入输出描述
输入两行,每行四个数据,分别是矩形的中心坐标x、y和矩形的宽、高
输出两者的关系
示例1

输入:

2.5 4 2.5 43

1.5 5 0.5 3

输出:

包含

示例2

输入:

1 2 3 5.5

3 4 4.5 5

输出:

重叠

示例3

输入:

1 2 3 3

40 45 3 2

输出:

相离

答:

x1,y1,w1,h1=map(float,input().split(" "))
x2,y2,w2,h2=map(float,input().split(" "))
distance=((x1-x2)**2+(y1-y2)**2)**0.5
if distance+w2/2<=w1/2 and distance+h2/2<=h1/2 or distance+w1/2<=w2/2 and distance+h1/2<=h2/2:print("包含")
elif distance>w1/2+w2/2:print("相离")
else:print("重叠")

(6)编写代码,打印如下数字图案

                        11	2	11	2	4	2	11 	2	4	8	4	2	11	2	4	8	16	8	4	2	11	2	4	8	16	32	16	8	4	2	1
1	2	4	8	16	32	64	32	16	8	4	2	1

答:

for i in range(1,8):for k in range(7-i):print(" ",end=" ")for j in range(i):print(2**j,end=" ")for j in range(i-2,-1,-1):print(2**j,end=" ")print()

(7)编写代码,打印如下星星图案
菱形高度n,并打印出该高度下的菱形

    ****************
*************************

答:

n = 9
for i in range(1, n + 1):for j in range(abs(i - (n + 1) // 2)):print(" ", end="")stars = n - 2 * abs(i - (n + 1) // 2)for k in range(stars):print("*", end="")print()

(8)编写代码,求最小公倍数
题目描述
输入两个正整数,计算其最小公倍数,例如4和2的最小公倍数是4,3和5的最小公倍数是15
输入输出描述
输入两个正整数
输出最小公倍数
示例1

输入:

3 9

输出:

9
示例2
输入:

4 6

输出:

12

num1,num2=map(int,input().split(" "))
max_num=max(num1,num2)
for i in range(max_num,num1*num2+1):if i % num1==0 and i % num2 ==0:print(i)break
http://www.xdnf.cn/news/15137.html

相关文章:

  • C++编程基础
  • 端口到底是个什么鬼?回答我!
  • pyQt基础4(对话框)
  • softmax回归的从零开始实现
  • php的原生类
  • 《棒球规则介绍》领队和主教练谁说了算·棒球1号位
  • Express实现定时任务
  • PBR渲染
  • 软件开发那些基础事儿:需求、模型与生命周期
  • 大模型在卵巢癌预测及诊疗方案制定中的应用研究
  • 河南专升本2026年练习题、真题和2000题每日一节
  • 分割网络Segformer
  • 【B题解题思路】2025APMCM亚太杯中文赛B题解题思路+可运行代码参考(无偿分享)
  • 设计模式(结构型)-适配器模式
  • c++——浅拷贝和深拷贝、浅赋值和深赋值
  • 基于强化学习的智能推荐系统优化实践
  • c/c++拷贝函数
  • 字节豆包又一个新功能,超级实用,4 种玩法,你肯定用得上!(建议收藏)
  • 力扣_二叉搜索树_python版本
  • 聚焦数据资源建设与应用,浙江省质科院赴景联文科技调研交流
  • 【龙泽科技】新能源汽车维护与动力蓄电池检测仿真教学软件【吉利几何G6】
  • Elasticsearch 滚动(Scroll)用法、使用场景及与扫描(Scan)的区别
  • DIDCTF-蓝帽杯
  • 【经典面经】C++新特性 TCP完整收发数据 TLS1.2 TLS1.3
  • 【C++】全套数据结构算法-线性表讲解(1)
  • Anaconda及Conda介绍及使用
  • 注意力机制十问
  • 简单记录一下Debug的折磨历程
  • 汽车级MCU选型新方向:eVTOL垂桨控制监控芯片的替代选型技术分析
  • 巨人网络持续加强AI工业化管线,Lovart国内版有望协同互补