python基础:python语言中的控制结构+面试习题

1. 顺序结构

程序默认的执行顺序,从上到下依次执行每一行代码:

复制代码
print("第一步")
print("第二步")
print("第三步")

2. 分支结构(条件语句)

根据条件判断执行不同的代码块:

2.1 if语句

复制代码
x = 10
if x > 5:
    print("x大于5")

2.2 if-else语句

复制代码
x = 3
if x > 5:
    print("x大于5")
else:
    print("x小于等于5")

2.3 if-elif-else语句

复制代码
x = 7
if x > 10:
    print("x大于10")
elif x > 5:
    print("x大于5但小于等于10")
else:
    print("x小于等于5")

2.4 嵌套if语句

复制代码
x = 8
y = 3
if x > 5:
    if y > 2:
        print("x大于5且y大于2")

3. 循环结构

3.1 for循环

用于遍历序列(列表、元组、字符串等):

复制代码
# 遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# 遍历字符串
for char in "hello":
    print(char)

# 使用range()函数
for i in range(5):  # 0到4
    print(i)

for i in range(2, 10, 2):  # 2,4,6,8
    print(i)

3.2 while循环

只要条件为真就一直执行:

复制代码
count = 0
while count < 5:
    print(count)
    count += 1

3.3 无限循环

复制代码
while True:
    user_input = input("输入'quit'退出:")
    if user_input == "quit":
        break

4. 循环控制语句

4.1 break语句

终止当前循环:

复制代码
for i in range(10):
    if i == 5:
        break
    print(i)  # 输出0-4

4.2 continue语句

跳过当前循环的剩余部分,继续下一次循环:

复制代码
for i in range(10):
    if i % 2 == 0:
        continue
    print(i)  # 输出1,3,5,7,9

4.3 pass语句

占位符,不执行任何操作:

复制代码
for i in range(10):
    if i % 2 == 0:
        pass  # 暂时不做处理
    else:
        print(i)

5. 异常处理结构

5.1 try-except语句

用于捕获和处理异常:

复制代码
try:
    x = int(input("输入一个整数:"))
    print(f"你输入的是:{x}")
except ValueError:
    print("输入错误,请输入整数!")

5.2 try-except-else语句

如果没有发生异常,执行else块:

复制代码
try:
    x = int(input("输入一个整数:"))
except ValueError:
    print("输入错误!")
else:
    print(f"你输入的是:{x}")

5.3 try-except-finally语句

无论是否发生异常,finally块都会执行:

复制代码
try:
    x = int(input("输入一个整数:"))
    print(x / 0)
except (ValueError, ZeroDivisionError):
    print("发生错误!")
finally:
    print("程序结束")

6. 上下文管理结构

6.1 with语句

用于自动管理资源(如文件操作):

复制代码
with open("file.txt", "r") as f:
    content = f.read()
    print(content)
# 文件自动关闭

7. 条件表达式(三元运算符)

复制代码
x = 10
result = "大于5" if x > 5 else "小于等于5"
print(result)  # 大于5

这些控制结构构成了Python程序的基本骨架,通过它们可以实现各种复杂的程序逻辑。

8.面试习题

题目 1:选择题

以下哪个语句用于在Python中进行条件判断?

A. if-else

B. switch-case

C. for

D. try-except
正确答案是 A. if-else

Python中使用if-else语句进行条件判断,虽然Python 3.10+中引入了match-case(与switch-case类似),但if-else是最常用的条件判断结构。

题目 2:操作题

请编写一个Python程序,判断一个数是否为正数、负数或零,并输出相应的提示信息。

复制代码
# 题目2:判断数字的正负
def check_number(num):
    if num > 0:
        return f"{num} 是正数"
    elif num < 0:
        return f"{num} 是负数"
    else:
        return f"{num} 是零"

# 测试代码
test_numbers = [10, -5, 0, 3.14, -2.5]
for num in test_numbers:
    result = check_number(num)
    print(result)

题目 3:填空题

Python中的条件判断语句结构一般采用______,它包含if、elif和else。用来根据不同的条件执行不同的代码块。
答案为 if-else语句

Python的条件判断语句结构是if-elif-else,用于根据不同的条件执行不同的代码块。

题目 4:编程题

编写一个Python程序,输入一个整数,判断它是否为质数(即只能被1和自身整除的数),并输出相应的提示信息。

提示: 可以通过循环判断该数是否能被1和它本身之外的其他数整除。

复制代码
# 题目4:判断一个数是否为质数
def is_prime(num):
    if num <= 1:
        return False
    if num <= 3:
        return True
    if num % 2 == 0 or num % 3 == 0:
        return False
    
    i = 5
    while i * i <= num:
        if num % i == 0 or num % (i + 2) == 0:
            return False
        i += 6
    return True

# 测试代码
test_numbers = [1, 2, 3, 4, 17, 20, 97, 100]
for num in test_numbers:
    if is_prime(num):
        print(f"{num} 是质数")
    else:
        print(f"{num} 不是质数")

题目 5:选择题

以下哪个语句用于在Python中实现循环?

A. while

B. do-while

C. for

D. A 和 C 都对
正确答案是 D. A 和 C 都对

Python中实现循环的语句是whilefor,没有do-while循环。

题目 6:编程题

编写一个Python程序,打印出九九乘法表。

提示: 使用嵌套的for循环来打印乘法表。

复制代码
# 题目6:打印九九乘法表
def print_multiplication_table():
    for i in range(1, 10):
        for j in range(1, i + 1):
            # 使用format格式化输出,使乘法表对齐
            print(f"{j}×{i}={i*j:2d}", end="  ")
        print()  # 换行

# 执行打印
print_multiplication_table()

题目 7:选择题

以下代码中,哪一行的代码会导致程序抛出ZeroDivisionError异常?

a = 10

b = 0

c = a / b

A. a = 10

B. b = 0

C. c = a / b

D. 没有错误
正确答案是 C. c = a / b

这行代码会导致ZeroDivisionError异常,因为变量b的值为0,不能作为除数。

题目 8:编程题

编写一个Python程序,计算并输出1到100内所有数字的和,要求使用while循环。

复制代码
# 题目8:计算1到100内所有数字的和(使用while循环)
def sum_1_to_100():
    total = 0
    i = 1
    while i <= 100:
        total += i
        i += 1
    return total

# 计算并输出结果
result = sum_1_to_100()
print(f"1到100内所有数字的和为: {result}")

题目 9:简答题

简要说明break和continue在循环中的作用,并举例说明它们的使用场景。
break的作用:立即终止当前所在的整个循环,跳出循环体,继续执行循环后面的代码。

continue的作用:跳过当前循环体中剩余的语句,直接进入下一次循环迭代。

示例场景:

使用break的场景:在查找列表中特定元素时,一旦找到就立即停止循环,不需要继续遍历剩余元素。

使用continue的场景:在处理列表时跳过某些不符合条件的元素,继续处理下一个元素。

相关推荐
码农水水14 小时前
中国邮政Java面试:热点Key的探测和本地缓存方案
java·开发语言·windows·缓存·面试·职场和发展·kafka
MM_MS14 小时前
Halcon基础知识点及其算子用法
开发语言·人工智能·python·算法·计算机视觉·视觉检测
a程序小傲14 小时前
小红书Java面试被问:TCC事务的悬挂、空回滚问题解决方案
java·开发语言·人工智能·后端·python·面试·职场和发展
知行合一。。。14 小时前
Python--03--函数入门
android·数据库·python
朝九晚五ฺ14 小时前
从零到实战:鲲鹏平台 HPC 技术栈与并行计算
java·开发语言
CUIYD_198914 小时前
Freemarker 无法转译 & 字符
java·开发语言·spring
superman超哥15 小时前
Rust Vec的内存布局与扩容策略:动态数组的高效实现
开发语言·后端·rust·动态数组·内存布局·rust vec·扩容策略
Evand J15 小时前
【MATLAB例程,附代码下载链接】基于累积概率的三维轨迹,概率计算与定位,由轨迹匹配和滤波带来高精度位置,带测试结果演示
开发语言·算法·matlab·csdn·轨迹匹配·候选轨迹·完整代码
Yuiiii__15 小时前
一次并不简单的 Spring 循环依赖排查
java·开发语言·数据库