如何用Python打乱函数列表并按打乱顺序调用函数?
问题分析与修复
你的代码有两个核心问题:
- 多个
return语句无效:return会直接终止函数运行,第一个return执行后,后面的两个return根本不会被触发。 - 仅返回函数对象未调用:就算拿到返回的函数,没加
()调用的话,不会执行内部的打印逻辑。
修复后的代码
import random def Question1(): print("Which one of these is a safe password?") def Question2(): print("What can you do to get less spam?") def Question3(): print("What term describes the act of annoying someone online?") def questionfunction(): # 直接将函数放入列表,无需额外赋值变量 questionlist = [Question1, Question2, Question3] random.shuffle(questionlist) # 遍历打乱后的列表,逐个调用函数 for question in questionlist: question() # 执行函数 questionfunction()
关键修改点
- 移除多余变量赋值:直接把函数名放进列表即可,不用先赋值给q1、q2、q3。
- 替换无效
return:改成遍历打乱后的列表,给每个函数对象加()调用,确保按随机顺序打印所有问题。 - 触发函数执行:函数对象必须通过
()才能执行内部逻辑,这是你之前没做到的核心步骤。
内容的提问来源于stack exchange,提问作者DominionGaming
相关产品推荐
相关产品推荐

