python 学习 2
# 1.技术面试题
**(1)详细描述单调栈的工作原理和应用场景**
答:单调递增,单调递减。一个元素入栈,一个元素出栈。
**(2)详细描述单调队列的工作原理和应用场景**
答:过维护队列内元素的单调性(递增 / 递减),在新元素入队时从队尾移除无效元素,同时从队头移除过期元素,确保高效获取窗口内的极值
# 2.HR面试题
**(1)如果竞争对手用双倍薪资挖你,你会怎么选择?**
答:当下工作是否具有发展前景以及待遇,公司是否合理安排(如996,克扣工资等),以及双倍工资是否有隐含条件,不利于自己的。对方工作是否有保障,
**(2)我们觉得你今天表现一般,不符合岗位要求,你有什么想说的?**
答:今天代表今天,不代表以后。我认为不能以今天作为我我表现评判准则,我会更努力做好自己分内的事,可能今天在某些环节我没有充分展现出与岗位的匹配度,虽然这次没能通过,但如果可以的话,我想请教一下,从岗位需求来看,我在哪些能力或经验上还有比较明显的差距?这样我可以针对性地去改进,也希望未来如果有更匹配的岗位时,能有再次尝试的机会。
# 3.选择题
**(1)在Python中,以下哪个不是循环控制语句?**
A. `break`
B. `continue`
C. `pass`
D. `return`
答:C
**(2)以下代码的输出结果是什么?**
```python
for i in range(5):
if i == 3:
continue
print(i, end=' ')
```
A. `0 1 2 3 4`
B. `0 1 2 4`
C. `0 1 2`
D. `3`
答:B
**(3)完成以下代码,使其能够打印出1到100之间所有的偶数:**
```python
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`
答:D
**(4)以下代码有一个错误,导致它无法正确计算1到10的和。请选择正确的修改方案:**
```python
sum = 0
i = 1
while i < 10:
sum += i
i += 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)以下代码的输出结果是什么?**
```python
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个数:**
```python
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)以下代码的输出结果是什么?**
```python
i = 0
while i < 5:
i += 1
if i == 3:
continue
print(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)以下代码的输出结果是什么?**
```python
for i in range(1, 5):
for j in range(1, 5):
if i * j > 10:
break
print(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
```
答:C
**(9)以下代码的输出结果是什么?**
```python
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)以下代码的输出结果是什么?**
```python
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循环,适用于循环次数不确定,需根据某个条件控制循环结束时机的场景
**(2)Python中有哪些循环控制语句?它们各自的作用是什么?请给出示例说明。**
答:break:立即终止当前所在的循环(for或while)、continue:跳过当前循环中剩余的代码,直接进入下一次循环迭代。pass:空语句,用于占位,保持代码结构的完整性,不执行任何操作
**(3)在Python的for循环中,range()函数扮演着重要角色。请详细说明range()函数的语法、参数含义和使用方法,并给出至少3个不同用法的示例。**
答:range()函数是一个内置函数,主要用于生成不可变的整数序列,在for循环中经常被用来控制循环的次数或遍历索引
**(4)什么是嵌套循环?请解释嵌套循环的工作原理。**
答:在一个循环内部包含另一个或多个循环的结构,外层循环开始第一次迭代(即外层循环变量取第一个值)。内层循环从第一次迭代开始,完整执行所有迭代(直到内层循环条件不满足)。内层循环执行完毕后,外层循环进入下一次迭代(外层循环变量取下一个值)。重复步骤 2 和 3,直到外层循环的所有迭代执行完毕,整个嵌套循环结束。
**(5)编写代码,判断两个矩形的关系**
**题目描述**
判断两个矩形之间的关系:包含,重叠,相离

**输入输出描述**
输入两行,每行四个数据,分别是矩形的中心坐标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
>
> 输出:
>
> 相离
答:
```python
# 在此写入你的代码
```
**(6)编写代码,打印如下数字图案**
```python
1
1 2 1
1 2 4 2 1
1 2 4 8 4 2 1
1 2 4 8 16 8 4 2 1
1 2 4 8 16 32 16 8 4 2 1
1 2 4 8 16 32 64 32 16 8 4 2 1
```
答:
```python
# 在此写入你的代码
```n = 7
for i in range(n):
max_num = 2 ** i
line = [2 ** j for j in range(i + 1)] + [2 ** j for j in range(i - 1, -1, -1)]
line_str = ' '.join(map(str, line))
total_width = len(' '.join(map(str, [2 ** j for j in range(n)] + [2 ** j for j in range(n - 2, -1, -1)])))
print(line_str.center(total_width))
**(7)编写代码,打印如下星星图案**
```python
*
***
*****
*******
*********
*******
*****
***
*
```
答:
```python
# 在此写入你的代码
```n = 5
for i in range(n):
print(' ' * (n - i - 1) + '*' * (2 * i + 1))
for i in range(n - 2, -1, -1):
print(' ' * (n - i - 1) + '*' * (2 * i + 1))
**(8)编写代码,求最小公倍数**
**题目描述**
输入两个正整数,计算其最小公倍数,例如4和2的最小公倍数是4,3和5的最小公倍数是15
**输入输出描述**
输入两个正整数
输出最小公倍数
**示例1**
> 输入:
>
> 3 9
>
> 输出:
>
> 9
**示例2**
> 输入:
>
> 4 6
>
> 输出:
>
> 12
答:
```python
# 在此写入你的代码
```a, b = map(int, input().split(" "))
def min_math(x, y):
while y: x,
y = y, x % y
return x
g =min_math(a, b)
lcm = (a * b) // g
print(lcm)
更多推荐
所有评论(0)