如何根据条件在Python函数中选择性跳过指定语句执行
控制Python函数中打印语句的执行
原函数代码
def question(): print("") question_section = str("B" + str(quiz_nmbr + 1)) print("Question", str(quiz_nmbr) + ": " + str(sheet[question_section].value)) question_become = str(input("Type your question: ")) sheet[question_section].value = question_become book.save('Quiz_Problems.xlsx')
实现方法
要实现特定条件下跳过指定打印语句,推荐两种实用方案:
方案1:给函数添加控制参数(推荐)
通过给函数新增一个布尔类型的参数,调用时按需传入值来控制打印逻辑,这种方式耦合性低、灵活性高。同时优化了原代码里的字符串拼接写法,让代码更简洁:
def question(show_question=True): print("") question_section = f"B{quiz_nmbr + 1}" if show_question: print(f"Question {quiz_nmbr}: {sheet[question_section].value}") question_become = input("Type your question: ") # input返回本身就是字符串,无需额外转换 sheet[question_section].value = question_become book.save('Quiz_Problems.xlsx')
- 正常调用(执行打印):
question() - 跳过打印的调用:
question(show_question=False)
方案2:依赖外部条件变量
如果你的控制逻辑依赖某个全局变量或外部状态,可以直接在函数内判断该变量:
# 假设外部已定义控制变量skip_print,根据业务逻辑设置为True/False skip_print = False def question(): print("") question_section = f"B{quiz_nmbr + 1}" if not skip_print: print(f"Question {quiz_nmbr}: {sheet[question_section].value}") question_become = input("Type your question: ") sheet[question_section].value = question_become book.save('Quiz_Problems.xlsx')
当需要跳过打印时,只需将skip_print设为True即可。
内容的提问来源于stack exchange,提问作者bin07
相关产品推荐
相关产品推荐

