面试题答案
一键面试- 函数定义:
- 程序逻辑:Python中函数定义时,函数体必须缩进。若忘记缩进函数体代码,从逻辑上看,这些代码将不再被视为函数的一部分,破坏了函数的封装性和独立性。例如:
def my_function():
print('This is a function') # 此处忘记缩进
这里print
语句不再属于my_function
,逻辑上函数定义不完整。
- 实际运行:运行时会报错,提示
SyntaxError: unexpected indent
,因为Python语法要求函数体有正确的缩进。
- 循环结构:
- 程序逻辑:以
for
循环为例,如果循环体忘记缩进,从逻辑上循环将只作用于紧跟for
语句的下一行代码,而不是预期的循环体部分。比如:
- 程序逻辑:以
nums = [1, 2, 3]
for num in nums:
print(num) # 忘记缩进
print('End')
这里预期print(num)
和print('End')
都在循环体内,但由于print(num)
未缩进,逻辑上只有print('End')
在循环内,与预期不符。
- 实际运行:运行结果不会如预期那样对列表每个元素执行
print(num)
,而是只在循环结束后执行一次print('End')
。
- 条件判断:
- 程序逻辑:在
if - else
语句中,若条件分支内的代码忘记缩进,逻辑上该代码不再属于相应的条件分支。例如:
- 程序逻辑:在
x = 10
if x > 5:
print('x is greater than 5') # 忘记缩进
else:
print('x is less than or equal to 5')
这里print('x is greater than 5')
不再属于if
分支,逻辑上代码结构错误。
- 实际运行:运行时会报错
SyntaxError: unexpected indent
,因为语法规则要求条件分支内代码必须缩进。