测开python高频面试精选100题

基础语法类(1-20)
计算圆的面积(半径为5)

python 复制代码
import math
radius = 5
area = math.pi * radius ** 2
print(area)#78.53981633974483
# math.pi:提供精确的圆周率值,比手动输入 3.14 更准确
# 指数运算符:** 表示幂运算,radius ** 2 就是 radius²
# 模块使用:通过 math. 前缀来访问模块中的常量和函数

将字符串转换为大写

python 复制代码
s = "hello"
print(s.upper())

将列表中的元素用逗号连接成字符串

python 复制代码
lst = ["a", "b", "c"]
print(",".join(lst))#a,b,c

将字符串反转

python 复制代码
s = "Python"
print(s[::-1])#nohtyP

检查字符串是否以特定子串结尾

python 复制代码
s = "Python"
print(s.endswith("on"))

条件语句类(21-30)
检查字符串是否是回文("madam")

python 复制代码
s = "madam"
if s == s[::-1]:
    print("是回文")

检查数字是否是2的幂(8)

python 复制代码
num = 8
if num > 0 and (num & (num - 1)) == 0:
    print("是2的幂")
python 复制代码
  1000  (8)
& 0111  (7)
-----------
  0000  (0)

2的幂的二进制特点:

2的幂在二进制中只有1个位是1,其他都是0

例如:

1 = 0001

2 = 0010

4 = 0100

8 = 1000

16 = 10000

当执行 num & (num - 1) 时:
num - 1 会把最低位的1变成0,后面的所有0变成1

这样两个数在二进制表示中没有任何相同的1位

按位与的结果必然是0
关键点总结

二进制特性:2的幂在二进制中只有一个1

按位与操作:& 运算符比较两个数的二进制位

高效算法:这个方法的时间复杂度是O(1),非常高效

这是一个经典的位运算技巧,在算法竞赛和系统编程中经常使用

num - 1 会把最低位的1变成0,后面的所有0变成1 解释这句:

python 复制代码
num     = 8  = 1000#最低位的1从右数到左第4个就是1
num - 1 = 7  = 0111
python 复制代码
num     = 12 = 1100#最低位的1从右数到左第3个就是1
num - 1 = 11 = 1011

循环类(31-40)
打印九九乘法表

python 复制代码
for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}x{i}={i*j}", end="\t")
    print()

打印斐波那契数列前10项

python 复制代码
a, b = 0, 1
for _ in range(10):
    print(a, end=" ")
    a, b = b, a + b

0 1 1 2 3 5 8 13 21 34
备注:

第1次循环:

print(a, end=" ") # 输出:0

a, b = b, a + b # a = 1, b = 0 + 1 = 1

第2次循环:

print(a, end=" ") # 输出:1

a, b = b, a + b # a = 1, b = 1 + 1 = 2

a, b = b, a + b 这行代码的妙处在于:

先计算右边的所有值:b 和 a + b

然后同时赋值给左边的变量

不会出现先用新值覆盖a,再用新a计算b的问题

在Python中,_ 是一个有效的变量名,但它有一个特殊的约定:当你不关心这个变量的具体值时,就用 _ 来命名

使用有意义的变量名(当你关心值时)

for i in range(3):

print(f"这是第 {i+1} 次循环")

这是第 1 次循环

这是第 2 次循环

这是第 3 次循环

使用 _(当你不关心值时)

python 复制代码
for _ in range(3):
    print("Hello")

Hello

Hello

Hello

这里我们只关心循环3次,不关心当前是第几次
Python并行赋值介绍

a, b, c = 1, 2, 3

python 复制代码
# 传统方法需要临时变量
a = 1
b = 2
temp = a
a = b
b = temp
print(a, b)  # 2 1

# 并行赋值方法
a, b = 1, 2
a, b = b, a  # 一行搞定!
print(a, b)  # 2 1

并行赋值的工作原理

关键机制:先计算右边,再赋值

python 复制代码
a, b = 1, 2
a, b = b, a + b

计算阶乘(5)

python 复制代码
n = 5
fact = 1
for i in range(1, n+1):
    fact *= i
print(fact)#120

5! = 1 × 2 × 3 × 4 × 5 = 120

打印倒三角形图案

python 复制代码
n = 5
for i in range(n, 0, -1):
    print("*" * i)

字符串处理类(41-50)

统计字符串中字母个数

python 复制代码
s = "Python3.8"
count = sum(c.isalpha() for c in s)
print(count)

反转字符串中的单词顺序

python 复制代码
s = "Hello World"
print(" ".join(s.split()[::-1]))#World Hello

统计字符串中单词个数

python 复制代码
s = "Hello World Python"
print(len(s.split()))

统计字符串中特定字符出现的次数("hello", 'l')

python 复制代码
s = "hello"
print(s.count('l'))

将字符串按空格分割成列表

python 复制代码
s = "Hello World Python"
print(s.split())

检查字符串是否是回文忽略大小写("Madam"

python 复制代码
s = "Madam"
print(s.lower() == s.lower()[::-1])

列表操作类(51-60)

反转列表

python 复制代码
lst = [1, 2, 3, 4, 5]
print(lst[::-1])

删除列表中的重复元素

python 复制代码
lst = [1, 2, 2, 3, 4, 4, 5]
print(list(set(lst)))

在列表指定位置插入元素

python 复制代码
lst = [1, 2, 4]
lst.insert(2, 3)
print(lst)

找出两个列表的交集

python 复制代码
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
print(list(set(list1) & set(list2)))

计算数字的阶乘(递归实现)

python 复制代码
def factorial(n):
    return 1 if n <= 1 else n * factorial(n-1)

print(factorial(5))
相关推荐
彼岸花开了吗1 小时前
构建AI智能体:四十、K-Means++与RAG的融合创新:智能聚类与检索增强生成的深度应用
人工智能·python
缘三水1 小时前
【C语言】9.操作符详解(上)
c语言·开发语言·新人首发
刃神太酷啦1 小时前
C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)
java·c语言·开发语言·c++·qt·算法·leetcode
前端老宋Running1 小时前
useEffect 戒断指南与“鬼畜”的双重请求之谜
前端·react.js·面试
Gomiko1 小时前
JavaScript基础(七):数组
开发语言·javascript·ecmascript
一只乔哇噻1 小时前
java后端工程师+AI大模型进修ing(研一版‖day58)
java·开发语言
晴栀ay1 小时前
JS面向对象:从"猫"的视角看JavaScript的OOP进化史
前端·javascript·面试
JHC0000001 小时前
47. 全排列 II
开发语言·python·面试
g***86691 小时前
Windows上安装Go并配置环境变量(图文步骤)
开发语言·windows·golang